Skip to content

Docs

API reference for Indexli.

Authenticate with X-API-Key from Dashboard → API. Base path is /api/v1 on your API host.

Authentication

Send your key on every request. Session cookies work in the browser app; use the header for scripts and server jobs.

curl -X POST https://api.example.com/api/v1/projects \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ix_live_••••••••" \
  -d '{ "name": "Batch", "urls": ["https://example.com"], "mode": "standard" }'

Endpoints

POST/api/v1/projects

Create a project and enqueue URLs for indexing.

{
  "name": "Campaign",
  "urls": [
    "https://example.com/a",
    "https://example.com/b"
  ],
  "notify": true
}
  • 1 credit per URL, reserved on submit and returned for any URL that is not indexed.
  • Accepted immediately: work is queued and sent to the indexer as soon as worker and provider capacity allow. There is no day-based drip-feed.
  • Max 10,000 URLs per request after normalize + dedupe.
  • Returns 402 if the account lacks credits.
  • Send Idempotency-Key to make retries safe — a duplicate request returns the same project instead of debiting twice.
GET/api/v1/projects

List your projects (paginated).

  • Query: page, limit.
  • Includes status, totals, and credit holds.
GET/api/v1/projects/:id

Project detail with per-URL submission summary.

  • Poll while status is PROCESSING / CHECKING.
GET/api/v1/projects/:id/report

Export-ready report payload for a finished project.

  • JSON is paginated: page (default 1) and limit (default 1000, max 5000). Read hasMore and keep paging until it is false.
  • format=csv streams every row in one download and is not paginated.
POST/api/v1/projects/:id/recheck

Force a status poll / recheck against the provider.

GET/api/v1/credits

Current balance and credit transaction ledger.

  • Query: page, limit.
GET/api/v1/credits/packs

Active credit packs available for purchase.