Search Documentation
Search across all documentation pages
Organizations

Organizations

An Organization is the top-level entity in Transcodely. It represents a company, team, or individual account and serves as the billing boundary for all usage.

Overview

Organizations own one or more Apps, which in turn contain all your API keys, origins, presets, and jobs. Every charge on your invoice rolls up to the organization level.

curl -X POST https://api.transcodely.com/transcodely.v1.OrganizationService/Create 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "Content-Type: application/json" 
  -d '{
    "slug": "acme-corp",
    "display_name": "Acme Corporation",
    "billing_email": "billing@acme.com",
    "currency": "EUR"
  }'
{
  "organization": {
    "id": "org_a1b2c3d4e5",
    "slug": "acme-corp",
    "display_name": "Acme Corporation",
    "billing_email": "billing@acme.com",
    "currency": "EUR",
    "status": "active",
    "created_at": "2026-01-15T10:30:00Z",
    "updated_at": "2026-01-15T10:30:00Z"
  }
}

Slugs

Every organization has a unique, URL-safe slug used for identification alongside the org_ prefixed ID. Slugs are:

  • Immutable — cannot be changed after creation
  • Lowercase — automatically normalized
  • 3-50 characters — must start with a letter
  • URL-safe — only lowercase letters, numbers, and hyphens (no consecutive hyphens)

Check slug availability before creating an organization:

curl -X POST https://api.transcodely.com/transcodely.v1.OrganizationService/CheckSlug 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "Content-Type: application/json" 
  -d '{ "slug": "acme-corp" }'
{
  "available": true,
  "normalized_slug": "acme-corp",
  "message": "Slug is available"
}

If a slug is taken or reserved, the response tells you why:

{
  "available": false,
  "normalized_slug": "acme-corp",
  "reason": "taken",
  "message": "This slug is already in use"
}

Organization Status

Organizations have a lifecycle represented by their status:

StatusDescriptionAPI Access
activeNormal operationFull access
suspendedBlocked due to billing issue or admin actionAll API requests return 403
deletedSoft-deleted, no access allowedAll API requests return 403

Status transitions are managed by the platform. You cannot directly change an organization’s status through the API.

Currency

Each organization has a billing currency set at creation (default: EUR). This currency is used for all cost calculations, estimates, and invoices. The currency is specified as an ISO 4217 code (e.g., EUR, USD, GBP).

Updating an Organization

You can update the display name and billing email at any time. The slug and currency cannot be changed after creation.

curl -X POST https://api.transcodely.com/transcodely.v1.OrganizationService/Update 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "X-Organization-ID: org_a1b2c3d4e5" 
  -H "Content-Type: application/json" 
  -d '{
    "id": "org_a1b2c3d4e5",
    "display_name": "Acme Corp International",
    "billing_email": "finance@acme.com"
  }'

Listing Organizations

List all organizations your authenticated user has access to:

curl -X POST https://api.transcodely.com/transcodely.v1.OrganizationService/List 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "Content-Type: application/json" 
  -d '{
    "pagination": { "limit": 20 }
  }'

Pass "include_inactive": true to include suspended and deleted organizations in the response.

Looking Up an Organization

The Get endpoint accepts either an organization ID or slug:

# By ID
curl -X POST https://api.transcodely.com/transcodely.v1.OrganizationService/Get 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "Content-Type: application/json" 
  -d '{ "id_or_slug": "org_a1b2c3d4e5" }'

# By slug
curl -X POST https://api.transcodely.com/transcodely.v1.OrganizationService/Get 
  -H "Authorization: Bearer {{API_KEY}}" 
  -H "Content-Type: application/json" 
  -d '{ "id_or_slug": "acme-corp" }'

If the value starts with org_, it is treated as an ID. Otherwise it is treated as a slug.