Operations 3
3 of 3 operations are conformant: apis.io called them with no credentials and the responses matched this contract. Checked 2026-11-12. how this works · status file
3 of 3 operations are conformant: apis.io called them with no credentials and the responses matched this contract. Checked 2026-11-12. how this works · status file
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/curlship-com:curlship-com-stats-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: Curlship Com Stats API
version: 1.0.0
contact:
name: CurlShip Support
email: support@curlship.com
url: https://curlship.com
license:
name: Proprietary
description: 'Operations tagged Stats across 2 of this provider''s published API definitions: curlship-com-openapi.json, curlship-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://curlship.com
description: Production
tags:
- name: Stats
description: Live site counters.
paths:
/api/stats:
get:
tags:
- Stats
summary: Live site stats
description: 'Site-wide counters, refreshed about once a minute: listings created in the last rolling 24 hours, total active listings, and the site''s Domain Rating by Ahrefs (`domain_rating` is `null` until one is set — refreshed daily from the free Ahrefs API, with set_dr.py as the manual fallback). The same numbers sit in the cmd-bar at the bottom of every page.'
operationId: getStats
responses:
'200':
description: The stats
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
domain_rating:
oneOf:
- type: object
properties:
value:
type: integer
minimum: 0
maximum: 100
example: 37
checked_at:
type: string
format: date
example: '2026-09-20'
description: The day the DR was read off Ahrefs.
source:
type: string
example: Domain Rating by Ahrefs
license:
type: string
format: uri
example: http://ahrefs.com/legal/domain-rating-license
- type: 'null'
description: The site's Ahrefs DR, or null while unset.
new_24h:
type: integer
example: 12
description: Active listings created in the last rolling 24h.
total:
type: integer
example: 2044
example:
ok: true
domain_rating:
value: 37
checked_at: '2026-09-20'
source: Domain Rating by Ahrefs
license: http://ahrefs.com/legal/domain-rating-license
new_24h: 12
total: 2044
servers:
- url: https://curlship.com
description: Production
/api/stats/daily:
get:
tags:
- Stats
summary: Listings added per UTC day
description: 'The zero-filled daily series behind the public /stats page: one entry per calendar day from the first listing to today (UTC), each with `added` and the `cumulative` running total since day one. `range` selects the window — `all` (default) or an integer 1-3650 for the last N days; a window''s last `cumulative` is always the site total. Anything else gets a 400.'
operationId: getDailyStats
parameters:
- name: range
in: query
required: false
description: '`"all"` (default) for the whole series, or an integer 1-3650 for the last N days.'
schema:
type: string
example: all
responses:
'200':
description: The daily series
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
timezone:
type: string
example: UTC
range:
oneOf:
- type: string
example: all
- type: integer
example: 30
description: The window that was applied.
first_day:
type:
- string
- 'null'
format: date
example: '2026-03-20'
description: First day of the returned series.
last_day:
type: string
format: date
example: '2026-10-13'
description: Always today, UTC.
total:
type: integer
example: 2044
description: Total active listings counted in the series — the same number /api/stats reports, minus rows whose created_at cannot be parsed or predates the 2026-01-01 floor; those are skipped.
days:
type: array
items:
type: object
properties:
date:
type: string
format: date
example: '2026-10-12'
added:
type: integer
example: 118
description: Listings created on that UTC day.
cumulative:
type: integer
example: 2044
description: Running total since the very first listing.
example:
ok: true
timezone: UTC
range: all
first_day: '2026-03-20'
last_day: '2026-10-13'
total: 2044
days:
- date: '2026-10-12'
added: 118
cumulative: 2043
- date: '2026-10-13'
added: 1
cumulative: 2044
'400':
description: range is neither "all" nor an integer 1-3650
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
servers:
- url: https://curlship.com
description: Production
/api/stats/dr:
get:
tags:
- Stats
summary: Domain Rating history
description: Every recorded Ahrefs Domain Rating, one per UTC day, ascending — the series behind the /stats chart. `current` is the latest reading (null until one is set). `change` compares the latest reading to the most recent one with a different value — the last actual step — and is null while fewer than two exist or every reading is equal. `growth` compares the latest reading to the very first and is null with fewer than two. History starts at the first recorded reading and grows by one row per day the DR is checked.
operationId: getDrHistory
responses:
'200':
description: The DR series
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
example: true
current:
oneOf:
- type: object
properties:
value:
type: integer
minimum: 0
maximum: 100
example: 46
checked_at:
type: string
format: date
example: '2026-10-03'
description: The day the DR was read off Ahrefs.
- type: 'null'
description: The site's Ahrefs DR, or null while unset.
history:
type: array
items:
type: object
properties:
date:
type: string
format: date
example: '2026-10-02'
value:
type: integer
minimum: 0
maximum: 100
example: 37
change:
oneOf:
- type: object
properties:
delta:
type: integer
example: 9
description: Latest minus the last differing value — signed.
since:
type: string
format: date
example: '2026-10-02'
description: The last differing reading's day.
from:
type: integer
example: 37
description: The last differing reading's value.
- type: 'null'
description: Latest vs the most recent reading with a different value — the last step. Null with fewer than two readings, or when every reading is equal.
growth:
oneOf:
- type: object
properties:
delta:
type: integer
example: 9
description: Latest minus first value — signed.
since:
type: string
format: date
example: '2026-10-02'
description: The first reading's day.
from:
type: integer
example: 37
description: The first reading's value.
- type: 'null'
description: Latest vs first reading, or null with fewer than two.
example:
ok: true
current:
value: 46
checked_at: '2026-10-03'
history:
- date: '2026-10-02'
value: 37
- date: '2026-10-03'
value: 46
change:
delta: 9
since: '2026-10-02'
from: 37
growth:
delta: 9
since: '2026-10-02'
from: 37
servers:
- url: https://curlship.com
description: Production
components:
schemas:
Error:
type: object
properties:
ok:
type: boolean
example: false
error:
type: string
example: url is required and must start with http
required:
- ok
- error
externalDocs:
description: Badge guide & instant verify
url: https://curlship.com/badge
x-refined-from:
- curlship-com-openapi.json
- curlship-com-openapi.yml