Loading…
Loading…
Agent API · Machine-readable access
This API does one thing: hand your agent cases and full prompts whose sources have been checked by a human. Start without a key; ask for one when your volume grows.
Backward compatible
This API has always been anonymous and open, and it still is. Requests without an auth header return the same data as before, now under a soft per-IP rate limit. Anyone already running the goodcase Skill needs to change nothing. Only credentials starting with gc_ are treated as an API key, so an unrelated Authorization header will never get you rejected.
The GoodCase Agent API: anonymous access works out of the box, API keys raise the daily quota, and every case ships a verifiable provenance claim.
curl -s "https://goodcase.ai/api/public/cases?category=video&take=3&locale=en"Query parameters
curl -s "https://goodcase.ai/api/public/cases/real-case-01-umesh-ai?locale=en"On top of the list fields, this returns promptFull, editorNote, labNote, spreadScore, and sourceHeatNote.
With an API key
curl -s -D - \
-H "Authorization: Bearer gc_xxxxxxxxxxxx" \
"https://goodcase.ai/api/public/cases?take=3"curl -s "https://goodcase.ai/api/public/cases/real-case-01-umesh-ai/retests?locale=en"Returns this case's on-site per-model retest records — stabilityScore, evidenceLevel, per-model latest/history, and the full record list. Use it to compare a model you just tested against the site's own baseline.
The day a new model ships, an agent with the goodcase Skill installed can sample cases by category and run them, then compare against the site's own retest baseline.
curl -s "https://goodcase.ai/api/public/cases?category=web&form=web-ui&sample=5&seed=20260906-yourmodel"Try saying
benchmark this model with goodcase
test Kimi K3 with goodcase
sample 10 video cases and run an evalA self-run result is not an official goodcase retest; finalScore (judge score) and stabilityScore (human review tier) are not on the same scale.
Install the Skill first
npx skills add LearnPrompt/goodcase-lite --skill goodcase --global --copy --yes --full-depthResponse sample (truncated)
{
"count": 1,
"locale": "zh-CN",
"items": [
{
"slug": "tattoo-generator",
"title": "Tattoo Generator",
"category": "video",
"source": "Comfy Workflows",
"sourceUrl": "https://comfy.org/workflows/90d086fef9e3-90d086f…",
"creator": "Rob",
"summary": "这条工作流没有花哨的效果,胜在把纹身设计的沟通痛点解决得很实际…",
"promptPreview": "Turn your tattoo design ideas into reality with …",
"mediaType": "video",
"mediaUrl": "https://…public.blob.vercel-storage.com/…",
"posterUrl": "https://…public.blob.vercel-storage.com/…",
"stabilityScore": 0,
"recommendedModels": ["ComfyUI"],
"costBand": "medium",
"evidenceLevel": "L1",
"tags": ["workflow-method", "not-rerun"],
"url": "https://goodcase.ai/cases/tattoo-generator",
"contentLocale": "en",
"availableLocales": ["zh-CN"],
"isFallback": false,
"provenance": {
"sourceUrl": "https://comfy.org/workflows/90d086fef9e3-90d086fef9e3/",
"verifiedAgainstSource": true,
"method": "human-reviewed-source-match",
"policyEffectiveAt": "2026-08-05",
"note": "已发布案例的 prompt 均经人工核对与原帖一致…"
},
"likedCount": 0,
"retestVoteCount": 0
}
]
}Training data is full of prompts that read like expert work and were never actually run. Every case we publish must be checked by a human against the original post, and prompts a platform reverse-engineered from the output image are rejected outright. That rule has governed all published content since 2026-08-05; it now appears as a structured field so an agent can read it instead of taking our word for it.
provenance
The anonymous tier is a soft limit. The API runs on serverless functions, each instance keeps its own in-memory window, so the effective allowance is higher than the stated number and resets when an instance recycles. It exists to catch a runaway loop, not to meter usage. Real metering lives on API keys, is counted in the database, and resets at 00:00 UTC.
| Tier | Quota | How |
|---|---|---|
| No key | 60 req / hour / IP | Nothing to do — just curl. |
| With key | 2,000 req / day by default, raised on request | Authorization: Bearer gc_xxx, or X-API-Key: gc_xxx. |
Rate limit headers
Error codes
There is no self-serve signup yet. We would rather issue the first batch manually, learn who is calling and what quota actually makes sense, and only then decide whether a signup flow is worth building.
The goodcase Skill wraps this API in natural-language queries and works across Claude Code, Codex CLI, Cursor, and Gemini CLI. One line:
npx skills add LearnPrompt/goodcase-lite --skill goodcase --global --copy --yes --full-depthThen ask your AI what good cases are new, and it will look them up instead of inventing one from training data.