Verifiable Files API

Endpoints for binary file access. When any of the other APIs return file paths, these file paths are referring to the `path` parameter in the following API's. File paths are unique per organization, but the same path can exist in multiple organizations.

Operations 7

POST /files/uploads/{path} Upload a file #
PUT /files/uploads/{path} Upload and overwrite a file #
DELETE /files/uploads/{pathOrId} Delete a file #
GET /files/{pathOrId} Download a file #
HEAD /files/{pathOrId} Get file metadata #
GET /files/uploads List uploaded files #
GET /files/exports List event log exports #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/verifiable-files-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

verifiable-files-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Verifiable API Documentation Files API
  description: '# Introduction


    This document contains the official documentation for the latest version of the Verifiable API.'
  version: 26.12.1.962
servers:
- url: https://discovery.verifiable.com/api
  description: Production
- url: https://discovery-staging.verifiable.com/api
  description: Staging
tags:
- name: Files
  description: Endpoints for binary file access. When any of the other APIs return file paths, these file paths are referring to the `path` parameter in the following API's. File paths are unique per organization, but the same path can exist in multiple organizations.
paths:
  /files/uploads/{path}:
    post:
      tags:
      - Files
      summary: Upload a file
      description: 'Uploads, copies or moves a file. If the file already exists the server returns `409 Conflict`.


        If `x-source-path` is set then the file is copied from an existing file and stored at `path`.

        If `x-source-delete` is set to `1`, `true` or `yes` then the file is moved instead of copied.

        If `x-source-path` is not set then the content of the file must be uploaded by using form data (Content-Type = `multipart/form-data`). The new file is stored at `path`.


        Note that there is special handling for files uploaded to `uploads/providers/{providerId}/>.>`. If this path is used, then the file will be associated with the provider with that identifier and also deleted when this provider gets deleted.

        Files must include a `>` and `>` to be associated with a provider.'
      operationId: UploadFile
      parameters:
      - name: path
        in: path
        description: The complete path to the file including -but not necessarily requiring- folder separators.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
        '500':
          description: Server Error
      security:
      - Bearer: []
    put:
      tags:
      - Files
      summary: Upload and overwrite a file
      description: 'Uploads, copies or moves a file. If the file already exists then it is overwritten.


        If `x-source-path` is set then the file is copied from an existing file and stored at `path`.

        If `x-source-delete` is set to `1`, `true` or `yes` then the file is moved instead of copied.

        If `x-source-path` is not set then the content of the file must be uploaded by using form data (Content-Type = `multipart/form-data`). The new file is stored at `path`.


        Note that there is special handling for files uploaded to `uploads/providers/{providerId}/>.>`. If this path is used, then the file will be associated with the provider with that identifier and also deleted when this provider gets deleted.

        Files must include a `>` and `>` to be associated with a provider.'
      operationId: UploadAndOverwriteFile
      parameters:
      - name: path
        in: path
        description: The complete path to the file including -but not necessarily requiring- folder separators.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '500':
          description: Server Error
      security:
      - Bearer: []
  /files/uploads/{pathOrId}:
    delete:
      tags:
      - Files
      summary: Delete a file
      description: Deletes a previously uploaded file.
      operationId: DeleteFile
      parameters:
      - name: pathOrId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '500':
          description: Server Error
      security:
      - Bearer: []
  /files/{pathOrId}:
    get:
      tags:
      - Files
      summary: Download a file
      description: Download the file contents for the file at the specified location.
      operationId: DownloadFile
      parameters:
      - name: pathOrId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
                format: binary
        '304':
          description: Not Modified
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server Error
      security:
      - Bearer: []
    head:
      tags:
      - Files
      summary: Get file metadata
      description: Returns the metadata of a file at the specified location.
      operationId: GetFileMetadata
      parameters:
      - name: pathOrId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
        '304':
          description: Not Modified
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server Error
      security:
      - Bearer: []
  /files/uploads:
    get:
      tags:
      - Files
      summary: List uploaded files
      description: Returns metadata for previously uploaded files.
      operationId: ListUploadedFilesMetadata
      parameters:
      - name: prefix
        in: query
        description: If set the result is filtered to return only files whose path begin with the specified prefix.
        schema:
          maxLength: 640
          minLength: 0
          type: string
      - name: before
        in: query
        description: If set, only returns events from before this date.
        schema:
          type: string
          format: date-time
      - name: beforeInclusive
        in: query
        description: If set to `true`, will include events created exactly at `before` date and time too.
        schema:
          type: boolean
      - name: after
        in: query
        description: If set, only returns events from after this date.
        schema:
          type: string
          format: date-time
      - name: afterInclusive
        in: query
        description: If set to `true`, will include events created exactly at `after` date and time too.
        schema:
          type: boolean
      - name: sortedBy
        in: query
        description: The property by which the returned data will be sorted.
        schema:
          enum:
          - Path
          - CreatedAt
          type: string
      - name: sort
        in: query
        description: If set, the properties and directions the returned data will be sorted by.
        schema:
          type: object
          properties:
            Keys:
              enum:
              - Path
              - CreatedAt
              type: string
            Values:
              enum:
              - Asc
              - Desc
              type: string
      - name: offset
        in: query
        description: The offset for the page to start.
        deprecated: true
        schema:
          type: integer
          format: int32
      - name: cursor
        in: query
        description: The cursor to render the page requested. To load the first page send an empty cursor, then the system will generate the cursors to go to the next and/or previous pages automatically.
        schema:
          type: string
      - name: count
        in: query
        description: The number of items to include in a single page.
        schema:
          type: integer
          format: int32
      - name: sortDirection
        in: query
        description: The direction the returned data will be sorted by.
        schema:
          enum:
          - Asc
          - Desc
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FilePageModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server Error
      security:
      - Bearer: []
  /files/exports:
    get:
      tags:
      - Files
      summary: List event log exports
      description: Returns metadata for exported event logs.
      operationId: ListExportFilesMetadata
      parameters:
      - name: prefix
        in: query
        description: If set the result is filtered to return only files whose path begin with the specified prefix.
        schema:
          maxLength: 640
          minLength: 0
          type: string
      - name: before
        in: query
        description: If set, only returns events from before this date.
        schema:
          type: string
          format: date-time
      - name: beforeInclusive
        in: query
        description: If set to `true`, will include events created exactly at `before` date and time too.
        schema:
          type: boolean
      - name: after
        in: query
        description: If set, only returns events from after this date.
        schema:
          type: string
          format: date-time
      - name: afterInclusive
        in: query
        description: If set to `true`, will include events created exactly at `after` date and time too.
        schema:
          type: boolean
      - name: sortedBy
        in: query
        description: The property by which the returned data will be sorted.
        schema:
          enum:
          - Id
          - Date
          type: string
      - name: sort
        in: query
        description: If set, the properties and directions the returned data will be sorted by.
        schema:
          type: object
          properties:
            Keys:
              enum:
              - Id
              - Date
              type: string
            Values:
              enum:
              - Asc
              - Desc
              type: string
      - name: offset
        in: query
        description: The offset for the page to start.
        deprecated: true
        schema:
          type: integer
          format: int32
      - name: cursor
        in: query
        description: The cursor to render the page requested. To load the first page send an empty cursor, then the system will generate the cursors to go to the next and/or previous pages automatically.
        schema:
          type: string
      - name: count
        in: query
        description: The number of items to include in a single page.
        schema:
          type: integer
          format: int32
      - name: sortDirection
        in: query
        description: The direction the returned data will be sorted by.
        schema:
          enum:
          - Asc
          - Desc
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventLogExportPageModel'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Server Error
      security:
      - Bearer: []
