---
title: "Indexing API for any page, not just job postings"
description: "Send any public URL to Google with one API key and track each page until it is indexed. No service account, no site verification, and credits back for pages that are not indexed."
canonical: "https://indexmysite.app/indexing-api"
language: "en"
---

# Submit any page to Google with one API call

Google's Indexing API only accepts job postings and livestreams. The Index My Site API accepts any public page, sends it to Google, and tells you when it is indexed. If a page is not indexed, you get the credit back.

[Get an API key](https://app.indexmysite.app/signup)[API reference](https://indexmysite.app/docs/api)

## Build your first request

Paste your URLs, choose any add-ons, and copy the request in curl, JavaScript, Python, or the CLI.

Create a job with a POST request:

```
curl -X POST https://indexmysite.app/api/indexing/jobs \
  -H "Authorization: Bearer $INDEXMYSITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls":["https://example.com/changelog/new-feature"],"name":"Release 2.4"}'
```

## Google Indexing API vs Index My Site

Google's Indexing API does not accept product pages, docs, or blog posts. Index My Site accepts any public page.

Google Indexing API compared with the Index My Site API
| Question | Google Indexing API | Index My Site API |
| --- | --- | --- |
| Pages it accepts | Only pages with job posting or livestream video structured data | Any public http or https page |
| Setup | Cloud project, service account, OAuth token, and the service account added as a Search Console owner | One API key from Settings, sent as a bearer token |
| Site ownership | Required for every site | Not required |
| Volume | 200 publish requests a day per project by default | Up to 2000 URLs per job, as many jobs as you need |
| What you learn afterwards | When Google received your last notification | Per-URL status: checked, sent, indexed, not indexed, or refunded |
| Pages that are not indexed | No follow-up | The standard credit comes back once a page is confirmed as not indexed |

Google figures from the [Indexing API quickstart](https://developers.google.com/search/apis/indexing-api/v3/quickstart) and [quota page](https://developers.google.com/search/apis/indexing-api/v3/quota-pricing).

## Track every URL until it is indexed

Each job returns a status for every URL and a short message saying what happens next. Check the job at any time from your code, the CLI, or your agent.

```
{
  "job": {
    "id": "job_...",
    "name": "Release 2.4",
    "total": 2,
    "counts": { "submitted": 2 },
    "guidance": {
      "phase": "running",
      "sent": 2,
      "timing": {
        "firstCheckAfterHours": 24,
        "additionalSearchAroundDays": [3, 7],
        "fullReportAroundDay": 5,
        "finalChecksAroundDay": 14
      },
      "message": "2 of 2 URLs have been sent and their checks continue..."
    }
  }
}
```

1.  Checked before it is sent

    Redirects, noindex tags, robots.txt blocks, and error pages are skipped and not charged.

2.  Searched after 24 hours

    We search Google for the exact URL, and again around days 3 and 7 until it shows up.

3.  Reported around day 5, final around day 14

    A page confirmed as not indexed at the final check returns its standard credit.

## Submit from your deploy, your sitemap, or your agent

Most teams submit pages automatically when they publish. Pick the setup that matches how you ship.

[

### Index on every deploy

Watch your sitemap, or add one step to CI that submits the pages a release changed.

](https://indexmysite.app/automatic-indexing)[

### Let your agent do it

Connect the MCP server so Claude Code, Cursor, or Codex submits pages right after it publishes them.

](https://indexmysite.app/indexing-mcp-server)[

### API reference

Every route, status, and field, with idempotent retries and the OpenAPI document.

](https://indexmysite.app/docs/api)[

### Check a page first

The free indexability checker finds robots rules, noindex tags, and thin content before you spend a credit.

](https://indexmysite.app/tools/indexability)

## Frequently asked questions

### Can I use the Google Indexing API for normal pages?

Google says its Indexing API can only be used for pages with job posting or livestream video structured data. Every request goes through spam detection, and Google says abusing it, including using several accounts to get around quotas, can get access revoked. For product pages, docs, blog posts, and everything else, Google points you to sitemaps and Search Console.

Source: [Google Indexing API quickstart](https://developers.google.com/search/apis/indexing-api/v3/quickstart)

### Does Index My Site use the Google Indexing API?

No. We help Googlebot discover and crawl the public pages you submit, then check whether each one is indexed. Google still decides what it indexes, on the same terms as any other page.

### Do I need to verify that I own the site?

No. There is no Search Console connection and nothing to install. Any public, crawlable URL can be submitted, including pages on other sites that mention you.

### What does a request cost?

Each sent URL costs 1 credit, which is $0.20, or $0.10 on purchases of $1,000 or more. Fast and Bing add 1 credit per URL each. URLs that are skipped before sending, such as redirects or noindex pages, are not charged, and a page confirmed as not indexed gets its standard credit back.

### How do I retry safely?

Send an Idempotency-Key header with each job. If a request times out and you send it again with the same key, you get the original job back instead of a second charge.

### How long until a page is indexed?

We check every URL once after 24 hours. Your full report follows around day 5, with final checks around day 14. With Fast, time-sensitive pages are usually indexed within 5 to 10 minutes. Indexing is never guaranteed: Google decides, and thin, duplicate, or blocked pages are unlikely to make it.

### Is there a rate limit?

Each job takes up to 2000 URLs and you can create as many jobs as you have credits for. Submitting the same URL while an earlier job still has it in progress skips the duplicate without charging it.

## Index your next release

Create an account, buy credits from $25, and send your first job in a few minutes.

[Get an API key](https://app.indexmysite.app/signup)

[See pricing](https://indexmysite.app/pricing)
