{"openapi":"3.1.0","info":{"title":"The Binding of Isaac API","version":"0.1.0"},"paths":{"/health":{"get":{"tags":["health"],"summary":"Liveness","operationId":"liveness_health_get","responses":{"200":{"description":"Successful Response","headers":{"X-Request-ID":{"description":"Request correlation identifier","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Request correlation identifier","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/health/ready":{"get":{"tags":["health"],"summary":"Readiness","operationId":"readiness_health_ready_get","responses":{"200":{"description":"Successful Response","headers":{"X-Request-ID":{"description":"Request correlation identifier","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadinessResponse"}}}},"500":{"description":"Internal Server Error","headers":{"X-Request-ID":{"description":"Request correlation identifier","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Service Unavailable","headers":{"X-Request-ID":{"description":"Request correlation identifier","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReadinessUnavailableResponse"}}}}}}},"/v1/items":{"get":{"tags":["items"],"summary":"List Items","operationId":"list_items_v1_items_get","security":[{"X-API-Key":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Search"}},{"name":"quality","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4,"minimum":0},{"type":"null"}],"title":"Quality"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Type"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Version"}},{"name":"sort","in":"query","required":false,"schema":{"enum":["name","quality","game_id"],"type":"string","default":"name","title":"Sort"}},{"name":"order","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","default":"asc","title":"Order"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":10000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemListResponse"}}},"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"},"429":{"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds until another request may be attempted","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Content"}}}},"/v1/items/random":{"get":{"tags":["items"],"summary":"Get Random Item","operationId":"get_random_item_v1_items_random_get","security":[{"X-API-Key":[]}],"parameters":[{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Search"}},{"name":"quality","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":4,"minimum":0},{"type":"null"}],"title":"Quality"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Type"}},{"name":"version","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Version"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemResponse"}}},"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"},"429":{"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds until another request may be attempted","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"}}}},"/v1/items/{item_id}":{"get":{"tags":["items"],"summary":"Get Item","operationId":"get_item_v1_items__item_id__get","security":[{"X-API-Key":[]}],"parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"integer","exclusiveMinimum":0,"title":"Item Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemResponse"}}},"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}},"ETag":{"description":"Weak validator for the item representation","schema":{"type":"string"}},"Cache-Control":{"description":"Allow private storage and require revalidation","schema":{"type":"string"}}}},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Forbidden"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Service Unavailable"},"429":{"headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds until another request may be attempted","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Too Many Requests"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Unprocessable Content"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}},"description":"Not Found"},"304":{"description":"The item representation has not changed","headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}},"ETag":{"description":"Weak validator for the item representation","schema":{"type":"string"}},"Cache-Control":{"description":"Allow private storage and require revalidation","schema":{"type":"string"}}}}}}},"/v1/meta":{"get":{"tags":["meta"],"summary":"Get Meta","operationId":"get_meta_v1_meta_get","responses":{"200":{"description":"Successful Response","headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetaResponse"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too Many Requests","headers":{"X-RateLimit-Limit":{"description":"Maximum requests allowed in the current window","schema":{"type":"integer"}},"X-RateLimit-Remaining":{"description":"Requests remaining in the current window","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"Unix timestamp when the current window resets","schema":{"type":"integer"}},"Retry-After":{"description":"Seconds until another request may be attempted","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"security":[{"X-API-Key":[]}]}}},"components":{"schemas":{"ErrorDetail":{"properties":{"code":{"type":"string","title":"Code"},"message":{"type":"string","title":"Message"}},"type":"object","required":["code","message"],"title":"ErrorDetail"},"ErrorResponse":{"properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"}},"type":"object","required":["error"],"title":"ErrorResponse"},"HealthResponse":{"properties":{"status":{"type":"string","const":"ok","title":"Status","default":"ok"}},"type":"object","title":"HealthResponse"},"ItemListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ItemResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["items","total","limit","offset"],"title":"ItemListResponse"},"ItemResponse":{"properties":{"gameId":{"type":"integer","title":"Gameid"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"quality":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quality"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"rechargeTime":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rechargetime"},"imageUrl":{"type":"string","title":"Imageurl"},"introducedInVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Introducedinversion"}},"type":"object","required":["gameId","name","description","quality","type","rechargeTime","imageUrl","introducedInVersion"],"title":"ItemResponse"},"MetaResponse":{"properties":{"apiVersion":{"type":"string","title":"Apiversion"},"datasetVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datasetversion"},"gameVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gameversion"},"lastSync":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Lastsync"},"items":{"type":"integer","title":"Items"}},"type":"object","required":["apiVersion","datasetVersion","gameVersion","lastSync","items"],"title":"MetaResponse"},"ReadinessResponse":{"properties":{"status":{"type":"string","const":"ready","title":"Status","default":"ready"},"services":{"$ref":"#/components/schemas/ServiceStates"}},"type":"object","required":["services"],"title":"ReadinessResponse"},"ReadinessUnavailableResponse":{"properties":{"error":{"$ref":"#/components/schemas/ErrorDetail"},"services":{"$ref":"#/components/schemas/ServiceStates"}},"type":"object","required":["error","services"],"title":"ReadinessUnavailableResponse"},"ServiceStates":{"properties":{"database":{"type":"string","enum":["up","down"],"title":"Database"},"redis":{"type":"string","enum":["up","down"],"title":"Redis"}},"type":"object","required":["database","redis"],"title":"ServiceStates"}},"securitySchemes":{"X-API-Key":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}