Examples
Two real, copy-pasteable case files against real third-party APIs — the fastest way to see the schema applied outside the bundled demo.
GitHub: read public repo metadata
No account, no credentials — a plain GET against a public repo, asserting on real response data. The lowest-friction case you can write.
id: GITHUB-REPO-METADATA-1
oracle:
locator: docs/integrations/github.md
fixture:
locator: github-repo-metadata.json
sha256: <sha256 of the fixture file>
pipeline:
- operation: http.request
with:
method: GET
url: https://api.github.com/repos/octocat/Hello-World
- operation: http.assertJsonPath
with:
path: $.full_name
expected: octocat/Hello-World{}Why this pattern: a public, unauthenticated GET is a good template for any read-only public API — or as a zero-setup smoke test before wiring in real credentials elsewhere in a case file.
Stripe: test-mode connectivity check
A pattern real integrations already run before touching anything that could cost money — call a lightweight endpoint with a free test-mode key and confirm you're talking to test mode, not production.
id: STRIPE-CONNECTIVITY-1
oracle:
locator: docs/integrations/stripe.md
fixture:
locator: stripe-balance.json
sha256: <sha256 of the fixture file>
pipeline:
- operation: http.request
with:
method: GET
url: https://api.stripe.com/v1/balance
username: ${STRIPE_TEST_SECRET_KEY} # Stripe's Basic-auth convention: secret key as username, no password
- operation: http.assertJsonPath
with:
path: $.livemode
expected: "false"{}Why this pattern: asserting livemode is false confirms the case is running against Stripe's test environment — a real key-sanity check, not a synthetic assertion. Use a free test-mode secret key (sk_test_...), never a live key, in a case file.
Next
Case files — every block a case can declare, including flag proof.