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/fluotest-com:fluotest-com-status-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: FluoTest Status API
version: 1.0.0
summary: Create, publish and read results of scored quizzes through FluoTest's MCP server.
description: 'FluoTest''s MCP server and supporting API surface. /api/mcp uses the Model Context Protocol''s JSON-RPC 2.0 Streamable HTTP transport (https://modelcontextprotocol.io). Tools: create_quiz, import_quiz, list_quizzes, get_quiz_questions, get_quiz_settings, update_quiz, publish_quiz, unpublish_quiz, duplicate_quiz, get_results, delete_quiz; call tools/list for their input and output JSON schemas. Connection guide: https://fluotest.com/en/docs/mcp-server. API reference: https://fluotest.com/en/docs/api-reference.
Errors: HTTP-level failures return a typed error body, RFC 9457 application/problem+json with a stable `code` and a `hint`, except 401/403 from the OAuth layer, which use the RFC 6750 error body plus a WWW-Authenticate header. Tool-level failures come back as a JSON-RPC result with isError: true.
Rate limits: every response carries RateLimit-Policy/RateLimit (IETF draft-ietf-httpapi-ratelimit-headers) and RateLimit-Limit/-Remaining/-Reset; a 429 adds Retry-After.
Versioning: the transport is versioned by the MCP-Protocol-Version request header (MCP''s date-based protocol versions; supported: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07). The tool surface follows semantic versioning in info.version: new tools and new optional arguments are additive and never break existing calls. A breaking change ships as a new tool name; the old tool keeps working for at least 90 days, responses that use it carry a Deprecation header (RFC 9745) and a Sunset header (RFC 8594) with the removal date, and the change is announced on the changelog (/en/changelog).'
contact:
name: FluoTest
email: info@fluosite.com
url: https://fluotest.com
termsOfService: https://fluotest.com/en/terms
x-deprecation-policy: 'Versioning: the transport is versioned by the MCP-Protocol-Version request header (MCP''s date-based protocol versions; supported: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07). The tool surface follows semantic versioning in info.version: new tools and new optional arguments are additive and never break existing calls. A breaking change ships as a new tool name; the old tool keeps working for at least 90 days, responses that use it carry a Deprecation header (RFC 9745) and a Sunset header (RFC 8594) with the removal date, and the change is announced on the changelog (/en/changelog).'
servers:
- url: https://fluotest.com
description: Production
tags:
- name: Status
description: Service health.
paths:
/api/health:
get:
operationId: getHealth
tags:
- Status
summary: Service health check
description: Returns the API's operational status. Used by the FluoTest status page and uptime monitors.
security: []
responses:
'200':
description: Operational status.
headers:
RateLimit-Policy:
$ref: '#/components/headers/RateLimitPolicy'
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Limit:
$ref: '#/components/headers/RateLimitLimit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimitRemaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimitReset'
content:
application/json:
schema:
$ref: '#/components/schemas/Health'
'429':
$ref: '#/components/responses/RateLimited'
components:
responses:
RateLimited:
description: Rate limit exceeded. Wait Retry-After seconds.
headers:
RateLimit-Policy:
$ref: '#/components/headers/RateLimitPolicy'
RateLimit:
$ref: '#/components/headers/RateLimit'
RateLimit-Limit:
$ref: '#/components/headers/RateLimitLimit'
RateLimit-Remaining:
$ref: '#/components/headers/RateLimitRemaining'
RateLimit-Reset:
$ref: '#/components/headers/RateLimitReset'
Retry-After:
$ref: '#/components/headers/RetryAfter'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/Problem'
headers:
RetryAfter:
description: Seconds to wait before retrying (RFC 9110).
schema:
type: integer
RateLimitReset:
description: Seconds until the window resets.
schema:
type: integer
RateLimit:
description: Remaining quota and seconds until reset, e.g. "default";r=119;t=60.
schema:
type: string
RateLimitLimit:
description: Requests allowed per window.
schema:
type: integer
RateLimitRemaining:
description: Requests left in the current window.
schema:
type: integer
RateLimitPolicy:
description: Quota policy, e.g. "default";q=120;w=60 (draft-ietf-httpapi-ratelimit-headers).
schema:
type: string
schemas:
Health:
type: object
required:
- status
- service
- timestamp
properties:
status:
type: string
examples:
- operational
service:
type: string
examples:
- api
timestamp:
type: string
format: date-time
Problem:
type: object
description: RFC 9457 problem details with FluoTest's `code` and `hint` extension members.
required:
- type
- title
- status
- code
properties:
type:
type: string
format: uri
description: Documentation URI for this error type.
title:
type: string
description: Short, human-readable summary.
status:
type: integer
description: HTTP status code.
code:
type: string
enum:
- not_found
- rate_limited
description: Stable machine-readable error code.
detail:
type: string
description: What went wrong for this request.
hint:
type: string
description: How to resolve it.
instance:
type: string
description: The request path.
securitySchemes:
oauth2:
type: oauth2
description: 'Supabase OAuth 2.1 server: sign in and approve on a consent screen, no keys to copy.'
flows:
authorizationCode:
authorizationUrl: https://abvrtonacdgcxpkkrpie.supabase.co/auth/v1/oauth/authorize
tokenUrl: https://abvrtonacdgcxpkkrpie.supabase.co/auth/v1/oauth/token
scopes:
openid: OpenID Connect
email: Email address
profile: Profile info
apiKey:
type: http
scheme: bearer
description: 'Personal API key from Settings → Security → API keys, sent as ''Authorization: Bearer fluo_...''.'
externalDocs:
description: FluoTest API reference
url: https://fluotest.com/en/docs/api-reference