Developers · v1

API reference.

A small, predictable REST surface. Submit URLs, poll status, read results. Auth is a single header. No SDK required.

Base URL

platinumindexer.com/api/v1/index.php

Auth

Header: X-API-Key

Authentication

Send your key in the X-API-Key header on every request. Query-string auth (?api_key=…) works too, but only for GETs from environments where headers are awkward.

Header (preferred)
X-API-Key: 5f4dcc3b5aa765d61d8327deb882cf99
Query string (fallback)
?api_key=5f4dcc3b5aa765d61d8327deb882cf99
Don't ship the key client-side. Calls from the browser will leak it to anyone who opens devtools. Proxy through your backend.

Errors

Failures return a 4xx or 5xx HTTP status with a JSON body containing success: false and a human-readable error. There is no error code enum — match on the message if you must, but prefer status codes.

{
  "success": false,
  "error": "Insufficient credits"
}

Cost & credits

Every call that creates a task deducts credits up front. Unused credits from auto-verify and auto-retry are refunded after the schedule completes.

ActionCostNotes
Index URL2 creditsStandard lane
Index URL · Express+13 creditsSub-2-min crawl signal
Status check0.1 creditsVerifies if URL is in Google
Verify after indexing+1 creditSchedules re-checks · refundable

Get profile

GET ?action=me

Returns your account email, credit balance, and signup date. Useful as a health probe in CI.

Request
curl 'https://platinumindexer.com/api/v1/index.php?action=me' \
  -H 'X-API-Key: YOUR_KEY'
200 OK
{
  "success": true,
  "user": {
    "id": 123,
    "email": "[email protected]",
    "credits_balance": 500,
    "created_at": "2026-04-12 10:00:00"
  }
}

Submit URLs

POST ?action=create_task

Queue a batch of URLs for indexing or status checking. Returns a task_id you'll use to poll progress.

FieldTypeDefaultDescription
urlsrequiredarray | stringArray of URLs, or a string with one URL per newline.
typestringindexerindexer submits to Google. checker just verifies index status.
enginestringgoogleOnly Google is supported.
titlestringnullOptional label that shows up in your dashboard.
vipboolfalseRoute through the express lane (sub-2-min crawl, costs more).
drip_feedboolfalseStagger submissions over multiple days.
drip_duration_daysint31–30. Only honored when drip_feed is true.
Request body
{
  "urls": ["https://example.com/page1", "https://example.com/page2"],
  "type": "indexer",
  "title": "April launch",
  "vip": true
}
cURL
curl -X POST 'https://platinumindexer.com/api/v1/index.php?action=create_task' \
  -H 'X-API-Key: YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"urls":["https://example.com/page1"],"vip":true}'
200 OK
{
  "success": true,
  "task_id": 456,
  "is_drip_feed": false
}

Poll a task

GET ?action=get_task&task_id={id}

Returns headline progress for a single task. Poll every 30–60s; we don't rate-limit polling but there's no real signal sooner than that.

Response
{
  "success": true,
  "task": {
    "id": 456,
    "title": "April launch",
    "type": "indexer",
    "status": "processing",
    "progress": { "updated": 10, "pending": 5 }
  }
}

Response shape

All responses are JSON with a top-level success boolean. Successful responses carry the relevant resource (user, task, links, …); failures carry error.

Status codes

CodeMeaning
200OK
400Bad request — missing/invalid parameters
401Missing or invalid X-API-Key
402Insufficient credits
404Task or resource not found
429Too many requests — back off
5xxApex side issue — retry with exponential backoff