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:
| Status | Description | API Access |
|---|---|---|
active | Normal operation | Full access |
suspended | Blocked due to billing issue or admin action | All API requests return 403 |
deleted | Soft-deleted, no access allowed | All 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.