API documentation
Build NeuralIndexer indexation into any system. JSON over HTTPS, Bearer-token auth, v2 endpoints with auto-split and idempotency.
Authentication
Every request needs a personal API token. v2 endpoints accept the standard Authorization: Bearer <token>;
legacy v1 endpoints also accept the token in the JSON body via api_key
or token.
All POST endpoints accept Content-Type: application/json.
GET endpoints accept the token in the query string as ?api_key=….
Base URL for all endpoints: https://ivoque.de/api/
Header (recommended for v2)
curl -X POST https://ivoque.de/api/v2/submissions \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"links":["https://example.com/page-1"],"queue":"slow"}'
JSON body field (legacy)
curl -X POST https://ivoque.de/api/link-submit.php \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_TOKEN","links":["https://example.com/page-1"]}'
Query string (GET only)
curl "https://ivoque.de/api/balance.php?api_key=YOUR_API_TOKEN"
Get an API token
There is no public token — every account has its own. Sign up and issue a token from the cabinet or via the Telegram bot (bonus $0.38 on first sign-up via the bot).
⚠️ Generating a new token immediately invalidates the previous one.
🆕 Authoritative API v2 — overview
New in v2 — server-side authoritative storage
Submit any number of URLs in a single request — the server splits large batches into chunks of 5,000. Read submissions, parts, checks and balance history straight from our DB. Subscribe to webhooks instead of polling. Legacy v1 endpoints below remain available.
Base URL
https://ivoque.de/api/v2/
Endpoints summary
POST /api/v2/submissions — create submission (auto-split)
GET /api/v2/submissions — list with filters
GET /api/v2/submissions/{id} — detail + URLs + linked checks/balance
GET /api/v2/submissions/{id}/parts — list of parts
GET /api/v2/submissions/{id}/links — paginated URL list (1–1000 per page)
GET /api/v2/checks — list of indexation checks
GET /api/v2/checks/{id} — detail + per-URL results
GET /api/v2/balance/history — balance ledger (debits & credits)
POST /api/v2/webhooks — create webhook subscription
GET /api/v2/webhooks — list subscriptions
PATCH /api/v2/webhooks/{id} — update url/events/active
DELETE /api/v2/webhooks/{id} — remove subscription
GET /api/v2/webhooks/{id}/deliveries — delivery log (30 days)
POST /api/v2/webhooks/{id}/test — send a test event
Limits
• Per token: 10 req/sec, 100 req/min
• Auto-split chunk size: 5 000 links
• Submission size: practically unlimited (15,000 links = 3 server-side parts)
• Webhook deliveries: 10 retries with exponential backoff (0, 1, 2, 4, 8, 16, 32, 60, 60, 60 min)
V2: POST /api/v2/submissions
/api/v2/submissions
Creates a new submission. Accepts either JSON with a links,
array, or multipart/form-data with a file
field. There is no per-request URL limit — large batches are split server-side into chunks of 5,000. Balance is checked upfront for the entire submission.
Body parameters
links
array | string
required
Array of URLs or a string separated by \n / comma. The urls field is also accepted.
file
multipart
(multipart only) one .txt file with one URL per line. Replaces links.
external_id
string
Idempotency key. Repeating the same value returns the existing submission without re-charging.
client_batch_id
string
Alternative client-side identifier (e.g. an export filename).
queue
string
"slow" (default), "fast" (priority, $0.50/URL) or "yandex".
label
string
Free-form label, ≤255 chars.
Example request
curl -X POST https://ivoque.de/api/v2/submissions \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"links": ["https://example.com/p1", "https://example.com/p2"],
"queue": "slow",
"client_batch_id": "weekly-2026-04-28",
"external_id": "client-job-12345",
"label": "April promo"
}'
Multipart variant (large .txt)
curl -X POST https://ivoque.de/api/v2/submissions \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -F "file=@./urls.txt" \ -F "external_id=client-job-12345" \ -F "queue=slow"
Success response 202
{
"status": "ok",
"submission_id": 4567,
"parts_total": 1,
"total_links_received": 2,
"total_links_accepted": 2,
"charged_amount": 0.0168,
"balance_usd": 9.9832,
"was_cached": false,
"external_id": "client-job-12345",
"client_batch_id": "weekly-2026-04-28"
}
V2: GET /api/v2/submissions
/api/v2/submissions
Paginated list of the account submissions. Filters: status,
queue,
engine,
label,
external_id,
client_batch_id,
date_from/date_to.
curl -s "https://ivoque.de/api/v2/submissions?status=done&date_from=2026-04-01&page=1&per_page=50" \ -H "Authorization: Bearer YOUR_API_TOKEN"
V2: GET /api/v2/submissions/{id}
/api/v2/submissions/{id}
Detailed view of a submission: counters, processing log, linked checks and balance ops, sample URLs. URL pagination: urls_limit
(1–50,000), urls_offset.
curl -s https://ivoque.de/api/v2/submissions/4567 \ -H "Authorization: Bearer YOUR_API_TOKEN"
V2: Google indexation checks
Pricing: $0.0024 / URL
(default; accounts may have a custom rate). Minimum balance to start: $1.00.
Check ID is prefixed: a123 (auto post-submission, free) or m456 (manual paid).
Schedule a check
curl -X POST https://ivoque.de/api/check-index-task.php \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_TOKEN",
"links": ["https://example.com/p1"],
"batch_id": "audit-2026-04-28"
}'
List & detail (v2)
curl -s "https://ivoque.de/api/v2/checks?status=completed&per_page=20" \ -H "Authorization: Bearer YOUR_API_TOKEN" curl -s "https://ivoque.de/api/v2/checks/m2931?results_per_page=100" \ -H "Authorization: Bearer YOUR_API_TOKEN"
V2: GET /api/v2/balance/history
/api/v2/balance/history
Balance ledger (debits & credits) linked to submission_id / upload_id. Filters: direction (credit/debit),
type,
submission_id,
date_from/date_to.
curl -s "https://ivoque.de/api/v2/balance/history?date_from=2026-04-01&direction=debit&page=1&per_page=50" \ -H "Authorization: Bearer YOUR_API_TOKEN"
V2: Webhooks
Subscribe to events instead of polling. Each delivery is signed with HMAC-SHA256
over the raw body. After 10 failed attempts (delays 0, 1, 2, 4, 8, 16, 32, 60, 60, 60 min) the delivery is marked dead.
Create a subscription
curl -X POST https://ivoque.de/api/v2/webhooks \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://hooks.example.com/ivoque",
"events": ["submission.completed", "check.completed"],
"description": "Ops alerts"
}'
Response 201
{
"status": "ok",
"id": 12,
"url": "https://hooks.example.com/ivoque",
"events": ["submission.completed", "check.completed"],
"is_active": true,
"secret": "save-me-now-not-shown-again"
}
Each delivery POST carries an X-Ivoque-Signature: sha256=<hex> header computed over the raw body using your subscription secret. Verify the signature before trusting the payload.
Legacy v1: link-submit.php
/api/link-submit.php
$0.0122 / URL
Slow Google + Bing pool. Up to 5,000 URLs per request. No auto-split, no idempotency. New integrations should prefer POST /api/v2/submissions.
curl -X POST https://ivoque.de/api/link-submit.php \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_TOKEN",
"links": ["https://example.com/p1"]
}'
Legacy v1: link-submit-yandex.php
/api/link-submit-yandex.php
$0.0122 / URL
Yandex only. Up to 5,000 URLs per request.
curl -X POST https://ivoque.de/api/link-submit-yandex.php \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_TOKEN","links":["https://example.com/p1"]}'
Legacy v1: link-submit-fast.php
/api/link-submit-fast.php
$0.50 / URL
Priority indexation via the Google Indexing API — results within minutes. Make sure your balance has enough funds before using it.
curl -X POST https://ivoque.de/api/link-submit-fast.php \
-H "Content-Type: application/json" \
-d '{"api_key":"YOUR_API_TOKEN","links":["https://example.com/important-page"]}'
Legacy v1: balance.php
/api/balance.php
free
Current balance, price per link, available link count.
curl -s "https://ivoque.de/api/balance.php?api_key=YOUR_API_TOKEN"
Legacy v1: check-and-reindex.php
/api/check-and-reindex.php
$0.0024 + $0.0122 / URL
Google index check + automatic re-submission of non-indexed URLs back into the regular pool. For new integrations use v2: /api/v2/submissions with a submission.completed webhook + manual re-submission.
Pricing & limits
| Service | Price per URL | Endpoint |
|---|---|---|
| Slow (Google + Bing) | $0.0122 | /api/v2/submissions, queue=slow |
| Yandex | $0.0122 | /api/v2/submissions, queue=yandex |
| Fast (Google API) | $0.50 | /api/v2/submissions, queue=fast |
| Indexation check | $0.0024 | /api/check-index-task.php |
| HTTP status check | $0.0016 | /api/check-status-task.php |
High-volume accounts can request a custom rate from @Inderixing.
Error codes
HTTP statuses
| HTTP | Meaning | Action |
|---|---|---|
| 200 | Success | — |
| 202 | Accepted (v2 submit) | Background processing |
| 400 | Invalid request | Check JSON / fields |
| 401 | invalid_api_key | Re-issue the token |
| 402 | insufficient | Top up balance |
| 403 | forbidden_scope | Operation disabled |
| 429 | Rate-limited | Back off ≥ 1 s |
| 500-504 | Server / upstream | Retry with backoff |
Stable error codes
MCP integration for AI agents
The same REST API is also exposed through Model Context Protocol — plug NeuralIndexer straight into Claude Desktop, Cursor, Windsurf or ChatGPT and let the AI agent submit URLs and check indexation from chat without writing code.
Hosted endpoint — zero install
Just paste the URL https://ivoque.de/mcp-rpc and your token into your client config — no npm packages, no Node.js, no servers to spin up.