reqistry-dev API Detail API
The API Detail API from reqistry-dev — 4 operation(s) for api detail.
The API Detail API from reqistry-dev — 4 operation(s) for api detail.
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/reqistry-dev:reqistry-dev-api-detail-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: Public APIs — Mobile Client API Detail API
description: 'API reference for the Public APIs Flutter mobile app. Includes anonymous device auth, email/password account linking, profile management, bookmarks, folders, discovery, categories, search, and legacy JSON endpoints.
## Authentication
Bearer-protected endpoints require:
```
Authorization: Bearer
```
Tokens are obtained via `POST /v1/auth/anonymous` or `POST /v1/auth/login-email`.
Public endpoints (no token required): `POST /submit`, `POST /v1/apis` (auth optional, enables submission attribution), `POST /v1/auth/anonymous`, `POST /v1/auth/refresh`, `POST /v1/auth/revoke`, `POST /v1/auth/login-email`, `GET /v1/recently-added`, `GET /v1/recommend` (auth optional, personalizes with bookmarks), `GET /v1/apis/{slug}`, `GET /v1/apis/{id}/alternatives`, `GET /v1/trust-scores/{id}`, `GET /v1/apis/compare`, `GET /v1/change-feed`, `GET /v1/use-case-collections`, categories (unversioned and `/v1` aliases), `GET /search`, `GET /metadata`, `POST /track`, and `POST /admin/v1/contact-messages`. Every other `/v1/*` operation requires a Bearer token.
## Account Types
- **Anonymous**: Device-only, no email. Data tied to device fingerprint.
- **Email-linked**: Has email + password. Can login from any device. Data merges on link.
## Token Lifecycle
- **Access token**: 15 minutes, used for API requests
- **Refresh token**: 30 days, used to rotate access tokens
- Refreshing a token invalidates the old one (single-use rotation)
- Revoking deactivates all tokens for a device'
version: 1.0.0
contact:
name: Public APIs
url: '---'
servers:
- url: http://localhost:4000
description: Local development
- url: '---'
description: Production
tags:
- name: API Detail
paths:
/v1/apis/{slug}:
get:
tags:
- API Detail
summary: Get exact API detail
operationId: getApiDetail
parameters:
- name: slug
in: path
required: true
schema:
type: string
responses:
'200':
description: Stored API detail
headers:
ETag:
schema:
type: string
content:
application/json:
schema:
$ref: '#/components/schemas/ApiDetailResponse'
'304':
description: Not modified
'404':
description: Exact slug not found
/v1/apis/{id}/alternatives:
get:
tags:
- API Detail
summary: Get similar catalog APIs
operationId: getApiAlternatives
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: limit
in: query
schema:
type: integer
minimum: 2
maximum: 3
default: 3
responses:
'200':
description: Stable alternatives
content:
application/json:
schema:
$ref: '#/components/schemas/ApiAlternativesResponse'
'404':
description: API not found
/v1/apis/{id}/health-check:
post:
tags:
- API Detail
summary: Refresh stored API health
operationId: refreshApiHealth
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Cached result inside cooldown
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
'202':
description: Check queued or deduplicated
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
'401':
description: Access token required
'429':
description: Per-user/API rate limit exceeded
/v1/apis/{id}/health-checks/{checkId}:
get:
tags:
- API Detail
summary: Poll an API health check
operationId: pollApiHealth
security:
- bearerAuth: []
parameters:
- name: id
in: path
required: true
schema:
type: string
format: uuid
- name: checkId
in: path
required: true
schema:
type: string
responses:
'200':
description: Check state
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
'404':
description: Check not found
components:
schemas:
TrustFactor:
type: object
required:
- score
- weight
- label
properties:
score:
type: integer
minimum: 0
maximum: 100
weight:
type: integer
label:
type: string
ApiAlternativesResponse:
type: object
properties:
data:
type: array
items:
type: object
required:
- id
- slug
- name
- shortDescription
- pricingType
- authType
- baseUrl
properties:
id:
type: string
format: uuid
slug:
type: string
name:
type: string
shortDescription:
type: string
pricingType:
type: string
enum:
- FREE
- FREEMIUM
- PAID
- UNKNOWN
authType:
type: string
enum:
- NONE
- API_KEY
- OAUTH2
- BASIC
- UNKNOWN
baseUrl:
type: string
format: uri
TrustScore:
type: object
required:
- score
- grade
- summary
- factors
properties:
score:
type: integer
minimum: 0
maximum: 100
grade:
type: string
enum:
- A
- B
- C
- D
- F
summary:
type: string
computedAt:
type: string
format: date-time
nullable: true
factors:
type: object
additionalProperties:
$ref: '#/components/schemas/TrustFactor'
FieldVerification:
type: object
required:
- source
- verifiedAt
properties:
source:
type: string
enum:
- PROVIDER
- AUTOMATED_CHECK
- CORE_API_REVIEW
- COMMUNITY_REPORT
- IMPORTED
- UNKNOWN
verifiedAt:
type: string
format: date-time
nullable: true
ApiHealthSummary:
type: object
required:
- status
- observationCount
properties:
status:
type: string
enum:
- OPERATIONAL
- AUTHENTICATION_REQUIRED
- RATE_LIMITED
- DEGRADED
- UNAVAILABLE
- UNKNOWN
statusCode:
type: integer
nullable: true
responseTimeMs:
type: integer
nullable: true
message:
type: string
nullable: true
checkMethod:
type: string
nullable: true
checkedAt:
type: string
format: date-time
nullable: true
uptime24h:
type: number
nullable: true
uptime7d:
type: number
nullable: true
uptime30d:
type: number
nullable: true
observationCount:
type: integer
HealthCheckResponse:
type: object
properties:
data:
type: object
required:
- state
properties:
state:
type: string
enum:
- CACHED
- QUEUED
- RUNNING
- COMPLETED
- FAILED
checkId:
type: string
nullable: true
pollUrl:
type: string
nullable: true
pollAfterMs:
type: integer
nullable: true
health:
$ref: '#/components/schemas/ApiHealthSummary'
previousHealth:
$ref: '#/components/schemas/ApiHealthSummary'
cooldownEndsAt:
type: string
format: date-time
nullable: true
error:
type: string
nullable: true
ApiDetailResponse:
type: object
required:
- data
properties:
data:
type: object
required:
- id
- slug
- name
- shortDescription
- category
- access
- links
- capabilities
- health
- verification
- warnings
- updatedAt
properties:
id:
type: string
format: uuid
slug:
type: string
name:
type: string
shortDescription:
type: string
fullDescription:
type: string
nullable: true
imageUrl:
type: string
format: uri
nullable: true
category:
type: object
properties:
id:
type: string
name:
type: string
slug:
type: string
access:
type: object
properties:
authType:
type: string
enum:
- NONE
- API_KEY
- OAUTH2
- BASIC
- UNKNOWN
pricingType:
type: string
enum:
- FREE
- FREEMIUM
- PAID
- UNKNOWN
rateLimit:
type: string
nullable: true
creditCardRequired:
type: boolean
nullable: true
commercialUseAllowed:
type: boolean
nullable: true
links:
type: object
properties:
baseUrl:
type: string
format: uri
homepageUrl:
type: string
format: uri
nullable: true
documentationUrl:
type: string
format: uri
nullable: true
openApiUrl:
type: string
format: uri
nullable: true
statusPageUrl:
type: string
format: uri
nullable: true
termsUrl:
type: string
format: uri
nullable: true
capabilities:
type: object
properties:
https:
type: boolean
nullable: true
cors:
type: string
enum:
- SUPPORTED
- UNSUPPORTED
- UNKNOWN
protocol:
type: string
enum:
- REST
- GRAPHQL
- SOAP
- WEBSOCKET
- UNKNOWN
responseFormats:
type: array
items:
type: string
sdkLanguages:
type: array
items:
type: string
openApiAvailable:
type: boolean
nullable: true
health:
$ref: '#/components/schemas/ApiHealthSummary'
verification:
type: object
properties:
health:
$ref: '#/components/schemas/FieldVerification'
pricing:
$ref: '#/components/schemas/FieldVerification'
authentication:
$ref: '#/components/schemas/FieldVerification'
documentation:
$ref: '#/components/schemas/FieldVerification'
cors:
$ref: '#/components/schemas/FieldVerification'
warnings:
type: array
items:
type: object
required:
- code
- message
- severity
properties:
code:
type: string
message:
type: string
severity:
type: string
enum:
- INFO
- WARNING
- ERROR
verifiedAt:
type: string
format: date-time
nullable: true
updatedAt:
type: string
format: date-time
trustScore:
$ref: '#/components/schemas/TrustScore'
description: Trust score with grade, summary and weighted evidence factors. Present on published APIs.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Anonymous device access token from POST /v1/auth/anonymous