{"query":"API Conventions","corpusVersion":"local","generatedAt":"2026-11-02T05:37:44.717Z","results":[{"blockId":"public-api.conventions#api-conventions","pageId":"public-api.conventions","title":"API Conventions","pageTitle":"API Conventions","url":"https://teammately.ai/docs/public-api/conventions.md","humanUrl":"https://teammately.ai/docs/public-api/conventions#api-conventions","markdownUrl":"https://teammately.ai/docs/public-api/conventions.md","sectionId":"api-conventions","kind":"api","productArea":"public_api","score":1151.6250600380781,"reasons":["search_match","exact_match","title_match","display_title_match","api_intent_match","term_match"],"markdown":"# API Conventions"},{"blockId":"public-api.overview#openapi-and-conventions","pageId":"public-api.overview","title":"OpenAPI and conventions","pageTitle":"Public API","url":"https://teammately.ai/docs/public-api.md","humanUrl":"https://teammately.ai/docs/public-api#openapi-and-conventions","markdownUrl":"https://teammately.ai/docs/public-api.md","sectionId":"openapi-and-conventions","kind":"api","productArea":"public_api","score":566.777962445138,"reasons":["search_match","exact_match","api_intent_match","term_match","prefix_or_fuzzy_match"],"markdown":"## OpenAPI and conventions\n\nThe [OpenAPI YAML](https://api.teammately.ai/v1/openapi.yaml) and [OpenAPI JSON](https://api.teammately.ai/v1/openapi.json) describe request fields, response schemas and per-operation authentication. These guides explain operation sequences and asynchronous outcomes.\n\nRead [Authentication](/docs/public-api/authentication) and [Conventions](/docs/public-api/conventions) before writing. Envelopes and pagination vary by resource. Supply credentials through the host's secret mechanism and use identifiers from Teammately.\n\nUse the request panel's language selector to switch between equivalent cURL, Python, TypeScript and Go examples. Copy copies the selected language. JSON request bodies and HTTP signatures are shown separately.\n\nThese are direct HTTP examples, not SDK method declarations. Python uses its standard library; TypeScript uses Node.js 22+ built-in fetch and file APIs; Go uses its standard library. [Application SDKs](/docs/sdks) describe the resources each Teammately library exposes.\n\nThe [quickstart](/docs/public-api/quickstart) exports the nonsecret `PROJECT_URL` and `BENCHMARK_URL` values. Export each example's additional identifiers and logical-command keys before running it. Supply `TEAMMATELY_API_KEY` through your approved secret environment. Keep original body files and request identity when following the operation's recovery rules."},{"blockId":"public-api.conventions#related-reference-pages","pageId":"public-api.conventions","title":"Related reference pages","pageTitle":"API Conventions","url":"https://teammately.ai/docs/public-api/conventions.md","humanUrl":"https://teammately.ai/docs/public-api/conventions#related-reference-pages","markdownUrl":"https://teammately.ai/docs/public-api/conventions.md","sectionId":"related-reference-pages","kind":"api","productArea":"public_api","score":534.5019182481954,"reasons":["search_match","exact_match","page_title_match","api_intent_match","term_match"],"markdown":"## Related reference pages\n\n{% related-card-grid title=\"Related reference pages\" %}\n- [Public API](/docs/public-api)\n- [API Authentication](/docs/public-api/authentication)\n- [Submit External Evaluation Outputs](/docs/public-api/evaluation-outputs)\n{% /related-card-grid %}"},{"blockId":"public-api.conventions#definition","pageId":"public-api.conventions","title":"Definition","pageTitle":"API Conventions","url":"https://teammately.ai/docs/public-api/conventions.md","humanUrl":"https://teammately.ai/docs/public-api/conventions#definition","markdownUrl":"https://teammately.ai/docs/public-api/conventions.md","sectionId":"definition","kind":"api","productArea":"public_api","score":466.1603716764708,"reasons":["search_match","exact_match","page_title_match","api_intent_match","term_match"],"markdown":"## Definition\n\nThe resource prefix is `/v1/organizations/{organizationKey}/projects/{projectId}`. Benchmark operations continue beneath the selected Benchmark and immutable Version. Paths and IDs are scoped; a readable title is not a join key."},{"blockId":"public-api.overview#related-reference-pages","pageId":"public-api.overview","title":"Related reference pages","pageTitle":"Public API","url":"https://teammately.ai/docs/public-api.md","humanUrl":"https://teammately.ai/docs/public-api#related-reference-pages","markdownUrl":"https://teammately.ai/docs/public-api.md","sectionId":"related-reference-pages","kind":"api","productArea":"public_api","score":443.8048875207162,"reasons":["search_match","exact_match","api_intent_match","term_match"],"markdown":"## Related reference pages\n\n{% related-card-grid title=\"Related reference pages\" %}\n- [API Authentication](/docs/public-api/authentication)\n- [API Conventions](/docs/public-api/conventions)\n- [Cases API](/docs/public-api/cases)\n- [Import Cases](/docs/public-api/case-imports)\n- [Submit External Evaluation Outputs](/docs/public-api/evaluation-outputs)\n- [Retrieve Benchmark Results](/docs/public-api/benchmark-results)\n- [Result Serialization](/docs/public-api/result-schema)\n{% /related-card-grid %}"},{"blockId":"public-api.conventions#ids-and-errors","pageId":"public-api.conventions","title":"IDs and errors","pageTitle":"API Conventions","url":"https://teammately.ai/docs/public-api/conventions.md","humanUrl":"https://teammately.ai/docs/public-api/conventions#ids-and-errors","markdownUrl":"https://teammately.ai/docs/public-api/conventions.md","sectionId":"ids-and-errors","kind":"api","productArea":"public_api","score":380.2250838807685,"reasons":["search_match","exact_match","page_title_match","api_intent_match","term_match"],"markdown":"## IDs and errors\n\nUse database/API-issued opaque IDs. Example placeholders are not usable IDs. Keep the original HTTP status, structured code and actionable reason; no global error envelope is promised across legacy and forwarded families."},{"blockId":"public-api.conventions#http-outcomes","pageId":"public-api.conventions","title":"HTTP outcomes","pageTitle":"API Conventions","url":"https://teammately.ai/docs/public-api/conventions.md","humanUrl":"https://teammately.ai/docs/public-api/conventions#http-outcomes","markdownUrl":"https://teammately.ai/docs/public-api/conventions.md","sectionId":"http-outcomes","kind":"api","productArea":"public_api","score":377.6389957803184,"reasons":["search_match","exact_match","page_title_match","api_intent_match","term_match"],"markdown":"## HTTP outcomes\n\n| Outcome | Next step |\n| --- | --- |\n| `200` or `201` | Inspect the resource or per-item outcomes |\n| `202` | Retain the issued identity and inspect processing state |\n| `304` | Use the representation associated with the matching ETag |\n| `400` or `422` | Correct the request using its code and reason |\n| `401` or `403` | Correct credentials or scope |\n| `409` or `412` | Inspect immutable state, idempotency or preconditions |\n| `429` | Honor `Retry-After` when supplied |\n| `502`, `503` or `504` | Preserve command identity before recovering an uncertain write |\n\nNot every endpoint emits every status. The [OpenAPI](https://api.teammately.ai/v1/openapi.yaml) lists operation-specific responses; one rate-limit response does not define a universal quota."},{"blockId":"public-api.conventions#envelopes-and-pagination","pageId":"public-api.conventions","title":"Envelopes and pagination","pageTitle":"API Conventions","url":"https://teammately.ai/docs/public-api/conventions.md","humanUrl":"https://teammately.ai/docs/public-api/conventions#envelopes-and-pagination","markdownUrl":"https://teammately.ai/docs/public-api/conventions.md","sectionId":"envelopes-and-pagination","kind":"api","productArea":"public_api","score":369.451925716416,"reasons":["search_match","exact_match","page_title_match","api_intent_match","term_match"],"markdown":"## Envelopes and pagination\n\nCase lists return `message` and `data: {columns, rows}`; detail returns `message` and `result`. Fieldloop and benchmark operations use their documented `data` payloads. Parse the called operation's envelope.\n\nCase reads use limit/offset pagination, defaulting to 10 rows and accepting a positive limit through 1,000. Other readers have their own pagination. Preserve returned continuation information instead of assuming a cursor shape universally.\n\nCase reads emit ETag and support If-None-Match. Concurrency and mutation preconditions belong to the particular operation."}]}