QuickIndexx

Developers

QuickIndexx API v1

Submit URLs, follow their crawl status and check your balance over HTTPS with JSON. Base URL: https://quickindexx.com/api/v1

Authentication

  1. Create a key in Dashboard → API. It is shown once — store it safely.
  2. Switch API access on for the key (it starts disabled).
  3. Optional: restrict the key to a list of server IPs (IP whitelist).
  4. Send it as Authorization: Bearer qi_live_… or X-API-Key: qi_live_….

Rate limit: 20 requests/second per key on Personal plans, 50 on Business plans. Up to 500 URLs per submit call.

POST/api/v1/submitAPI key required
Submit one or more URLs. Send urls (array, max 500) or a single url. Optional source: api | wordpress | chrome. Each accepted URL costs 1 credit; rejected URLs cost nothing and duplicates in one request are merged.
Request
POST https://quickindexx.com/api/v1/submit
Authorization: Bearer qi_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{
  "urls": [
    "https://yoursite.com/new-post",
    "https://partner-site.com/guest-post"
  ],
  "source": "api"
}
Response 200
{
  "success": true,
  "submitted": 2,
  "rejected": 0,
  "creditsUsed": 2,
  "remainingCredits": 498,
  "results": [
    { "url": "https://yoursite.com/new-post", "status": "queued", "id": "cm3x1…" },
    { "url": "https://partner-site.com/guest-post", "status": "queued", "id": "cm3x2…" }
  ]
}
GET/api/v1/status?ids=a,b,cAPI key required
Status of up to 100 submissions by the ids returned from submit.
Response 200
{
  "success": true,
  "data": [
    {
      "id": "cm3x1…",
      "url": "https://yoursite.com/new-post",
      "status": "visited",
      "error": null,
      "createdAt": "2026-10-29T10:00:00.000Z",
      "submittedAt": "2026-10-29T10:00:21.000Z",
      "botVisitedAt": "2026-10-29T10:02:47.000Z",
      "indexedAt": null,
      "enginesNotified": ["bing", "yandex", "seznam", "naver", "yep"],
      "crawlerVisits": { "google": "2026-10-29T10:02:47.000Z", "bing": "2026-10-29T10:09:12.000Z" }
    }
  ]
}
GET/api/v1/history?page=1&limit=50API key required
Your submissions, newest first. limit 1–100.
Response 200
{
  "success": true,
  "data": [ { "id": "…", "url": "…", "status": "indexed", "source": "api", "createdAt": "…", "botVisitedAt": "…", "indexedAt": "…" } ],
  "pagination": { "page": 1, "limit": 50, "total": 132, "pages": 3 }
}
GET/api/v1/balanceAPI key required
Current credits and a count of your submissions by status.
Response 200
{
  "success": true,
  "credits": 498,
  "creditCostPerUrl": 1,
  "stats": { "visited": 40, "indexed": 31, "refunded": 2 }
}
GET/api/v1/plansNo auth
Active credit packs with priceUsd, credits and perUrlUsd.
GET/api/v1/healthNo auth
Service status and today's remaining submission capacity.
Response 200
{ "success": true, "status": "online", "feedersOnline": 4, "capacityLeftToday": 612, "queued": 0 }

Statuses

queued
Accepted and charged; waiting for a feeder with free capacity.
submitted
Crawl signal sent to Google (Indexing API) and IndexNow. Waiting for Googlebot.
visited
A Googlebot visit was verified by reverse + forward DNS.
indexed
The URL was found in Google's index during a follow-up check.
not_indexed
Crawled, but still not in the index after the 72-hour check. Google decided not to index it (yet) — usually content or duplication.
refunded
No verified Googlebot visit within 24 hours — the credit was returned to your balance.
failed
Could not be processed. The error field explains why.

Errors

Errors return { "success": false, "error": "…" } with one of these HTTP codes:

400
Bad request — no valid URLs, more than 500 URLs, or missing ids.
401
Missing or invalid API key.
402
Not enough credits for the number of valid URLs sent. Nothing was charged.
403
API access disabled for this key, or request IP not in your whitelist.
429
Rate limit exceeded (20 requests/second per key on Personal, 50 on Business).

Examples

curl
curl -X POST https://quickindexx.com/api/v1/submit \
  -H "Authorization: Bearer $QI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://yoursite.com/new-post"]}'
Node.js (18+)
const res = await fetch("https://quickindexx.com/api/v1/submit", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.QI_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ urls: ["https://yoursite.com/new-post"] }),
});
const data = await res.json();
console.log(data.results);
Python
import os, requests

r = requests.post(
    "https://quickindexx.com/api/v1/submit",
    headers={"Authorization": f"Bearer {os.environ['QI_KEY']}"},
    json={"urls": ["https://yoursite.com/new-post"]},
    timeout=30,
)
print(r.json())
PHP
<?php
$ch = curl_init("https://quickindexx.com/api/v1/submit");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer " . getenv("QI_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode(["urls" => ["https://yoursite.com/new-post"]]),
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);

Welcome back

Log in to submit URLs and track crawls.

or with email

No account?