## 1. Create an account

1. Open the [dashboard](https://app.1toolring.com/register).
2. Register with email and password, or continue with Google or GitHub.
3. Verify your email. A verified email is required before you can create a key.

## 2. Add credits

Calls are paid from a prepaid balance (1 credit = Rp1). Open **Billing** in the dashboard and top up through Polar checkout in one of the amounts on the [pricing page](https://1toolring.com/pricing/). Credits are added once the payment is confirmed.

New accounts currently receive a one-time 3,000-credit signup bonus when the email is verified (the grant is limited per network per day). It is not a monthly allowance.

## 3. Create an API key

Open **API keys** in the dashboard and create a key. The raw key is shown once. 1ToolRing stores only its SHA-256 hash, so copy it now.

## 4. Find a tool

The tool catalog holds thousands of tools across SERP, scraping, enrichment, social, ecommerce and maps. Discover one by job, then inspect it to read its input and price:

```bash
curl -X POST https://api.1toolring.com/api/v1/tools/discover \
  -H "Authorization: Bearer $TOOLRING_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"google search results for a keyword","limit":5}'

curl -X POST https://api.1toolring.com/api/v1/tools/inspect \
  -H "Authorization: Bearer $TOOLRING_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"dataforseo/serp/google-organic"}'
```

`inspect` returns the `input_schema` and the `price` in credits. Then run it:

```bash
curl -X POST https://api.1toolring.com/api/v1/tools/run \
  -H "Authorization: Bearer $TOOLRING_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tool":"dataforseo/serp/google-organic","input":{"body":{"keyword":"kopi pontianak"}}}'
```

Credits are held up front and settled to the real cost; a failed run costs 0. A slow tool answers `202` with a `run_id` to poll. See [Tools](/reference/tools).

Native services such as email verification are listed in the catalog, which needs no key:

```bash
curl "https://api.1toolring.com/api/v1/catalog/search?q=email"
```

Each result carries `id`, `method`, `path`, `price_credits` and `price_unit`. Read the price before you call.

## 5. Call a native service

```bash
curl -X POST https://api.1toolring.com/api/v1/email/verify \
  -H "Authorization: Bearer $TOOLRING_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"user@example.com"}'
```

```js
// JavaScript
const res = await fetch('https://api.1toolring.com/api/v1/email/verify', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.TOOLRING_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ email: 'user@example.com' }),
});
const body = await res.json();
```

```python
# Python
import os
import requests

res = requests.post(
    "https://api.1toolring.com/api/v1/email/verify",
    headers={"Authorization": f"Bearer {os.environ['TOOLRING_KEY']}"},
    json={"email": "user@example.com"},
    timeout=30,
)
data = res.json()
```

## 6. Read the response and the charge

```json
{
  "data": {
    "email": "user@example.com",
    "quality": "good",
    "result": "ok",
    "resultcode": 1,
    "is_free": false,
    "is_role": false,
    "is_disposable": false,
    "credits_used": 105,
    "cached": false,
    "checked_at": "2026-11-01T09:00:00Z"
  }
}
```

The `X-ToolRing-Credits` response header is the number of credits actually charged for the call. Here it is `105`. A `catch_all` or `unknown` verdict charges 0, a cached repeat charges 0, and a failed call charges 0.

## Next

- [Tools](/reference/tools) for the discover, inspect, run flow, pricing models and async polling.
- [Email verification](/reference/email-verification) for bulk jobs and reports.
- [Rate limits and credits](/concepts/rate-limits) for how a charge is held, settled and released.
- [MCP](/sdks/mcp) to give your agent the whole catalog as MCP tools.