CacheBoost Sites API
The Sites API from CacheBoost — 5 operation(s) for sites.
The Sites API from CacheBoost — 5 operation(s) for sites.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cache-boost-com:cache-boost-com-sites-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CacheBoost Sites API
version: '1'
description: 'The CacheBoost API lets you manage sites, sitemaps, boosts, and runs
programmatically. All endpoints are under `/v1`.'
servers:
- url: https://api.cache-boost.com/v1
description: Production
security:
- bearerAuth: []
tags:
- name: Sites
paths:
/sites:
get:
operationId: listSites
summary: List sites
description: Returns all sites belonging to the authenticated user. If the API key is restricted to specific sites, only those sites are returned.
tags:
- Sites
security:
- bearerAuth:
- sites:read
responses:
'200':
description: List of sites
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Site'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
post:
operationId: createSite
summary: Create a site
description: 'Add a new site to your account. Returns a `validation_token` used to verify
site ownership. Unverified sites are capped at 10 URLs per boost.
To verify ownership, use one of two methods:
**Method 1 — HTML file:** Create a file named `{validation_token}.html` at the root of
your site (e.g. `https://www.example.com/{validation_token}.html`). It must return HTTP 200.
**Method 2 — Meta tag:** Add ``
to the `` of your homepage.
Then trigger the check from the dashboard. See the Allow traffic guide.'
tags:
- Sites
security:
- bearerAuth:
- sites:write
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- domain
properties:
domain:
type: string
example: www.example.com
description: Domain without scheme or trailing slash. The `https://` prefix is stripped automatically if provided.
responses:
'201':
description: Site created
content:
application/json:
schema:
$ref: '#/components/schemas/SiteCreated'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'422':
$ref: '#/components/responses/UnprocessableEntity'
/sites/{id}:
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Site ID
get:
operationId: getSite
summary: Get a site
description: Retrieve a single site by ID.
tags:
- Sites
security:
- bearerAuth:
- sites:read
responses:
'200':
description: Site
content:
application/json:
schema:
$ref: '#/components/schemas/SiteDetail'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteSite
summary: Delete a site
description: 'Permanently delete a site and all associated sitemaps, boosts, and run history.
This action is irreversible.'
tags:
- Sites
security:
- bearerAuth:
- sites:write
responses:
'204':
description: Site deleted
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/sites/{id}/warm:
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Site ID
post:
operationId: warmSite
summary: Warm URLs
description: 'Trigger an on-demand cache warm for a specific list of URLs. The response is
`202 Accepted` — the run is queued and processed asynchronously. Poll
`GET /runs/{run_id}` to track progress.
The site must be validated before warming. Only URLs belonging to the site''s
domain are accepted. Duplicate URLs are deduplicated automatically.'
tags:
- Sites
security:
- bearerAuth:
- boosts:write
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- urls
properties:
urls:
type: array
items:
type: string
maxItems: 5000
example:
- https://www.example.com/
- https://www.example.com/about
description: List of URLs to warm. All URLs must belong to the site's domain.
region:
type: array
items:
type: string
enum:
- fr
- de
- gb
- es
- it
- ch
- us
- ca
- br
- sg
- in
- au
- uk
default:
- fr
description: Target regions for warming. `GET /v1/me` lists the available ones; `uk` is accepted as `gb`.
variations:
type: object
description: Warming variations. Each combination counts as one call per URL.
properties:
user_agents:
type: array
items:
type: string
enum:
- mobile
- desktop
- bot
- ai_crawler
languages:
type: array
items:
type: string
example:
- fr-FR
- en-US
responses:
'202':
description: Warm run queued
content:
application/json:
schema:
type: object
properties:
run_id:
type: integer
example: 91
url_count:
type: integer
example: 2
status:
type: string
example: pending
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'409':
description: Site is not validated, or a warm run is already in progress
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
$ref: '#/components/responses/UnprocessableEntity'
/sites/{id}/warm-runs:
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Site ID
get:
operationId: listWarmRuns
summary: List warm runs
description: Returns on-demand warm run history for a site, newest first.
tags:
- Sites
security:
- bearerAuth:
- boosts:read
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
maximum: 100
description: Number of results to return.
- name: offset
in: query
schema:
type: integer
default: 0
description: Pagination offset.
responses:
'200':
description: Paginated list of warm runs
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/WarmRun'
total:
type: integer
limit:
type: integer
offset:
type: integer
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
/sites/{id}/validate:
parameters:
- name: id
in: path
required: true
schema:
type: integer
description: Site ID
post:
operationId: validateSite
summary: Validate site ownership
description: 'Triggers an ownership check for a site. CacheBoost makes an HTTP request
to the site and looks for the `validation_token` using one of two methods:
**Method 1 — HTML file:** A file named `{validation_token}.html` must be
accessible at the site root (e.g. `https://www.example.com/{validation_token}.html`)
and return HTTP 200.
**Method 2 — Meta tag:** The homepage must contain
`` in its ``.
On success, the site is marked as validated and `validated: true` is returned.
If the token is not found, `validated: false` is returned with HTTP 422.
Returns immediately without polling — the check is synchronous.'
tags:
- Sites
security:
- bearerAuth:
- sites:write
responses:
'200':
description: Validation succeeded (or site was already validated)
content:
application/json:
schema:
type: object
properties:
validated:
type: boolean
example: true
already_validated:
type: boolean
description: Present and `true` when the site was already validated before this call.
example: true
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
description: Token not found on the site
content:
application/json:
schema:
type: object
properties:
validated:
type: boolean
example: false
error:
type: string
example: Validation token not found on the site.
components:
schemas:
WarmRun:
type: object
properties:
id:
type: integer
example: 91
status:
type: string
enum:
- pending
- running
- done
- failed
example: done
status_message:
type: string
nullable: true
source_urls:
type: array
items:
type: string
example:
- https://www.example.com/
- https://www.example.com/about
run_region:
type: array
items:
type: string
example:
- fr
- us
started_at:
type: string
format: date-time
nullable: true
finished_at:
type: string
format: date-time
nullable: true
summary:
$ref: '#/components/schemas/RunSummary'
created_at:
type: string
format: date-time
RunSummary:
type: object
nullable: true
properties:
total_calls:
type: integer
example: 1240
successful_calls:
type: integer
example: 1238
failed_calls:
type: integer
example: 2
cache_hits:
type: integer
example: 1165
average_response_time_ms:
type: number
example: 112.5
pops:
type: object
additionalProperties:
type: integer
example:
CDG: 450
IAD: 390
Site:
type: object
properties:
id:
type: integer
example: 42
domain:
type: string
example: www.example.com
validated:
type: boolean
example: true
created_at:
type: string
format: date-time
Error:
type: object
properties:
error:
type: string
example: Description of the error.
SiteCreated:
allOf:
- $ref: '#/components/schemas/SiteDetail'
- type: object
properties:
validated:
type: boolean
example: false
SiteDetail:
allOf:
- $ref: '#/components/schemas/Site'
- type: object
properties:
validation_token:
type: string
example: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4
responses:
UnprocessableEntity:
description: Validation error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: Resource not found or not accessible with this key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Forbidden:
description: Valid key but missing required scope
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: API key in the format `cb_live_<32hex>`