IndexLaunch

Docs & Guides

Everything you need to submit links, read your results, and manage your account on IndexLaunch.

Getting Started

  1. Create an account and pick a credit package from the Packages page.
  2. Open your Dashboard and paste one link per line into the submission box — each line should be a full URL starting with https://.
  3. Click Queue for Indexing. Each link costs one credit and joins the submission queue immediately.
  4. Watch the Submission History table on your dashboard — it updates live as each link resolves, no refresh needed.

Submission Statuses

Every link you submit moves through one of four statuses, shown as a colored badge in your Submission History:

pending
Just submitted and waiting in the submission queue. Most submissions are sent within 1 to 3 minutes.
submitted
Accepted by the search engines we submit to and queued for crawling. This isn't yet confirmation that the page is indexed: we check Google for it on day 2, 7 and 14 and mark it "on Google" in your Submission History when it appears. Your Links Submitted count on the Settings page goes up by one for each.
failed
Not sent because the site doesn't have your key file yet (Settings → Domain Verification), or not accepted by the search engines. The credit comes back to your balance automatically; verify the site, then submit the link again.
refunded
A submission that stayed stuck in the queue for more than 7 days is automatically refunded — the credit is returned to your balance with no action needed from you.

Credits & Billing

Every plan is a one-time credit pack — 1 credit submits 1 link, and credits never expire.

Launch

150 credits · $9

Starter

1,000 credits · $50

Professional

3,500 credits · $150

Enterprise

5,000 credits · $200

Agency

10,000 credits · $350

Pricing shows in INR with Indian payment methods (UPI, cards, netbanking) for visitors in India, and in USD for everyone else — this is detected automatically, there's nothing to switch. Purchases are final, with one exception: credits spent on a link that's still stuck pending after 7 days are refunded automatically. See the Refunds & Cancellations page for full terms.

Account Settings

Everything under Settings takes effect immediately:

  • Email Alerts / Indexing Updates / Product News — toggle which emails you receive independently.
  • Timezone — controls how submission timestamps are displayed across your dashboard.
  • Phone Number — used only to pre-fill Indian payment methods (UPI/cards) at checkout; it's never required to use the product.

Getting Help

Open a ticket from the Support page and pick the category that fits best:

Technical ProblemBilling & PaymentsAccount ManagementIndexing QuestionFeature SuggestionSomething Else

Response times depend on the priority you set when opening the ticket:

Low

48-72h

Medium

24-48h

High

12-24h

Urgent

2-4h

API Reference

Connect IndexLaunch to your own code, CMS or deploy pipeline so new and updated pages are sent for indexing automatically. The API uses the same credit balance as your dashboard.

How it works

  1. Your server sends a list of page URLs to IndexLaunch, signed with your API key.
  2. IndexLaunch checks each URL, deducts one credit per URL and sends it to search engines for crawling. You get back one ID per URL.
  3. Use those IDs to check each URL's status whenever you like.

Set up in 4 steps

  1. Sign in and create a key in Settings → API Access. It's shown once, so copy it straight away.
  2. Store the key as a secret environment variable on your server or CI, for example INDEXLAUNCH_API_KEY. Never put it in browser code or a public repository.
  3. Verify each domain you'll submit (Settings → Domain Verification). Search engines reject URLs from unverified sites.
  4. Call the API from your backend, a script or your deploy pipeline. The examples below are ready to copy.

Authentication

Send your key in the Authorization header of every request as Bearer YOUR_KEY. All requests use HTTPS and JSON.

Authorization: Bearer il_live_xxxxxxxxxxxxxxxxxxxxxxxx

Submit URLs

Send up to 500 full URLs (starting with https://) per request. Each URL costs one credit. The response lists one ID per URL, in the same order you sent them.

POST https://www.indexlaunch.site/api/v1/submit
Authorization: Bearer il_live_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json

{ "urls": ["https://example.com/page-1", "https://example.com/page-2"] }
200 OK
{ "submitted": 2, "ids": ["j57...", "j58..."] }

Check a URL's status

Pass an ID from the submit response. You can only read URLs submitted by your own account.

GET https://www.indexlaunch.site/api/v1/urls/j57...
Authorization: Bearer il_live_xxxxxxxxxxxxxxxxxxxxxxxx
200 OK
{
  "id": "j57...",
  "url": "https://example.com/page-1",
  "status": "indexed",
  "submittedAt": 1757740800000,
  "indexedAt": 1757741100000
}

Response fields

id
The submission ID.
url
The URL you submitted.
status
One of the status values below.
submittedAt
When it was submitted, in milliseconds since the Unix epoch.
indexedAt
When search engines accepted it. Missing until then.

Status values

pending
Received and waiting to be sent. Most URLs move on within a few minutes.
indexed
Accepted by search engines and queued for crawling. The dashboard shows this as "Submitted". It doesn't yet confirm the page is indexed.
failed
Search engines didn't accept the URL, most often because the domain isn't verified. The credit is returned automatically.
refunded
The URL was stuck for more than 7 days, so the credit was returned automatically.

Code examples

curl

curl -X POST https://www.indexlaunch.site/api/v1/submit \
  -H "Authorization: Bearer $INDEXLAUNCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com/new-post"]}'

JavaScript (Node.js 18+)

const res = await fetch("https://www.indexlaunch.site/api/v1/submit", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.INDEXLAUNCH_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    urls: ["https://example.com/new-post", "https://example.com/pricing"],
  }),
});

const data = await res.json();
if (!res.ok) throw new Error(data.error);
console.log(`Submitted ${data.submitted} URLs`, data.ids);

Python

import os
import requests

res = requests.post(
    "https://www.indexlaunch.site/api/v1/submit",
    headers={"Authorization": f"Bearer {os.environ['INDEXLAUNCH_API_KEY']}"},
    json={"urls": ["https://example.com/new-post"]},
    timeout=30,
)
data = res.json()
if not res.ok:
    raise RuntimeError(data["error"])
print(data["submitted"], data["ids"])

After each deploy (GitHub Actions)

# .github/workflows/indexlaunch.yml
name: Submit new pages
on:
  workflow_dispatch:
  push:
    branches: [main]

jobs:
  submit:
    runs-on: ubuntu-latest
    steps:
      - name: Send changed URLs to IndexLaunch
        env:
          INDEXLAUNCH_API_KEY: ${{ secrets.INDEXLAUNCH_API_KEY }}
        run: |
          curl --fail-with-body -X POST https://www.indexlaunch.site/api/v1/submit \
            -H "Authorization: Bearer $INDEXLAUNCH_API_KEY" \
            -H "Content-Type: application/json" \
            -d '{"urls": ["https://example.com/new-post"]}'

Errors

Errors return JSON with an error field holding a message you can show or log.

400
Bad request: the body has no urls list, a URL isn't valid, more than 500 URLs were sent, there aren't enough credits, or requests are coming too fast.
401
The key is missing, wrong or revoked.
403
The account is suspended.
404
No submission with that ID belongs to your account.

Good practice

  • Submit only new or changed pages, not your whole site on every deploy.
  • Batch URLs into one request instead of sending one request per URL.
  • If you get "Too many requests" or a rate-limit message, wait a minute and retry. Your account's exact limits are shown in Settings → API Access.
  • If a key leaks, revoke it in Settings and create a new one. Revoked keys stop working immediately.

Want more on how indexing actually works? Read our guides.