components:
  schemas:
    FileModel:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier for this file.
          format: uuid
        providerId:
          type: string
          description: If set, the provider to which this file is associated.
          format: uuid
        facilityId:
          type: string
          description: If set, the facility to which this file is associated.
          format: uuid
        createdAt:
          type: string
          description: The time when the file was created.
          format: date-time
        createdByUserId:
          type: string
          description: The identifier of the user who created the file.
          format: uuid
        createdByUserEmail:
          type: string
          description: The e-mail of the user who created the file.
        path:
          type: string
          description: Path to the file.
        size:
          type: integer
          description: The size of the file.
          format: int32
      additionalProperties: false
    FilePageModel:
      type: object
      properties:
        sort:
          type:
          - object
          - 'null'
          properties:
            Keys:
              enum:
              - Path
              - CreatedAt
              type: string
            Values:
              enum:
              - Asc
              - Desc
              type: string
        previousCursor:
          type:
          - string
          - 'null'
        nextCursor:
          type:
          - string
          - 'null'
        nextOffset:
          type:
          - integer
          - 'null'
          format: int32
        pageSize:
          type: integer
          format: int32
        count:
          type: integer
          format: int32
        totalCount:
          type:
          - integer
          - 'null'
          format: int32
        items:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/FileModel'
        sortedBy:
          enum:
          - Path
          - CreatedAt
          type:
          - string
          - 'null'
        sortDirection:
          enum:
          - Asc
          - Desc
          type:
          - string
          - 'null'
      additionalProperties: false
    EventLogExportPageModel:
      type: object
      properties:
        sort:
          type: object
          properties:
            Keys:
              enum:
              - Id
              - Date
              type: string
            Values:
              enum:
              - Asc
              - Desc
              type: string
          description: The properties and directions the data is sorted by.
        previousCursor:
          type: string
          description: The value to use for `cursor` to get to the previous paginated page. `null` will be returned if it's the first page.
        nextCursor:
          type: string
          description: The value to use for `cursor` to get to the next paginated page. `null` will be returned if it's the last page.
        nextOffset:
          type: integer
          description: The value to use for `offset` to get the next page following the current page or `null` if this page is the last.
          format: int32
          deprecated: true
        pageSize:
          type: integer
          description: The maximum number of items included in this page.
          format: int32
        count:
          type: integer
          description: The number of items in this page.
          format: int32
        totalCount:
          type: integer
          description: The total number of items in all pages combined.
          format: int32
        items:
          type: array
          items:
            $ref: '#/components/schemas/EventLogExportModel'
          description: The event log exports in the current page.
        sortedBy:
          enum:
          - Id
          - Date
          type: string
          description: The property by which the data is sorted.
        sortDirection:
          enum:
          - Asc
          - Desc
          type: string
          description: The direction in which the data is sorted.
      additionalProperties: false
      example:
        nextCursor: string
        nextOffset: 0
        pageSize: 20
        count: 1
        totalCount: 1
        items:
        - id: 50587ba5-ed48-4430-b9fd-6b4518979a84
          type: DailyChangeLog
          date: '2026-01-15T00:00:00.0000000Z'
          filePath: exports/2026/01/15/daily-change-log.zip
          fileSize: 102400
          eventCount: 500
          status: Completed
        sort:
          Date: Desc
    EventLogExportModel:
      type: object
      properties:
        type:
          enum:
          - DailyChangeLog
          - MonthlyLog
          type: string
          description: The type of export.
        date:
          type: string
          description: The date when the export was generated.
          format: date-time
        filePath:
          type: string
          description: The path to the exported file.
        fileSize:
          type: integer
          description: The size of the exported file in bytes.
          format: int64
        eventCount:
          type: integer
          description: The number of events included in the export.
          format: int32
        status:
          enum:
          - Pending
          - Working
          - Completed
          - Failed
          type: string
          description: The current status of the export job.
        id:
          type: string
          description: Unique identifier for the export.
          format: uuid
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: http
      description: 'Enter your bearer token in the format: Bearer {your token}'
      scheme: bearer
      bearerFormat: custom
x-tagGroups:
- name: Authentication
  tags:
  - Authentication
- name: Definitions
  tags:
  - Definitions
- name: Providers
  tags:
  - Providers
  - ProvidersInfo
  - ProviderProfiles
  - Notes
  - Files
- name: Facilities
  tags:
  - Facilities
  - FacilitiesInfo
  - FacilitiesSpecialties
- name: Verifications
  tags:
  - Licenses
  - Datasets
  - DEA
  - BoardCertifications
- name: Monitoring
  tags:
  - Monitoring
  - Alerts
- name: Credentialing
  tags:
  - CredentialingRequests
- name: Integrations
  tags:
  - Integrations
  - Webhooks
- name: Audits
  tags:
  - Audit
- name: Account
  tags:
  - Users
- name: Organizations
  tags:
  - Reports
- name: Models
  tags:
  - Dataset Records
  - Webhook Callbacks