Developers
Submit URLs, follow their crawl status and check your balance over HTTPS with JSON. Base URL: https://quickindexx.com/api/v1
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.
/api/v1/submitAPI key requiredurls (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.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"
}{
"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…" }
]
}/api/v1/status?ids=a,b,cAPI key required{
"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" }
}
]
}/api/v1/history?page=1&limit=50API key requiredlimit 1–100.{
"success": true,
"data": [ { "id": "…", "url": "…", "status": "indexed", "source": "api", "createdAt": "…", "botVisitedAt": "…", "indexedAt": "…" } ],
"pagination": { "page": 1, "limit": 50, "total": 132, "pages": 3 }
}/api/v1/balanceAPI key required{
"success": true,
"credits": 498,
"creditCostPerUrl": 1,
"stats": { "visited": 40, "indexed": 31, "refunded": 2 }
}/api/v1/plansNo authpriceUsd, credits and perUrlUsd./api/v1/healthNo auth{ "success": true, "status": "online", "feedersOnline": 4, "capacityLeftToday": 612, "queued": 0 }Errors return { "success": false, "error": "…" } with one of these HTTP codes:
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"]}'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);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
$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);