Work with this as data
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/clearlist-me:clearlist-me-system-api"
All apis
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.
Get an API 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 Specification
openapi: 3.2.0
info:
title: ClearList System API
version: 0.3.6
description: 'API for ClearList, an AI resale manager. Agents authenticate via an API key acquired through the email verification flow, or as an OAuth 2.1 client (see /auth.md). Standard response envelope: `{ success: boolean, data?: object, error?: string }`. Errors return the Error schema with a machine-readable `code` and a resolution `hint`. Versioning: every response carries an X-API-Version header (currently 0.3); breaking changes ship as a new version and the old behavior is kept through a deprecation window announced via Deprecation and Sunset headers (RFC 8594) and the changelog at /developers. Retries: the operations that declare the Idempotency-Key header parameter accept it (1-255 chars; a UUID works well). The first successful (2xx) response is stored for 24h, and a retry with the same key replays it instead of duplicating the side effect, marked by an Idempotency-Replayed: true response header. An error returned by the operation itself is never stored and releases the key, so retrying that same request re-executes it. A key is scoped to the seller and the operation, and it identifies ONE request: while its record is live (the first request is still running, or it succeeded within the last 24h), the same key on the same operation with a different request body (compared byte for byte, so reformatted JSON counts as different) or from a different kind of credential (a signed-in session, an API key, and an OAuth token are three kinds) is refused with 422 `idempotency_key_reuse`. That refusal leaves the original record in place, so a corrected request needs a NEW key. A key outside the allowed characters is refused with 400 `invalid_idempotency_key`. Do not assume an operation is retry-safe because it looks like an update: check for the parameter on the operation itself.'
contact:
email: hello@clearlist.me
url: https://clearlist.me
servers:
- url: https://clearlist.me
description: Production
security:
- apiKey: []
- oauth2: []
tags:
- name: System
description: Health and status probes.
paths:
/api/health:
get:
operationId: getHealth
tags:
- System
summary: Liveness probe
description: Zero-dependency liveness check. Always 200 if the process is alive.
security: []
responses:
'200':
description: Alive.
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
timestamp:
type: string
format: date-time
/api/status:
get:
operationId: getStatus
tags:
- System
summary: Dependency-aware status
description: Checks Firestore and Stripe connectivity. Returns 'ok' or 'degraded'.
security: []
responses:
'200':
description: Status.
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- ok
- degraded
timestamp:
type: string
format: date-time
version:
type: string
checks:
type: object
properties:
firestore:
type: boolean
stripe:
type: boolean
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-ClearList-API-Key
description: 'API key in `cl_<64-hex>` format. Obtained via POST /api/auth/verify-code with `{ email, code, agent: true }`. Always full access (read and write). The same credential is also accepted as `Authorization: Bearer cl_<64-hex>`.'
oauth2:
type: oauth2
description: 'OAuth 2.1 authorization code flow. PKCE with code_challenge_method=S256 is required; public clients only (token_endpoint_auth_method none). Access tokens are `cl_<64-hex>` and are sent as `Authorization: Bearer <token>` (X-ClearList-API-Key also works). Operations that change state require the `write` scope; a grant without it gets 403. Reading needs no specific scope, so a `write`-only grant can also read.'
flows:
authorizationCode:
authorizationUrl: https://clearlist.me/oauth/authorize
tokenUrl: https://clearlist.me/api/oauth/token
refreshUrl: https://clearlist.me/api/oauth/token
scopes:
read: Read listings, reservations, conversations, page stats and plan status.
write: Create, edit, delete and publish listings; reply to buyers; share an address through the confirmed flow; set availability; create payment links.
bearerToken:
type: http
scheme: bearer
description: 'Firebase ID token for web UI authentication. A `Bearer cl_…` value is not a Firebase token: it is an API key or OAuth access token, covered by the apiKey and oauth2 schemes.'