Gecko Case Studies API
The Case Studies API from Gecko — 1 operation(s) for case studies.
The Case Studies API from Gecko — 1 operation(s) for case studies.
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/geckovision-tech:geckovision-tech-case-studies-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: Gecko public Case Studies API
version: 1.0.0
summary: Gecko case studies as data; join the waitlist.
description: 'The public HTTP operations behind https://geckovision.tech. Gecko''s full product surface for agents is the hosted MCP server (Streamable HTTP; see https://geckovision.tech/.well-known/mcp/server-card.json). These REST operations cover the landing''s own interactive features. Docs: https://docs.geckovision.tech. VERSIONING: paths are versioned (/api/v1/...); the unversioned path is a permanent alias of the latest major version. A breaking change ships as /api/v2 with the v1 path kept for at least 90 days and answering with Deprecation and Sunset headers during that window. RETRIES: every operation here is idempotent by construction, so a retry with the same input never duplicates work. RATE LIMITS: responses carry the RFC RateLimit headers (RateLimit-Limit, -Remaining, -Reset) and a 429 carries Retry-After.'
contact:
name: Gecko
email: contact@geckovision.tech
url: https://geckovision.tech
servers:
- url: https://geckovision.tech
description: The landing site
tags:
- name: Case Studies
paths:
/api/v1/case-studies:
get:
operationId: listCaseStudies
summary: List Gecko case studies (cursor-paginated)
description: 'The case studies this site publishes, as data: slug, title, summary, tags, intro, canonical page URL, and the external evidence link. Cursor-paginated: pass next_cursor from the previous page until it is null. Same single-source content the HTML pages render, so the API cannot drift from the site.'
parameters:
- name: cursor
in: query
required: false
description: Opaque cursor from the previous page's next_cursor. Omit for the first page.
schema:
type: string
- name: limit
in: query
required: false
description: Page size, 1-10.
schema:
type: integer
minimum: 1
maximum: 10
default: 10
responses:
'200':
description: One page of case studies.
headers:
RateLimit-Limit:
description: Requests allowed in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets.
schema:
type: integer
content:
application/json:
schema:
type: object
required:
- items
- next_cursor
properties:
items:
type: array
items:
type: object
required:
- slug
- title
- summary
- url
properties:
slug:
type: string
title:
type: string
summary:
type: string
tags:
type: array
items:
type: string
intro:
type:
- string
- 'null'
url:
type: string
format: uri
evidence_url:
type: string
format: uri
next_cursor:
type:
- string
- 'null'
description: Pass as cursor to fetch the next page; null on the last page.
'400':
description: Invalid cursor or limit.
headers:
RateLimit-Limit:
description: Requests allowed in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate limited. Honor Retry-After and the RateLimit headers.
headers:
RateLimit-Limit:
description: Requests allowed in the current window.
schema:
type: integer
RateLimit-Remaining:
description: Requests left in the current window.
schema:
type: integer
RateLimit-Reset:
description: Seconds until the window resets.
schema:
type: integer
Retry-After:
description: Seconds to wait before retrying.
schema:
type: integer
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Case Studies
components:
schemas:
Error:
type: object
required:
- error
description: Every error this API returns is structured JSON, never an HTML page.
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
description: Stable machine-readable code, e.g. "invalid-cursor", "rate-limited".
message:
type: string
description: Human-and-agent-readable explanation.
hint:
type: string
description: What to change before retrying.
securitySchemes:
geckoKey:
type: http
scheme: bearer
description: 'The Gecko key: the bearer credential for GATED surfaces on the hosted MCP server (mcp.geckovision.tech) - not required by any operation in this spec, which is anonymous. Permissions are SCOPED PER SURFACE and deny-by-default: a key opens only the surfaces its account was granted (one named grant per surface, e.g. a paid data surface), never the host. Mint one self-serve: POST /auth/login/start with your email, then /auth/login/verify with the emailed code (documented at /auth.md). There is no OAuth authorization server; scope names are the surface names listed by the host''s list_surfaces tool.'