Skip to content
Documentation menu

API reference

Search Console and IndexNow

Get a changed page crawled: submit a sitemap, ask Google for its index verdict on a URL, and notify IndexNow.

POST /brands/{brandId}/search/sitemap

Submit your sitemap to Google Search Console through your own connection.

About this routeDetail
Returnsok, site, feedpath and sitemaps.
SeatA key on a member seat or above. A viewer's key is refused with 403.
PlanEvery plan.
Rate limit30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own.
Engine budgetNothing this route does is metered.
ParameterTypeWhat it is
brandId (path, required)uuidA brand id from GET /brands.

The body is JSON, and it may be left out. Its schema, taken from the route's own validation:

{
  "type": "object",
  "properties": {
    "sitemapUrl": {
      "type": "string",
      "maxLength": 500
    }
  }
}
curl -X POST "https://api.ansengine.co/brands/{brandId}/search/sitemap" \
  -H "Authorization: Bearer ak_your_key" \
  -H "Content-Type: application/json" \
  --data @body.json
StatusWhen
200ok, site, feedpath and sitemaps.
400An id in the path is not a valid id.
401No valid API key was sent.
403The key belongs to a viewer seat, which can read and cannot write.
404No such brand for this key. A brand in another workspace and a client outside this seat's view answer the same way, so a 404 never confirms that an id exists.
422The brand has no domain, or Search Console refused the submission. The body says why.
429Over the rate limit: 30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own. The Retry-After header says how many seconds to wait.
503Connections are not configured on this deployment.

POST /brands/{brandId}/search/inspect

Google's own index verdict for one URL, verbatim.

About this routeDetail
Returnsok, url, verdict, coverageState, robotsTxtState, indexingState, lastCrawlTime and note. Google's data can lag by days.
SeatA key on a member seat or above. A viewer's key is refused with 403.
PlanEvery plan.
Rate limit30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own.
Engine budgetNothing this route does is metered.
ParameterTypeWhat it is
brandId (path, required)uuidA brand id from GET /brands.

The body is JSON. Its schema, taken from the route's own validation:

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "maxLength": 500
    }
  },
  "required": [
    "url"
  ]
}
curl -X POST "https://api.ansengine.co/brands/{brandId}/search/inspect" \
  -H "Authorization: Bearer ak_your_key" \
  -H "Content-Type: application/json" \
  --data @body.json
StatusWhen
200ok, url, verdict, coverageState, robotsTxtState, indexingState, lastCrawlTime and note. Google's data can lag by days.
400An id in the path is not a valid id.
401No valid API key was sent.
403The key belongs to a viewer seat, which can read and cannot write.
404No such brand for this key. A brand in another workspace and a client outside this seat's view answer the same way, so a 404 never confirms that an id exists.
422The brand has no domain, or Search Console could not inspect the URL. The body says why.
429Over the rate limit: 30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own. The Retry-After header says how many seconds to wait.
503Connections are not configured on this deployment.

GET /brands/{brandId}/search/indexnow

The brand's IndexNow key, and where to host it.

About this routeDetail
Returnskey and keyFile: the URL on your primary domain where the key file must be served before a submission is accepted. The key is created on the first read.
SeatAny seat's key, a viewer's included.
PlanEvery plan.
Rate limitNone on this route.
Engine budgetNothing this route does is metered.
ParameterTypeWhat it is
brandId (path, required)uuidA brand id from GET /brands.
curl "https://api.ansengine.co/brands/{brandId}/search/indexnow" \
  -H "Authorization: Bearer ak_your_key"
StatusWhen
200key and keyFile: the URL on your primary domain where the key file must be served before a submission is accepted. The key is created on the first read.
400An id in the path is not a valid id.
401No valid API key was sent.
404No such brand for this key. A brand in another workspace and a client outside this seat's view answer the same way, so a 404 never confirms that an id exists.
422The brand has no domain.

POST /brands/{brandId}/search/indexnow

Notify Bing, Yandex and the other IndexNow engines about changed URLs.

Note

One submission speaks for one host: only URLs on the primary domain qualify, and the key file must be live there. Google does not take part in IndexNow.

About this routeDetail
Returnsok, submitted, rejected (URLs not on the primary domain's host) and status.
SeatA key on a member seat or above. A viewer's key is refused with 403.
PlanEvery plan.
Rate limit30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own.
Engine budgetNothing this route does is metered.
ParameterTypeWhat it is
brandId (path, required)uuidA brand id from GET /brands.

The body is JSON. Its schema, taken from the route's own validation:

{
  "type": "object",
  "properties": {
    "urls": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      }
    }
  },
  "required": [
    "urls"
  ]
}
curl -X POST "https://api.ansengine.co/brands/{brandId}/search/indexnow" \
  -H "Authorization: Bearer ak_your_key" \
  -H "Content-Type: application/json" \
  --data @body.json
StatusWhen
200ok, submitted, rejected (URLs not on the primary domain's host) and status.
400An id in the path is not a valid id.
401No valid API key was sent.
403The key belongs to a viewer seat, which can read and cannot write.
404No such brand for this key. A brand in another workspace and a client outside this seat's view answer the same way, so a 404 never confirms that an id exists.
422No URL qualified, or IndexNow refused the submission. The body says why.
429Over the rate limit: 30 requests a minute for the workspace, counted across every write that takes this limit, the console's included. A seat limited to named clients gets 15 of its own. The Retry-After header says how many seconds to wait.