Auth logic isn't shared between the clients anyway, so co-locating them is confusing since you can't use the same clients to call both. This also makes the codegen clients less verbose.
197 lines
5.4 KiB
JSON
197 lines
5.4 KiB
JSON
{
|
|
"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\" }"
|
|
}
|
|
},
|
|
"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\" }"
|
|
}
|
|
},
|
|
"required": [
|
|
"requestedAt",
|
|
"receivedAt"
|
|
],
|
|
"additionalProperties": false
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"parameters": [],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"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
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |