ZenTransfer features

ZenTransfer API: programmatic access to your files

ZenTransfer provides a REST API for retrieving file records, building integrations, and polling for new arrivals. OAuth 2.0 authentication, JSON responses, pagination, and a since parameter for incremental sync.

The ZenTransfer API gives developers programmatic access to file records in a ZenTransfer account. It is designed for building custom integrations, newsroom ingest pipelines, and any workflow that needs to pull file data from ZenTransfer into another system on a schedule or in response to a query.

For event-driven workflows — where you want an action to fire the moment a file arrives — the Zapier integration is the recommended approach. ZenTransfer pushes events to Zapier immediately on file arrival. The API is for scenarios where polling or on-demand retrieval is the appropriate pattern.

Authentication

The API uses OAuth 2.0 client credentials. Find your Client ID and Client Secret in the ZenTransfer dashboard.

Request a bearer token:

POST /oauth/token
Content-Type: application/json

{
  "client_id": "your_client_id",
  "client_secret": "your_client_secret"
}

Response:

{
  "access_token": "your_bearer_token",
  "token_type": "Bearer",
  "expires_in": 3600
}

Include the token in the Authorization header on all subsequent requests.

Retrieving files

GET /api/files
Authorization: Bearer <your_bearer_token>

Returns a paginated list of file records. Use the following parameters to control the response:

ParameterTypeDescription
ointegerOffset — starting position in the result set
lintegerLimit — number of records to return per request
sinceISO datetimeReturn only files created after this timestamp

Example — fetch the 20 most recent files created after a specific time:

GET /api/files?since=2026-03-01T12:00:00Z&o=0&l=20
Authorization: Bearer <your_bearer_token>

File object

Each record in the response array contains:

FieldTypeDescription
idstringUnique identifier for the file
namestringOriginal filename as uploaded
mime_typestringMIME type (e.g. image/jpeg, image/raw)
sizeintegerFile size in bytes
createdISO datetimeWhen the file was created in ZenTransfer
modifiedISO datetimeLast modification timestamp
urlstringURL to access the full file
thumbnail_urlstringURL to access a thumbnail version

The response may include additional fields. Only the documented fields above are stable — build integrations against these and ignore undocumented fields, which may change.

Incremental sync pattern

For an integration that needs to stay in sync with new arrivals without missing any files and without re-fetching everything each time:

  1. On the first run, fetch all files and store the created timestamp of the most recent record
  2. On each subsequent run, pass that timestamp as the since parameter — you receive only files created after your last sync point
  3. Update the stored timestamp to the most recent created value in the new response

This pattern keeps polling efficient even as the total file count grows.

Keep polling intervals reasonable. ZenTransfer currently does not enforce rate limits, but this will change. For instant notifications rather than periodic polling, use Zapier.

Use cases

Newsroom and agency ingest pipelines — a backend service polls the ZenTransfer API every 30 seconds, retrieves new files since the last poll, fetches each file, and writes it into the newsroom media asset management system. The photographer's camera upload triggers the delivery chain automatically.

Custom dashboards and monitoring tools — a web app authenticates with the API, retrieves recent file records, and displays them in a custom interface. Useful for organisations that want to build their own delivery monitoring view on top of ZenTransfer data.

Backup and archiving scripts — a scheduled script calls the API with a since parameter, downloads new files, and writes them to a local NAS, a cold cloud storage tier, or a custom archive system.

Analytics and reporting — file records include timestamps and metadata. An analytics tool can query the API to measure delivery volume, latency distributions, or file type breakdowns over time.

SDK and client libraries

ZenTransfer does not currently provide an official SDK. The API is a standard REST/JSON interface accessible from any HTTP client — curl, Python's requests library, Node's fetch, or any other HTTP client in any language.

From $3.75 per month

Camera-to-cloud delivery for photojournalists. No laptop required.