{ "openapi": "3.0.3", "info": { "title": "OpenPipe API", "description": "The public API for reporting API calls to OpenPipe", "version": "0.1.1" }, "servers": [ { "url": "https://app.openpipe.ai/api/v1" } ], "paths": { "/check-cache": { "post": { "operationId": "checkCache", "description": "Check if a prompt is cached", "security": [ { "Authorization": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "requestedAt": { "type": "number", "description": "Unix timestamp in milliseconds" }, "reqPayload": { "description": "JSON-encoded request payload" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Extra tags to attach to the call for filtering. Eg { \"userId\": \"123\", \"promptId\": \"populate-title\" }", "default": {} } }, "required": [ "requestedAt" ], "additionalProperties": false } } } }, "parameters": [], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "respPayload": { "description": "JSON-encoded response payload" } }, "additionalProperties": false } } } }, "default": { "$ref": "#/components/responses/error" } } } }, "/report": { "post": { "operationId": "report", "description": "Report an API call", "security": [ { "Authorization": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "requestedAt": { "type": "number", "description": "Unix timestamp in milliseconds" }, "receivedAt": { "type": "number", "description": "Unix timestamp in milliseconds" }, "reqPayload": { "description": "JSON-encoded request payload" }, "respPayload": { "description": "JSON-encoded response payload" }, "statusCode": { "type": "number", "description": "HTTP status code of response" }, "errorMessage": { "type": "string", "description": "User-friendly error message" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Extra tags to attach to the call for filtering. Eg { \"userId\": \"123\", \"promptId\": \"populate-title\" }", "default": {} } }, "required": [ "requestedAt", "receivedAt" ], "additionalProperties": false } } } }, "parameters": [], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "anyOf": [ { "type": "string", "enum": [ "ok" ] }, { "type": "string", "enum": [ "error" ] } ] } }, "required": [ "status" ], "additionalProperties": false } } } }, "default": { "$ref": "#/components/responses/error" } } } }, "/local-testing-only-get-latest-logged-call": { "get": { "operationId": "localTestingOnlyGetLatestLoggedCall", "description": "Get the latest logged call (only for local testing)", "security": [ { "Authorization": [] } ], "parameters": [], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date-time" }, "cacheHit": { "type": "boolean" }, "tags": { "type": "object", "additionalProperties": { "type": "string", "nullable": true } }, "modelResponse": { "type": "object", "properties": { "id": { "type": "string" }, "statusCode": { "type": "number", "nullable": true }, "errorMessage": { "type": "string", "nullable": true }, "reqPayload": {}, "respPayload": {} }, "required": [ "id", "statusCode", "errorMessage" ], "additionalProperties": false, "nullable": true } }, "required": [ "createdAt", "cacheHit", "tags", "modelResponse" ], "additionalProperties": false, "nullable": true } } } }, "default": { "$ref": "#/components/responses/error" } } } } }, "components": { "securitySchemes": { "Authorization": { "type": "http", "scheme": "bearer" } }, "responses": { "error": { "description": "Error response", "content": { "application/json": { "schema": { "type": "object", "properties": { "message": { "type": "string" }, "code": { "type": "string" }, "issues": { "type": "array", "items": { "type": "object", "properties": { "message": { "type": "string" } }, "required": [ "message" ], "additionalProperties": false } } }, "required": [ "message", "code" ], "additionalProperties": false } } } } } } }