The App object
Apps are projects within an organization. Each app has its own API keys, jobs, origins, presets, and webhook endpoints. Use apps to separate environments (production, staging) or different products.
Base path: transcodely.v1.AppService Requires: X-Organization-ID header on all endpoints.
Attributes
| Attribute | Type | Description |
|---|---|---|
id | string | Unique identifier. Prefixed with app_. |
org_id | string | Parent organization ID. |
name | string | Display name. |
description | string | Description. Omitted if not set. |
webhook | object | null | Deprecated. Legacy app-level webhook config. Manage webhooks with the WebhookService instead. |
status | enum | One of: active, archived. |
created_at | string | ISO 8601 timestamp. |
updated_at | string | ISO 8601 timestamp. |
archived_at | string | ISO 8601 timestamp. Omitted if not archived. |
{
"id": "app_k1l2m3n4o5",
"org_id": "org_f6g7h8i9j0",
"name": "Production",
"description": "Production video processing",
"status": "active",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}Deprecated: app-level webhooks. The
webhookfield (and thegenerate_secret/regenerate_secretflags on Create/Update) is retained only for backwards compatibility. New integrations should register signed endpoints with the WebhookService, which supports multiple endpoints per app, HMAC-SHA-256 signing with rotation, per-event subscriptions, delivery history, and health metrics. See the Webhook Integration guide.
Create an app
Create a new app within an organization.
POST /transcodely.v1.AppService/CreateParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
org_id | string | Yes | Parent organization ID (e.g., "org_f6g7h8i9j0"). |
name | string | Yes | Display name (1-60 chars). Must be unique within the organization (case-insensitive). |
description | string | No | Optional description (max 500 chars). |
Returns
Returns an App object.
curl -X POST https://api.transcodely.com/transcodely.v1.AppService/Create
-H "Authorization: Bearer {{API_KEY}}"
-H "X-Organization-ID: {{ORG_ID}}"
-H "Content-Type: application/json"
-d '{
"org_id": "org_f6g7h8i9j0",
"name": "Production",
"description": "Production video processing"
}'const app = await client.apps.create({
orgId: "org_f6g7h8i9j0",
name: "Production",
description: "Production video processing",
});app = client.apps.create(
org_id="org_f6g7h8i9j0",
name="Production",
description="Production video processing",
)app, err := client.Apps.Create(ctx, &transcodely.AppCreateParams{
OrgId: "org_f6g7h8i9j0",
Name: "Production",
Description: proto.String("Production video processing"),
}){
"app": {
"id": "app_k1l2m3n4o5",
"org_id": "org_f6g7h8i9j0",
"name": "Production",
"description": "Production video processing",
"status": "active",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}
}Retrieve an app
Retrieve an app by its ID.
POST /transcodely.v1.AppService/GetParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | App ID (e.g., "app_k1l2m3n4o5"). |
Returns
Returns an App object.
curl -X POST https://api.transcodely.com/transcodely.v1.AppService/Get
-H "Authorization: Bearer {{API_KEY}}"
-H "X-Organization-ID: {{ORG_ID}}"
-H "Content-Type: application/json"
-d '{"id": "app_k1l2m3n4o5"}'const app = await client.apps.get("app_k1l2m3n4o5");app = client.apps.get("app_k1l2m3n4o5")app, err := client.Apps.Get(ctx, "app_k1l2m3n4o5"){
"app": {
"id": "app_k1l2m3n4o5",
"org_id": "org_f6g7h8i9j0",
"name": "Production",
"description": "Production video processing",
"status": "active",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}
}Update an app
Update an app’s name and description.
POST /transcodely.v1.AppService/UpdateParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | App ID. |
name | string | No | New display name (1-60 chars). |
description | string | No | New description (max 500 chars). |
Returns
Returns the updated App object.
curl -X POST https://api.transcodely.com/transcodely.v1.AppService/Update
-H "Authorization: Bearer {{API_KEY}}"
-H "X-Organization-ID: {{ORG_ID}}"
-H "Content-Type: application/json"
-d '{
"id": "app_k1l2m3n4o5",
"name": "Production (v2)"
}'const app = await client.apps.update({
id: "app_k1l2m3n4o5",
name: "Production (v2)",
});app = client.apps.update(
id="app_k1l2m3n4o5",
name="Production (v2)",
)app, err := client.Apps.Update(ctx, &transcodely.AppUpdateParams{
Id: "app_k1l2m3n4o5",
Name: proto.String("Production (v2)"),
}){
"app": {
"id": "app_k1l2m3n4o5",
"org_id": "org_f6g7h8i9j0",
"name": "Production (v2)",
"description": "Production video processing",
"status": "active",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-02-28T15:00:00Z"
}
}List apps
List apps within an organization.
POST /transcodely.v1.AppService/ListParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
org_id | string | Yes | Organization ID. |
pagination | object | No | Pagination parameters. See API Reference overview. |
include_archived | boolean | No | If true, include archived apps. Default: false. |
Returns
Returns a list of App objects and pagination metadata.
curl -X POST https://api.transcodely.com/transcodely.v1.AppService/List
-H "Authorization: Bearer {{API_KEY}}"
-H "X-Organization-ID: {{ORG_ID}}"
-H "Content-Type: application/json"
-d '{
"org_id": "org_f6g7h8i9j0",
"pagination": {"limit": 20}
}'for await (const app of client.apps.list({
orgId: "org_f6g7h8i9j0",
pagination: { limit: 20 },
}).autoPage()) {
console.log(app.id, app.name);
}for app in client.apps.list(limit=20).auto_paging_iter():
print(app.id, app.name)iter := client.Apps.List(ctx, &transcodely.AppListParams{
OrgId: "org_f6g7h8i9j0",
Pagination: &transcodely.PaginationRequest{Limit: 20},
})
for iter.Next() {
app := iter.Current()
fmt.Println(app.GetId(), app.GetName())
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}{
"apps": [
{
"id": "app_k1l2m3n4o5",
"org_id": "org_f6g7h8i9j0",
"name": "Production",
"description": "Production video processing",
"status": "active",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z"
}
],
"pagination": {
"next_cursor": "",
"total_count": 1
}
}Archive an app
Soft-delete an app. Archived apps cannot create new resources, but existing jobs continue processing.
POST /transcodely.v1.AppService/ArchiveParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | App ID. |
Returns
Returns the App object with status: "archived".
curl -X POST https://api.transcodely.com/transcodely.v1.AppService/Archive
-H "Authorization: Bearer {{API_KEY}}"
-H "X-Organization-ID: {{ORG_ID}}"
-H "Content-Type: application/json"
-d '{"id": "app_k1l2m3n4o5"}'const app = await client.apps.archive("app_k1l2m3n4o5");app = client.apps.archive("app_k1l2m3n4o5")err := client.Apps.Archive(ctx, "app_k1l2m3n4o5"){
"app": {
"id": "app_k1l2m3n4o5",
"org_id": "org_f6g7h8i9j0",
"name": "Production",
"status": "archived",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-02-28T15:00:00Z",
"archived_at": "2025-02-28T15:00:00Z"
}
}