> ## Documentation Index
> Fetch the complete documentation index at: https://docs.videobase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API overview

> Understand the Videobase API base URL, formats, identifiers, pagination, and upload flow.

The Videobase API uses resource-oriented endpoints under a versioned base URL.

```text theme={null}
https://api.videobase.com/v1
```

## Requests

* Send your API key in the `X-Api-Key` header.
* Send JSON request bodies with `Content-Type: application/json`.
* Use `multipart/form-data` for thumbnail and subtitle file uploads.
* The API returns JSON for both successful requests and application errors.

## Identifiers

Video IDs are 12-character word strings. Folder IDs are positive integers. Remote-upload IDs use the same 12-character format as video IDs.

## Pagination

List operations use one-based pages. Responses include:

<ResponseField name="pagination" type="object" required>
  Pagination metadata for the returned collection.

  <Expandable title="properties">
    <ResponseField name="page" type="integer" required>
      Current one-based page.
    </ResponseField>

    <ResponseField name="perPage" type="integer" required>
      Requested number of records per page.
    </ResponseField>

    <ResponseField name="total" type="integer" required>
      Total number of matching records, except that the video-list total currently counts every video in the folder before applying `search`.
    </ResponseField>
  </Expandable>
</ResponseField>

Parameter names differ on one legacy operation: DMCA reports accepts `per_page`, while other paginated operations accept `perPage`.

## Upload flow

`GET /v1/upload` selects an available file server and returns its base URL plus an opaque upload session. File transfer runs on the selected file server, not on `api.videobase.com`.

Treat the returned session as a secret. It contains upload authorization and is intended only for the selected upload service.

Remote uploads are separate. Use `POST /v1/upload/url` to queue a publicly reachable HTTP or HTTPS URL, then poll `GET /v1/upload/url/status`.

## Dates and sizes

* Timestamps use `YYYY-MM-DD HH:mm:ss` in server time unless a field says otherwise.
* Account storage values are in KB.
* Video and remote-upload byte counts are bytes.
