Your workspace. Your API.
The same API guide available in your Business dashboard. All endpoints, costs and examples, without signing in.
Open Business workspaceConnect your workspace
- Create a client project in the dashboard. Copy its project UUID.
- Verify your email. An owner or admin can create a scoped API key in API & webhooks.
- Store the key in a server environment variable named INDEXTOAST_API_KEY. Never put it in browser code or a URL.
curl https://api.indextoast.com/v1/business/usage \
-H "Authorization: Bearer $INDEXTOAST_API_KEY"curl https://api.indextoast.com/v1/business/projects \
-H "Authorization: Bearer $INDEXTOAST_API_KEY"| Permission | Access |
|---|---|
usage:read | GET /usage · GET /projects |
jobs:read | GET /batches · GET /batches/:id |
jobs:write | POST /batches/review · POST /batches |
Keys expire and can be revoked. Workspace, project, key, webhook and billing changes require an authorised dashboard session; API keys cannot manage billing.
Standard
Submit URLs for Standard indexing. Each unique URL uses 1 Standard action.
Review is free. It returns quantity, duplicates, unitCost, requiredUnits, available, canSubmit and normalised URLs. Your balance is checked again at submission.
curl https://api.indextoast.com/v1/business/batches/review \
-H "Authorization: Bearer $INDEXTOAST_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"projectId": "YOUR_PROJECT_UUID",
"name": "Client campaign",
"operation": "standard",
"urls": [
"https://example.com/page-one",
"https://example.com/page-two"
],
"idempotencyKey": "campaign-standard-001"
}'curl https://api.indextoast.com/v1/business/batches \
-H "Authorization: Bearer $INDEXTOAST_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"projectId": "YOUR_PROJECT_UUID",
"name": "Client campaign",
"operation": "standard",
"urls": [
"https://example.com/page-one",
"https://example.com/page-two"
],
"idempotencyKey": "campaign-standard-001"
}'Use 1–1,000 public HTTP(S) URLs, a project UUID from your workspace, a name of 1–100 characters and an idempotency key of 8–150 characters. Duplicate normalised URLs within a batch are charged once.
{
"id": "BATCH_UUID",
"operation": "standard",
"quantity": 2,
"status": "queued",
"successful": 0,
"failed": 0,
"results": []
}202 means accepted for processing. It does not confirm indexing or completion time. Capacity is debited once at acceptance.
Index Checker
Check whether URLs are detected in the search index. Each unique URL uses 1 Standard action, including inconclusive results.
Review is free. It returns quantity, duplicates, unitCost, requiredUnits, available, canSubmit and normalised URLs. Your balance is checked again at submission.
curl https://api.indextoast.com/v1/business/batches/review \
-H "Authorization: Bearer $INDEXTOAST_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"projectId": "YOUR_PROJECT_UUID",
"name": "Client campaign",
"operation": "check",
"urls": [
"https://example.com/page-one",
"https://example.com/page-two"
],
"idempotencyKey": "campaign-check-001"
}'curl https://api.indextoast.com/v1/business/batches \
-H "Authorization: Bearer $INDEXTOAST_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"projectId": "YOUR_PROJECT_UUID",
"name": "Client campaign",
"operation": "check",
"urls": [
"https://example.com/page-one",
"https://example.com/page-two"
],
"idempotencyKey": "campaign-check-001"
}'Use 1–1,000 public HTTP(S) URLs, a project UUID from your workspace, a name of 1–100 characters and an idempotency key of 8–150 characters. Duplicate normalised URLs within a batch are charged once.
{
"id": "BATCH_UUID",
"operation": "check",
"quantity": 2,
"status": "queued",
"successful": 0,
"failed": 0,
"results": []
}202 means accepted for processing. It does not confirm indexing or completion time. Capacity is debited once at acceptance.
Index Checker results
{
"results": [
{
"url": "https://example.com/page-one",
"result": "indexed"
},
{
"url": "https://example.com/page-two",
"result": "unknown"
}
]
}indexed = detected; not_indexed = not detected by this check; unknown = inconclusive. A completed batch is a processing status, not a positive index result. Read each URL result.
Boost
Boost uses 20 shared Business units per unique URL.
Review is free. It returns quantity, duplicates, unitCost, requiredUnits, available, canSubmit and normalised URLs. Your balance is checked again at submission.
curl https://api.indextoast.com/v1/business/batches/review \
-H "Authorization: Bearer $INDEXTOAST_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"projectId": "YOUR_PROJECT_UUID",
"name": "Client campaign",
"operation": "boost",
"urls": [
"https://example.com/page-one",
"https://example.com/page-two"
],
"idempotencyKey": "campaign-boost-001"
}'curl https://api.indextoast.com/v1/business/batches \
-H "Authorization: Bearer $INDEXTOAST_API_KEY" \
-H "Content-Type: application/json" \
--data '{
"projectId": "YOUR_PROJECT_UUID",
"name": "Client campaign",
"operation": "boost",
"urls": [
"https://example.com/page-one",
"https://example.com/page-two"
],
"idempotencyKey": "campaign-boost-001"
}'Use 1–1,000 public HTTP(S) URLs, a project UUID from your workspace, a name of 1–100 characters and an idempotency key of 8–150 characters. Duplicate normalised URLs within a batch are charged once.
{
"id": "BATCH_UUID",
"operation": "boost",
"quantity": 2,
"status": "queued",
"successful": 0,
"failed": 0,
"results": []
}202 means accepted for processing. It does not confirm indexing or completion time. Capacity is debited once at acceptance.
Use monthly or prepaid Business units for Boost. There is no separate Boost allowance.
Track batches
curl https://api.indextoast.com/v1/business/batches/BATCH_UUID \
-H "Authorization: Bearer $INDEXTOAST_API_KEY"curl https://api.indextoast.com/v1/business/batches?page=1 \
-H "Authorization: Bearer $INDEXTOAST_API_KEY"Lists contain 20 batches per page. Read hasMore before requesting the next page. Status reads are free; poll with backoff or use a webhook.
queued → submitting → submitted / processing → completed
↘ failed / unknownfailed or unknown needs review. Contact support with the batch ID before creating a replacement; submitting a new key may debit capacity again. Processing retries use the original reservation.
Verify webhook signatures
Configure an HTTPS endpoint in API & webhooks. Save the secret shown once. Receive signed batch.finished events and deduplicate by event ID.
x-indextoast-signature: t=TIMESTAMP,v1=HEX
HMAC-SHA256(secret, timestamp + "." + rawBody)- Verify the raw body with a constant-time comparison before processing.
- Reject timestamps more than five minutes from your server clock, including future timestamps.
- Persist the event ID before acknowledging with 2xx. Delivery retries are bounded; reconcile missed events through batch status reads.
Usage & billing
| Service | Cost per unique URL | Balance |
|---|---|---|
| Standard | 1 action | Standard |
| Index Checker | 1 action | Standard |
| Boost | 20 units | Standard |
Submitting 100 Standard URLs and checking each once uses 200 units. Boosting 100 URLs uses 2,000 units; checking each once adds 100 units, for 2,100 total.
{
"plan": "agency",
"included": 10000,
"purchased": 0,
"standardAvailable": 10000,
"boostAvailable": 500,
"unitCosts": {
"standard": 1,
"check": 1,
"boost": 20
},
"monthlyActionLimit": null,
"acceptedThisMonth": 0,
"periodEnd": "2026-11-08T00:00:00.000Z"
}Included Standard actions are used before purchased actions. Included actions reset at your paid billing period without rollover; prepaid balances do not expire. Regular and Business balances are separate.
The monthly action cap counts all accepted operations in the UTC calendar month. Blank uses balance limits; 0 pauses new jobs. It is an action limit, not a dollar budget.
Errors & retries
Retry a timed-out submission with the identical payload and idempotency key. The existing batch is returned without another debit. If you send the optional Idempotency-Key header, it must match the body.
| HTTP | Meaning / next step |
|---|---|
| 400 / 422 | Invalid input. Correct the payload before retrying. |
| 401 / 403 | Check key validity, permissions and verified email. |
| 404 | Project or batch is unavailable in this workspace. |
| 409 | STANDARD_BALANCE_REQUIRED · SPENDING_LIMIT · IDEMPOTENCY_CONFLICT |
| 429 / 5xx | Respect Retry-After when provided. Retry with exponential backoff and the same key. |
API limit: 120 requests per minute per caller IP, shared across routes. Validation, review and status reads do not spend actions. A paid Index Checker result can still be inconclusive.