Element5 Object Store API

Object Store related APIs

OpenAPI Specification

element5-object-store-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Element5 Authorization Object Store API
  description: 'Element5 APIs enables the clients to invoke and monitor Element5 Workflows. The E5 APIs are protected by API keys and the keys would be shared during the onboarding process. Due to the long running nature of workflows the current state of the workflows can be tracked either by polling E5 APIs for status or exposing a webhook which will be notified about progress. The below sections highlight the APIs and events which would be relevant for the current engagement.


    # Authentication


    <!-- ReDoc-Inject: <security-definitions> -->'
  contact:
    email: apisupport@e5.ai
  version: 2.2.0
  x-logo:
    url: https://cdn.prod.website-files.com/658c60c4ff902effa2174f77/668c43e2bfb9956a2995b419_e5-logo-gradient.png
    altText: Element5
    href: https://e5.ai
servers:
- url: https://api-qa.e5.ai
  description: Non-Production Server
- url: https://api.e5.ai
  description: Production Server
security:
- ApiKeyAuth: []
tags:
- name: Object Store
  description: Object Store related APIs
paths:
  /store/v1/file-object/{object-id}:
    get:
      tags:
      - Object Store
      servers:
      - url: https://blob-qa.e5.ai
        description: Non-Production Server
      - url: https://blob.e5.ai
        description: Production Server
      summary: Fetch the file object
      description: Fetch a file object by its `object-id`. The file may be delivered directly as binary content or via a redirect to a pre-signed URL.
      operationId: getFileObject
      parameters:
      - name: object-id
        in: path
        description: Provide a `object-id` to fetch the file object
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: File object delivered directly as binary content
          content:
            '*/*':
              schema:
                type: string
                format: binary
        '302':
          description: File delivered via redirect to a pre-signed URL. The `Location` header contains the pre-signed URL where the file can be accessed.
          headers:
            Location:
              description: Pre-signed URL to access the file
              schema:
                type: string
                format: uri
        '401':
          description: API key is missing or invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
        '403':
          description: Access forbidden. The API key is valid but does not have permission to access this file object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '404':
          description: File not available
      security:
      - ApiKeyAuth: []
  /store/v1/file-object:
    put:
      tags:
      - Object Store
      servers:
      - url: https://blob-qa.e5.ai
        description: Non-Production Server
      - url: https://blob.e5.ai
        description: Production Server
      summary: Upload a file object
      description: Upload a file to S3 storage. The file is stored in a date-based folder structure (YYYY/MM/DD). Returns file object ID and download URL. Requires `file:write` scope in the authorization token.
      operationId: uploadFileObject
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: File to upload
      responses:
        '201':
          description: File uploaded successfully
          headers:
            Location:
              description: The URL to access the uploaded file object resource
              schema:
                type: string
                format: uri
              example: https://blob.e5.ai/store/v1/file-object/550e8400-e29b-41d4-a716-446655440000
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadSuccessResponse'
        '400':
          description: Bad request - invalid file or missing data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadBadRequestError'
        '401':
          description: Unauthorized - invalid or missing token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthError'
        '403':
          description: Forbidden - insufficient permissions or client not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthorizationError'
        '413':
          description: Payload too large - file exceeds maximum size
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileUploadPayloadTooLargeError'
      security:
      - BearerAuth: []
components:
  schemas:
    FileUploadPayloadTooLargeError:
      type: object
      description: File upload Payload Too Large Error Response
      properties:
        code:
          type: string
          description: Error code
          example: '413'
        message:
          type: string
          description: Error message
          example: Payload too large - file exceeds maximum size
      example:
        code: '413'
        message: Payload too large - file exceeds maximum size
    AuthorizationError:
      type: object
      properties:
        code:
          type: string
          example: '403'
        message:
          type: string
          example: Access forbidden. The API key is valid but does not have permission to access this resource.
    FileUploadBadRequestError:
      type: object
      description: File upload Bad Request Error Response
      properties:
        code:
          type: string
          description: Error code
          example: '400'
        message:
          type: string
          description: Error message
          example: Bad request - the uploaded file is invalid or missing required data
      example:
        code: '400'
        message: Bad request - the uploaded file is invalid or missing required data
    FileUploadSuccessResponse:
      type: object
      description: File upload Success Response
      properties:
        fileObjectId:
          type: string
          format: uuid
          description: File object ID
          example: 550e8400-e29b-41d4-a716-446655440000
        downloadUrl:
          type: string
          description: Unique URL to access the uploaded file
          example: https://blob.e5.ai/store/v1/file-object/550e8400-e29b-41d4-a716-446655440000
    AuthError:
      type: object
      properties:
        code:
          type: string
          example: '401'
        message:
          type: string
          example: API key is missing or invalid
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: API key provided by Element5 to authenticate and authorize the Element5 APIs
      name: X-API-Key
      in: header
x-tagGroups:
- name: Core
  tags:
  - Automation
  - Object Store
- name: Micro Verticals
  tags:
  - Authorization
  - Eligibility