openapi: 3.0.1 info: title: Openlayer Commits Storage API description: The Openlayer REST API for AI evaluation, testing, and observability. Manage projects, commit model versions and datasets, run and evaluate tests, create inference pipelines for production monitoring, and stream production inference data into Openlayer. All requests are authenticated with a Bearer API key. termsOfService: https://www.openlayer.com/terms contact: name: Openlayer Support url: https://www.openlayer.com/docs email: support@openlayer.com version: '1.0' servers: - url: https://api.openlayer.com/v1 description: Openlayer production API security: - api_key: [] tags: - name: Storage description: Presigned URLs for uploading datasets and artifacts. paths: /storage/presigned-url: post: operationId: createPresignedUrl tags: - Storage summary: Create a presigned URL description: Create a presigned URL used to upload a dataset or artifact to Openlayer object storage before committing it to a project. parameters: - name: objectName in: query description: The name of the object to upload. required: true schema: type: string responses: '200': description: A presigned upload URL. content: application/json: schema: $ref: '#/components/schemas/PresignedUrl' '401': $ref: '#/components/responses/Unauthorized' components: responses: Unauthorized: description: Authentication failed or the API key is missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Error: type: object properties: code: type: string message: type: string required: - message PresignedUrl: type: object properties: url: type: string description: The presigned URL to which the object should be uploaded. storageUri: type: string description: The storage URI (e.g. s3://...) referencing the uploaded object. fields: type: object additionalProperties: true description: Form fields to include with the upload request, when applicable. securitySchemes: api_key: type: http scheme: bearer bearerFormat: apiKey description: Pass your Openlayer API key as a Bearer token in the Authorization header.