Freedam

Developers · REST API & SDK

A REST API your team will actually want to use

Versioned at the URL. JSON in, JSON out. Token auth with granular scopes. A typed TypeScript SDK on npm with full coverage of every endpoint.

Eight resources, one consistent shape

Everything in the product is reachable through the API, with the same JSON envelope, the same pagination, the same error format.

Assets

Search, read, update, and delete individual assets. Hybrid full-text plus semantic search out of the box.

Collections

Create, organize, and curate sets. Add and remove assets in bulk.

Uploads

Batch ingestion with virus scanning, format checks, and AI enrichment running on the platform side.

Shares

Generate signed share links with expirations, watermarking, resolution caps, and access controls.

Metadata

Read field schemas, vocabularies, and term lists for your tenant. Drive your own UI off the same definitions.

Operations

Run long-lived bulk actions and poll their progress. Cancel them if you need to back out.

Webhooks

Manage webhook endpoints and view delivery history through the same API.

Tokens

Provision, list, and revoke API tokens programmatically. Each token carries the abilities you assign.

Authentication & scopes

Tokens with the smallest blast radius that still gets the job done

Every API token carries an explicit list of abilities. A token built for an upload automation cannot read your share log. A token that powers a public catalog cannot delete an asset. Least privilege is the default, not the upgrade.

Authenticate with a standard Authorization: Bearer header. Provision tokens through the API or the in-product Settings page. Rate limit: sixty requests per minute per token.

curl -X GET https://{workspace}.freedam.io/api/v1/assets \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"

Fourteen abilities to mix and match

Combine only the ones each integration actually needs.

Assets

  • assets:readList, search, and read assets
  • assets:writeCreate and update asset records
  • assets:deleteSoft- and hard-delete assets
  • assets:downloadFetch original or rendered files

Collections

  • collections:readList and read collections
  • collections:writeCreate, update, add or remove members
  • collections:deleteDelete collections

Uploads & metadata

  • uploads:manageCreate batches and add files to them
  • metadata:readRead vocabularies, terms, and field definitions
  • metadata:writeUpdate metadata field values

Sharing & analytics

  • shares:readRead share links and access logs
  • shares:manageCreate, update, revoke share links
  • analytics:readRead usage and engagement metrics
  • consents:readRead consent records for individuals
import { createClient } from '@freedam/sdk';

const client = createClient({
    baseUrl: 'https://{workspace}.freedam.io',
    token: process.env.FREEDAM_TOKEN!,
});

// List recent assets
const { data } = await client.GET('/api/v1/assets', {
    params: { query: { per_page: 24 } },
});
TypeScript SDK

A first-class TypeScript client

The first-party @freedam/sdk package gives you a typed client with autocomplete on every endpoint, every parameter, every response shape. Ships ESM and CJS, runs on Node and modern browsers, and tracks the API release-by-release.

Working in another language? The OpenAPI document is yours to use with whichever codegen tooling fits your team. The spec is the contract.

One SDK today. The spec is the contract.

Right now the only first-party SDK is the TypeScript one. The OpenAPI document gives you a complete, machine-readable contract to build against in Python, Go, Ruby, PHP, C#, Java, and beyond. If you'd like a first-party SDK in another language, tell us.

Developers · REST API

Open the live reference and try a request

The reference at /docs/api lets you call endpoints from inside the page, with your own token, against the live tenant.