{"openapi":"3.1.0","info":{"title":"Simple Agent Store REST API","version":"1.0.0","description":"User-owned deterministic object storage. REST and MCP share API keys, plan limits and stored objects. Monetary subscriptions are managed in the app, never through these endpoints."},"servers":[{"url":"/api/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Revocable Agent Store API key, not a browser session or Supabase JWT."}}},"paths":{"/objects/{key}":{"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":512},"description":"Exact key. Percent-encode each path segment; slash-separated keys are supported."}],"get":{"operationId":"getObject","summary":"Read one full unexpired object","responses":{"200":{"description":"Success. Responses are not cached. Object reads/writes include an ETag containing the quoted version.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"object","required":["key","kind","value","version"],"properties":{"key":{"type":"string"},"kind":{"type":"string"},"value":{"type":"object","additionalProperties":true},"version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"additionalProperties":true}}}}}},"400":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"404":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"409":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"412":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"413":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"415":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"429":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"503":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}},"put":{"operationId":"putObject","summary":"Create or replace an object","description":"Without a conditional header this is an unconditional upsert. Replacements reset omitted optional fields. Includes database size and quota enforcement.","parameters":[{"name":"If-Match","in":"header","schema":{"type":"string","example":"\"2\""},"description":"Mutate only the observed version. A stale version returns 412."},{"name":"If-None-Match","in":"header","schema":{"type":"string","const":"*"},"description":"Create only; an existing key, including an expired one not yet deleted, returns 412. Do not combine with If-Match."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"kind":{"type":"string","enum":["note","todo","reminder","calendar","reference","other"],"description":"Behavioral intent. Contacts should normally use reference."},"value":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The original arbitrary user payload as a JSON object."},"searchable_text":{"type":"string","minLength":1,"description":"Plain text preserving important original wording for lexical retrieval."},"description":{"type":"string"},"labels":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1}},"source_client":{"type":"string"},"due_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"start_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"end_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"completed":{"type":"boolean"},"expires_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["kind","value","searchable_text"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success. Responses are not cached. Object reads/writes include an ETag containing the quoted version.","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"object","required":["key","kind","value","version"],"properties":{"key":{"type":"string"},"kind":{"type":"string"},"value":{"type":"object","additionalProperties":true},"version":{"type":"integer"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"additionalProperties":true}}}}}},"400":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"404":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"409":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"412":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"413":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"415":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"429":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"503":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}},"delete":{"operationId":"deleteObject","summary":"Permanently delete by exact key","parameters":[{"name":"If-Match","in":"header","schema":{"type":"string","example":"\"2\""},"description":"Mutate only the observed version. A stale version returns 412."}],"responses":{"200":{"description":"Success. Responses are not cached. Object reads/writes include an ETag containing the quoted version.","content":{"application/json":{"schema":{"type":"object","properties":{"deleted":{"type":"boolean"}}}}}},"400":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"404":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"409":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"412":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"413":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"415":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"429":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"503":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/objects":{"get":{"operationId":"listObjects","summary":"List metadata using structured filters","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["note","todo","reminder","calendar","reference","other"]}},"style":"form","explode":true},{"name":"source_client","in":"query","required":false,"schema":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":512}},"style":"form","explode":true},{"name":"labels","in":"query","required":false,"schema":{"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}},"style":"form","explode":true},{"name":"due_before","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"completed","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":2048}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Success. Responses are not cached. Object reads/writes include an ETag containing the quoted version.","content":{"application/json":{"schema":{"type":"object","required":["results","total_count","next_cursor"],"properties":{"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"Object metadata without value or searchable_text. Get an exact key for the full object."}},"total_count":{"type":"integer"},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"404":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"409":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"412":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"413":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"415":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"429":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"503":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/search":{"get":{"operationId":"searchObjects","summary":"Lexically search the full store","description":"All query lexemes must match. No semantic inference, substring guarantee or typo correction. Offset cursors are deterministic for unchanged data, not snapshot isolation.","parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string","maxLength":2048}},{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":1000}},{"name":"kind","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","enum":["note","todo","reminder","calendar","reference","other"]}},"style":"form","explode":true},{"name":"source_client","in":"query","required":false,"schema":{"maxItems":50,"type":"array","items":{"type":"string","maxLength":512}},"style":"form","explode":true},{"name":"labels","in":"query","required":false,"schema":{"description":"Exact labels; every supplied label must match.","maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":512}},"style":"form","explode":true},{"name":"created_after","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"created_before","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"updated_after","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"updated_before","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"due_after","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"due_before","in":"query","required":false,"schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},{"name":"completed","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"key_prefix","in":"query","required":false,"schema":{"type":"string","maxLength":512}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["relevance","created_desc","created_asc","updated_desc","updated_asc","due_asc"]}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"Success. Responses are not cached. Object reads/writes include an ETag containing the quoted version.","content":{"application/json":{"schema":{"type":"object","required":["results","total_count","next_cursor"],"properties":{"results":{"type":"array","items":{"type":"object","additionalProperties":true,"description":"Object metadata without value or searchable_text. Get an exact key for the full object."}},"total_count":{"type":"integer"},"next_cursor":{"type":["string","null"]}}}}}},"400":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"401":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"404":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"409":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"412":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"413":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"415":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"429":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"503":{"description":"Request failed. Error codes distinguish invalid input, authorization, quota, version conflict and temporary failure.","content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}}}}