{"openapi":"3.0.3","info":{"title":"ReqRes API","description":"OpenAPI specification for the ReqRes API. Covers legacy demo endpoints, collections, app-user auth flows, custom endpoints, and the Agent Sandbox (/agent/v1/*) for AI coding agents. All /api/* endpoints require x-api-key. All /app/* endpoints require Authorization: Bearer <session_token>. /agent/v1/* endpoints are open in v1 (IP-based rate limiting).","version":"2.1.0","contact":{"name":"ReqRes Support","url":"https://reqres.in","email":"hello@reqres.in"},"license":{"name":"MIT","url":"https://opensource.org/licenses/MIT"}},"servers":[{"url":"https://reqres.in","description":"Production server"},{"url":"http://localhost:8000","description":"Development server"}],"tags":[{"name":"Legacy"},{"name":"Authentication"},{"name":"Collections"},{"name":"App Users"},{"name":"Custom Endpoints"},{"name":"Agent Sandbox","description":"Endpoints designed for AI coding agents. Cursor pagination, deeply nested resources, deliberate error scenarios, deterministic seeded fixtures."}],"paths":{"/api/users":{"get":{"summary":"List users (legacy)","description":"Retrieve a paginated list of demo users. Supports page/per_page query params.","operationId":"getLegacyUsers","tags":["Legacy"],"parameters":[{"name":"page","in":"query","description":"Page number for pagination.","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","description":"Number of users per page.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyUserListResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]},"post":{"summary":"Create user (legacy)","description":"Creates a demo user. Returns the request payload plus id/createdAt fields.","operationId":"createLegacyUser","tags":["Legacy"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyMutationRequest"}}}},"responses":{"201":{"description":"User created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyMutationResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/users/{id}":{"get":{"summary":"Get user by id (legacy)","description":"Retrieve a single demo user by id.","operationId":"getLegacyUserById","tags":["Legacy"],"parameters":[{"name":"id","in":"path","description":"User id.","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyUserResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]},"put":{"summary":"Update user (legacy)","description":"Updates a demo user. Returns the request payload plus updatedAt field.","operationId":"updateLegacyUser","tags":["Legacy"],"parameters":[{"name":"id","in":"path","description":"User id.","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyMutationRequest"}}}},"responses":{"200":{"description":"User updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyMutationResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]},"patch":{"summary":"Patch user (legacy)","description":"Partially updates a demo user. Returns the request payload plus updatedAt field.","operationId":"patchLegacyUser","tags":["Legacy"],"parameters":[{"name":"id","in":"path","description":"User id.","required":true,"schema":{"type":"integer","minimum":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyMutationRequest"}}}},"responses":{"200":{"description":"User updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyMutationResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"summary":"Delete user (legacy)","description":"Deletes a demo user and returns no content.","operationId":"deleteLegacyUser","tags":["Legacy"],"parameters":[{"name":"id","in":"path","description":"User id.","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"204":{"description":"No content"}},"security":[{"ApiKeyAuth":[]}]}},"/api/unknown":{"get":{"summary":"List resources (legacy)","description":"Retrieve a paginated list of the demo \"unknown\" resource.","operationId":"getLegacyUnknown","tags":["Legacy"],"parameters":[{"name":"page","in":"query","description":"Page number for pagination.","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"per_page","in":"query","description":"Number of items per page.","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyUnknownListResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/unknown/{id}":{"get":{"summary":"Get resource by id (legacy)","description":"Retrieve a single demo resource by id.","operationId":"getLegacyUnknownById","tags":["Legacy"],"parameters":[{"name":"id","in":"path","description":"Resource id.","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LegacyUnknownResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/register":{"post":{"summary":"Register user","description":"Register a demo user account.","operationId":"registerUser","tags":["Authentication"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRequest"}}}},"responses":{"200":{"description":"Successful registration","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/login":{"post":{"summary":"Login user","description":"Authenticate a demo user and return a token.","operationId":"loginUser","tags":["Authentication"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthRequest"}}}},"responses":{"200":{"description":"Successful login","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/logout":{"post":{"summary":"Logout user","description":"Legacy logout endpoint (returns empty object).","operationId":"logoutUser","tags":["Authentication"],"responses":{"200":{"description":"Logged out","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/collections":{"get":{"summary":"List collections","description":"List collections for the current project/environment.","operationId":"listCollections","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Collections list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionListResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Create collection","description":"Create a new collection.","operationId":"createCollection","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionCreateRequest"}}}},"responses":{"201":{"description":"Collection created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/collections/{slug}":{"get":{"summary":"Get collection","description":"Fetch a collection by slug.","operationId":"getCollection","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Collection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"summary":"Update collection","description":"Update a collection by slug.","operationId":"updateCollection","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionUpdateRequest"}}}},"responses":{"200":{"description":"Collection updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"summary":"Delete collection","description":"Delete a collection by slug.","operationId":"deleteCollection","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"204":{"description":"No content"},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/collections/{slug}/records":{"get":{"summary":"List records","description":"List records for a collection with filters.","operationId":"listCollectionRecords","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"page","in":"query","description":"Page number.","required":false,"schema":{"type":"integer","minimum":1}},{"name":"limit","in":"query","description":"Page size (max 100).","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"search","in":"query","description":"Case-insensitive search on record data.","required":false,"schema":{"type":"string"}},{"name":"created_before","in":"query","description":"Filter records created before timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"created_after","in":"query","description":"Filter records created after timestamp.","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"data_contains","in":"query","description":"JSON string for containment filter.","required":false,"schema":{"type":"string"}},{"name":"order","in":"query","description":"Sort order by created_at.","required":false,"schema":{"type":"string","enum":["asc","desc"]}},{"name":"include_deleted","in":"query","description":"Include soft-deleted records.","required":false,"schema":{"type":"boolean"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Record list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordListResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Create record","description":"Create a new record in a collection.","operationId":"createCollectionRecord","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordCreateRequest"}}}},"responses":{"201":{"description":"Record created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/collections/{slug}/records/{recordId}":{"get":{"summary":"Get record","description":"Fetch a record by id.","operationId":"getCollectionRecord","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","description":"Record id.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"summary":"Update record","description":"Update a record by id.","operationId":"updateCollectionRecord","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","description":"Record id.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordUpdateRequest"}}}},"responses":{"200":{"description":"Record updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"summary":"Delete record","description":"Delete a record by id.","operationId":"deleteCollectionRecord","tags":["Collections"],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","description":"Record id.","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"204":{"description":"No content"},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/app-users/login":{"post":{"summary":"App user login","description":"Create or log in an app user and send a magic link token.","operationId":"appUserLogin","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserLoginRequest"}}}},"responses":{"200":{"description":"Login initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserLoginResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/app-users/verify":{"post":{"summary":"Verify app user token","description":"Verify a magic link token and return an app-session token.","operationId":"verifyAppUserToken","tags":["App Users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserVerifyRequest"}}}},"responses":{"200":{"description":"Token verified","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserVerifyResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/app-users/me":{"get":{"summary":"Current app user","description":"Return the current app user based on session token.","operationId":"getAppUserMe","tags":["App Users"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"App user session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserSessionResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/app-users":{"get":{"summary":"List app users","description":"List app users for the current project.","operationId":"listAppUsers","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Max results (default 50).","required":false,"schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"App users list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserListResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Create app user","description":"Create an app user in the project.","operationId":"createAppUser","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserCreateRequest"}}}},"responses":{"200":{"description":"App user created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/app-users/{id}":{"get":{"summary":"Get app user","description":"Fetch an app user by id.","operationId":"getAppUser","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","description":"App user id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"summary":"Update app user","description":"Update an app user by id.","operationId":"updateAppUser","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","description":"App user id.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserUpdateRequest"}}}},"responses":{"200":{"description":"App user updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"summary":"Delete app user","description":"Delete an app user by id.","operationId":"deleteAppUser","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","description":"App user id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"App user deleted","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/app-users/{id}/sessions/simulate":{"post":{"summary":"Simulate app user session","description":"Owner-only helper to mint an app-user session token.","operationId":"simulateAppUserSession","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","description":"App user id.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Session simulated","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/projects/{projectId}/app-users":{"get":{"summary":"List project app users","description":"List app users for a project using API key auth.","operationId":"listProjectAppUsers","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"projectId","in":"path","description":"Project id.","required":true,"schema":{"type":"string"}},{"name":"statuses","in":"query","description":"Filter by status (active, pending) or use \"all\".","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"App users list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserListResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/projects/{projectId}/app-users/total":{"get":{"summary":"App users total","description":"Return total app user count for a project.","operationId":"getProjectAppUserTotal","tags":["App Users"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"X-Reqres-Env","in":"header","description":"Environment key (for example: prod or dev).","required":false,"schema":{"type":"string"}},{"name":"projectId","in":"path","description":"Project id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Total count","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserTotalResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/custom/{path}":{"get":{"summary":"Execute custom endpoint","description":"Execute a custom endpoint with GET.","operationId":"executeCustomEndpointGet","tags":["Custom Endpoints"],"parameters":[{"name":"path","in":"path","description":"Custom endpoint path (supports nested segments).","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Custom response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Execute custom endpoint","description":"Execute a custom endpoint with POST.","operationId":"executeCustomEndpointPost","tags":["Custom Endpoints"],"parameters":[{"name":"path","in":"path","description":"Custom endpoint path (supports nested segments).","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Custom response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"summary":"Execute custom endpoint","description":"Execute a custom endpoint with PUT.","operationId":"executeCustomEndpointPut","tags":["Custom Endpoints"],"parameters":[{"name":"path","in":"path","description":"Custom endpoint path (supports nested segments).","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Custom response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"summary":"Execute custom endpoint","description":"Execute a custom endpoint with PATCH.","operationId":"executeCustomEndpointPatch","tags":["Custom Endpoints"],"parameters":[{"name":"path","in":"path","description":"Custom endpoint path (supports nested segments).","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"responses":{"200":{"description":"Custom response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"summary":"Execute custom endpoint","description":"Execute a custom endpoint with DELETE.","operationId":"executeCustomEndpointDelete","tags":["Custom Endpoints"],"parameters":[{"name":"path","in":"path","description":"Custom endpoint path (supports nested segments).","required":true,"schema":{"type":"string"}}],"security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Custom response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/app/me":{"get":{"summary":"App user profile","description":"Return app-user profile from a session token.","operationId":"getAppSessionProfile","tags":["App Users"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"App user profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppUserSessionResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/app/collections":{"get":{"summary":"List collections (app user)","description":"List collections with an app-user session token.","operationId":"listCollectionsAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"responses":{"200":{"description":"Collections list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionListResponse"}}}},"401":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/app/collections/{slug}":{"get":{"summary":"Get collection (app user)","description":"Fetch collection by slug with an app-user token.","operationId":"getCollectionAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"parameters":[{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Collection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/app/collections/{slug}/records":{"get":{"summary":"List records (app user)","description":"List records with an app-user token.","operationId":"listRecordsAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"parameters":[{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Records","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordListResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Create record (app user)","description":"Create a record with an app-user token.","operationId":"createRecordAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"parameters":[{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordCreateRequest"}}}},"responses":{"201":{"description":"Record created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/app/collections/{slug}/records/{recordId}":{"get":{"summary":"Get record (app user)","description":"Fetch a record by id with an app-user token.","operationId":"getRecordAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"parameters":[{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","description":"Record id.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordResponse"}}}},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"put":{"summary":"Update record (app user)","description":"Update a record with an app-user token.","operationId":"updateRecordAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"parameters":[{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","description":"Record id.","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordUpdateRequest"}}}},"responses":{"200":{"description":"Record updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionRecordResponse"}}}},"400":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"summary":"Delete record (app user)","description":"Delete a record with an app-user token.","operationId":"deleteRecordAppUser","tags":["App Users"],"security":[{"BearerAuth":[]}],"parameters":[{"name":"slug","in":"path","description":"Collection slug.","required":true,"schema":{"type":"string"}},{"name":"recordId","in":"path","description":"Record id.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content"},"404":{"description":"Error response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/agent/v1/health":{"get":{"summary":"Agent Sandbox health probe","description":"Lightweight health check that returns sandbox status, version, uptime, and the caller's current rate-limit status. Cached at the edge for 10 seconds. Cheap to poll. Send the optional x-agent-id header to elevate to Agent Developer tier limits.","operationId":"agentHealth","tags":["Agent Sandbox"],"responses":{"200":{"description":"Healthy","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHealthResponse"}}}}}}},"/agent/v1/users":{"get":{"summary":"List agent users (cursor pagination)","description":"Paginated user list with realistic edge cases: nullable nested fields, sparse fieldsets, silent param clamping. Use meta.next_cursor for next page; never increment a page number.","operationId":"agentListUsers","tags":["Agent Sandbox"],"parameters":[{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque cursor from previous response. Omit for first page."},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100},"description":"Page size (silently clamped at 100)."},{"name":"fields","in":"query","schema":{"type":"string"},"description":"Comma-separated sparse fieldset (e.g. id,email,full_name)."},{"name":"seed","in":"query","schema":{"type":"integer","default":42},"description":"Deterministic fixture seed."}],"responses":{"200":{"description":"Paginated user list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUserListResponse"}}}}}}},"/agent/v1/users/{id}":{"get":{"summary":"Get a single agent user with optional expansion","description":"Returns one user. Without ?expand=, nested resources (addresses, activity, organizations) are returned as references. With ?expand=addresses,activity, those resources are inlined.","operationId":"agentGetUser","tags":["Agent Sandbox"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^usr_[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$"},"description":"ULID with usr_ prefix."},{"name":"expand","in":"query","schema":{"type":"string"},"description":"Comma-separated: addresses, activity, organizations."}],"responses":{"200":{"description":"User found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUserDetailResponse"}}}},"400":{"description":"Invalid ID format","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentErrorResponse"}}}}}}},"/agent/v1/auth/login":{"post":{"summary":"Agent auth login (with MFA branch)","description":"Returns a session for normal accounts or an MFA challenge for accounts with email matching '+mfa@'. Use '+wrong@' or '+locked@' suffixes to trigger 401 branches.","operationId":"agentLogin","tags":["Agent Sandbox"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","password"],"properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":8}}}}}},"responses":{"200":{"description":"Session created or MFA challenge","content":{"application/json":{}}},"400":{"description":"Missing fields"},"401":{"description":"Invalid credentials or account locked"},"422":{"description":"Validation error"},"429":{"description":"Rate limited"}}}},"/agent/v1/orders":{"get":{"summary":"List agent orders (relational data)","description":"Orders with relational references (customer, line items, products, addresses). Money is always {amount, currency, formatted}. Some line_items reference deleted products.","operationId":"agentListOrders","tags":["Agent Sandbox"],"parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100}},{"name":"status","in":"query","schema":{"type":"string","enum":["pending","paid","shipped","delivered","refunded","cancelled"]}},{"name":"seed","in":"query","schema":{"type":"integer","default":42}}],"responses":{"200":{"description":"Paginated order list","content":{"application/json":{}}},"400":{"description":"Invalid status filter"}}}},"/agent/v1/scenarios":{"get":{"summary":"List training scenarios","description":"Returns the catalogue of available failure scenarios.","operationId":"agentListScenarios","tags":["Agent Sandbox"],"responses":{"200":{"description":"Scenario list","content":{"application/json":{}}}}}},"/agent/v1/scenarios/{scenario}":{"get":{"summary":"Trigger a deliberate failure scenario","description":"Returns a controlled failure for testing agent error handling. All responses include header X-Agent-Sandbox-Intentional: <scenario> so error reporters can suppress them. Available scenarios: rate-limited, server-error, bad-gateway, timeout, validation-error, unauthorized, forbidden, not-found, conflict, too-large, slow, partial-content, redirect-loop, malformed-json, empty-response.","operationId":"agentScenario","tags":["Agent Sandbox"],"parameters":[{"name":"scenario","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Slow / partial-content / empty-response / malformed-json scenarios"},"206":{"description":"Partial content"},"302":{"description":"Redirect loop hop"},"401":{"description":"Unauthorized scenario"},"403":{"description":"Forbidden scenario"},"404":{"description":"Not-found scenario or unknown scenario name"},"409":{"description":"Conflict scenario"},"413":{"description":"Too-large scenario"},"422":{"description":"Validation-error scenario"},"429":{"description":"Rate-limited scenario"},"500":{"description":"Server-error scenario"},"502":{"description":"Bad-gateway scenario"},"504":{"description":"Timeout scenario (returns immediately, see X-Agent-Sandbox-Simulated-Delay header)"}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"session_token"}},"schemas":{"AgentMoney":{"type":"object","required":["amount","currency","formatted"],"properties":{"amount":{"type":"integer","description":"Value in smallest currency unit (cents for USD, pence for GBP)."},"currency":{"type":"string","description":"ISO 4217 code, e.g. USD."},"formatted":{"type":"string","description":"Human-readable display string with currency symbol."}}},"AgentPaginationMeta":{"type":"object","required":["limit","returned","next_cursor","prev_cursor","has_more","total_estimate"],"properties":{"limit":{"type":"integer"},"returned":{"type":"integer"},"next_cursor":{"type":["string","null"],"description":"Opaque cursor or null if at end."},"prev_cursor":{"type":["string","null"],"description":"Always null in v1 (forward-only pagination)."},"has_more":{"type":"boolean"},"total_estimate":{"type":"integer"}}},"AgentErrorResponse":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","description":"Human-readable message."},"hint":{"type":"string"},"request_id":{"type":"string"}}},"AgentHealthResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["status","version","uptime_seconds","rate_limit_status","deprecations"],"properties":{"status":{"type":"string","enum":["healthy","degraded","maintenance"]},"version":{"type":"string"},"uptime_seconds":{"type":"integer"},"rate_limit_status":{"type":"object","properties":{"tier":{"type":"string"},"remaining_today":{"type":["integer","null"]},"limit_today":{"type":["integer","null"]},"reset_at":{"type":["string","null"],"format":"date-time"}}},"deprecations":{"type":"array","items":{"type":"object"}}}}}},"AgentUser":{"type":"object","required":["id","email","full_name","locale","created_at","updated_at","timezone","profile","preferences","status"],"properties":{"id":{"type":"string","pattern":"^usr_[0123456789ABCDEFGHJKMNPQRSTVWXYZ]{26}$"},"email":{"type":"string","format":"email"},"full_name":{"type":"string"},"locale":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"timezone":{"type":"string"},"profile":{"type":"object","properties":{"avatar_url":{"type":["string","null"]},"bio":{"type":["string","null"]},"company":{"type":["object","null"],"properties":{"name":{"type":"string"},"department":{"type":"string"},"employee_id":{"type":"string"}}},"social":{"type":"object","properties":{"twitter":{"type":["string","null"]},"github":{"type":["string","null"]},"linkedin":{"type":["string","null"]}}}}},"preferences":{"type":"object"},"status":{"type":"string","enum":["active","suspended"]}}},"AgentUserListResponse":{"type":"object","required":["data","meta"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AgentUser"}},"meta":{"$ref":"#/components/schemas/AgentPaginationMeta"}}},"AgentUserDetailResponse":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/AgentUser"}}},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}},"additionalProperties":true,"required":["error"]},"LegacyUser":{"type":"object","properties":{"id":{"type":"integer"},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"},"avatar":{"type":"string"}},"required":["id","email","first_name","last_name","avatar"]},"LegacyUserListResponse":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"total_pages":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/LegacyUser"}},"support":{"type":"object","additionalProperties":true}},"required":["page","per_page","total","total_pages","data"],"additionalProperties":true},"LegacyUserResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LegacyUser"},"support":{"type":"object","additionalProperties":true}},"required":["data"],"additionalProperties":true},"LegacyMutationRequest":{"type":"object","additionalProperties":true},"LegacyMutationResponse":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"additionalProperties":true},"LegacyUnknown":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"year":{"type":"integer"},"color":{"type":"string"},"pantone_value":{"type":"string"}},"required":["id","name","year","color","pantone_value"]},"LegacyUnknownListResponse":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"total_pages":{"type":"integer"},"data":{"type":"array","items":{"$ref":"#/components/schemas/LegacyUnknown"}},"support":{"type":"object","additionalProperties":true}},"required":["page","per_page","total","total_pages","data"],"additionalProperties":true},"LegacyUnknownResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LegacyUnknown"},"support":{"type":"object","additionalProperties":true}},"required":["data"],"additionalProperties":true},"AuthRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"password":{"type":"string"}},"required":["email","password"]},"RegisterResponse":{"type":"object","properties":{"id":{"type":"integer"},"token":{"type":"string"}},"required":["token"],"additionalProperties":true},"LoginResponse":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"Collection":{"type":"object","properties":{"id":{"type":"string"},"project_id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"schema":{"type":"object","additionalProperties":true},"visibility":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["id","name","slug"],"additionalProperties":true},"CollectionListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Collection"}}},"required":["data"]},"CollectionResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Collection"}},"required":["data"]},"CollectionCreateRequest":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"schema":{"type":"object","additionalProperties":true},"project_id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"visibility":{"type":"string"}},"required":["name"],"additionalProperties":true},"CollectionUpdateRequest":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string"},"schema":{"type":"object","additionalProperties":true},"visibility":{"type":"string"}},"additionalProperties":true},"CollectionRecord":{"type":"object","properties":{"id":{"type":"string"},"collection_id":{"type":"string"},"project_id":{"type":"string"},"app_user_id":{"type":"string"},"created_by":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"},"deleted_at":{"type":"string","format":"date-time","nullable":true},"data":{"type":"object","additionalProperties":true}},"required":["id","data"],"additionalProperties":true},"CollectionRecordListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionRecord"}},"meta":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"total":{"type":"integer"},"pages":{"type":"integer"}},"additionalProperties":true}},"required":["data"]},"CollectionRecordResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CollectionRecord"}},"required":["data"]},"CollectionRecordCreateRequest":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}},"required":["data"],"additionalProperties":true},"CollectionRecordUpdateRequest":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}},"required":["data"],"additionalProperties":true},"AppUser":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","format":"email"},"status":{"type":"string"},"last_login_at":{"type":"string","format":"date-time"},"created_at":{"type":"string","format":"date-time"},"metadata":{"type":"object","additionalProperties":true}},"required":["id","email"],"additionalProperties":true},"AppUserListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AppUser"}}},"required":["data"]},"AppUserResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AppUser"}},"required":["data"]},"AppUserLoginRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"project_id":{"oneOf":[{"type":"string"},{"type":"integer"}]},"metadata":{"type":"object","additionalProperties":true}},"required":["email"],"additionalProperties":true},"AppUserLoginResponse":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}},"required":["data"]},"AppUserVerifyRequest":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"AppUserVerifyResponse":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}},"required":["data"]},"AppUserCreateRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"metadata":{"type":"object","additionalProperties":true}},"required":["email"],"additionalProperties":true},"AppUserUpdateRequest":{"type":"object","properties":{"email":{"type":"string","format":"email"},"status":{"type":"string"},"metadata":{"type":"object","additionalProperties":true}},"additionalProperties":true},"AppUserSessionResponse":{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}},"required":["data"]},"AppUserTotalResponse":{"type":"object","properties":{"total":{"type":"integer"}},"required":["total"]},"Template":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"icon":{"type":"string"},"is_featured":{"type":"boolean"},"config":{"type":"object","additionalProperties":true},"endpoints":{"type":"array","items":{"type":"object","additionalProperties":true}}},"required":["id","name","description"],"additionalProperties":true},"TemplatesResponse":{"type":"object","properties":{"templates":{"type":"array","items":{"$ref":"#/components/schemas/Template"}},"pagination":{"type":"object","properties":{"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"pages":{"type":"integer"}},"additionalProperties":true}},"additionalProperties":true}}}}