Sources
Get a single source
Retrieve details of a specific source by its ID, including metadata, media properties, and associated jobs.
GET
/api/sources/{sourceId}
Authorization
Authorization
header
string
required
Enter the project access token with the Bearer prefix, e.g. "Bearer project_access_token"
Path Parameters
Responses
application/jsonData contains the response object
audio_bitrate
integer
required
Audio bitrate in bits per second
audio_codec
string
required
created_at
string
date-time
required
Timestamp when the source was created
Examples:
2025-01-01T12:00:00Z
Device used to record the video
Duration of the video in seconds
Height of the video in pixels
Unique identifier of the source
Examples:
src_2G6MJiNz71bHQGNzGwKx5cJwPFS
Additional metadata for the source
Examples:
map[key1:value1 key2:value2]
Size of the source file in bytes
video_bitrate
integer
required
Video bitrate in bits per second
video_codec
string
required
video_framerate
number
required
Video framerate in frames per second
Width of the video in pixels
Exact object key in the configured bucket, 1 to 1024 UTF-8 bytes. The output base_prefix is not added.
Connected Storage belonging to this Project.
URL where the source video can be accessed
Examples:
https://example.com/video.mp4
status
"success"
string
required
Status indicates the response status "success"
OK
application/jsonError response details
Code is the HTTP status code
Message is a human-readable error description
Examples:
Authentication error: invalid token or subscription inactive
type
"AuthenticationError"
string
required
Type indicates the error category
Available options:
AuthenticationError
status
"error"
string
required
Status indicates the response status "error"
Authentication error: invalid token or subscription inactive
application/jsonError response details
Code is the HTTP status code
Message is a human-readable error description
Examples:
Ressource not found
type
"NotFoundError"
string
required
Type indicates the error category
Available options:
NotFoundError
status
"error"
string
required
Status indicates the response status "error"
Resource not found
application/jsonError response details
Code is the HTTP status code
Message is a human-readable error description
Examples:
Rate limit exceeded
type
"TooManyRequestsError"
string
required
Type indicates the error category
Available options:
TooManyRequestsError
status
"error"
string
required
Status indicates the response status "error"
Rate limit exceeded
# Get a single source
> Retrieve details of a specific source by its ID, including metadata, media properties, and associated jobs.
```json
{
"path": "/api/sources/{sourceId}",
"method": "get",
"schema": {
"description": "Retrieve details of a specific source by its ID, including metadata, media properties, and associated jobs.",
"operationId": "getSource",
"parameters": [
{
"description": "Source ID",
"in": "path",
"name": "sourceId",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SourceResponse"
}
}
},
"description": "OK"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorAuthentication"
}
}
},
"description": "Authentication error: invalid token or subscription inactive"
},
"404": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorNotFound"
}
}
},
"description": "Resource not found"
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResponseErrorTooManyRequests"
}
}
},
"description": "Rate limit exceeded"
}
},
"security": [
{
"ProjectAccessToken": []
}
],
"summary": "Get a single source",
"tags": [
"Sources"
],
"x-codeSamples": [
{
"lang": "JavaScript",
"source": "import Chunkify from '@chunkify/chunkify';\n\nconst client = new Chunkify({\n projectAccessToken: 'My Project Access Token',\n});\n\nconst source = await client.sources.retrieve('sourceId');\n\nconsole.log(source);"
},
{
"lang": "Python",
"source": "from chunkify import Chunkify\n\nclient = Chunkify(\n project_access_token=\"My Project Access Token\",\n)\nsource = client.sources.retrieve(\n \"sourceId\",\n)\nprint(source)"
},
{
"lang": "php",
"source": "\u003c?php\n\nuse Chunkify\\Client;\n\n$client = new Client(\n projectAccessToken: 'My Project Access Token',\n);\n\n$source = $client-\u003esources-\u003eretrieve('sourceId');\n\nvar_dump($source);"
},
{
"lang": "Go",
"source": "package main\n\nimport (\n \"context\"\n \"fmt\"\n\n \"github.com/chunkifydev/chunkify-go\"\n \"github.com/chunkifydev/chunkify-go/option\"\n)\n\nfunc main() {\n client := chunkify.NewClient(\n option.WithProjectAccessToken(\"My Project Access Token\"),\n )\n source, err := client.Sources.Get(context.TODO(), \"sourceId\")\n if err != nil {\n panic(err.Error())\n }\n fmt.Printf(\"%+v\\n\", source)\n}\n"
}
]
}
}
```
```json #/components/schemas/SourceResponse
{
"properties": {
"data": {
"$ref": "#/components/schemas/Source",
"description": "Data contains the response object"
},
"status": {
"const": "success",
"description": "Status indicates the response status \"success\"",
"type": "string"
}
},
"required": [
"status",
"data"
],
"type": "object"
}
```
```json #/components/schemas/Source
{
"properties": {
"audio_bitrate": {
"description": "Audio bitrate in bits per second",
"examples": [
128000
],
"type": "integer"
},
"audio_codec": {
"description": "Audio codec used",
"examples": [
"aac"
],
"type": "string"
},
"created_at": {
"description": "Timestamp when the source was created",
"examples": [
"2025-01-01T12:00:00Z"
],
"format": "date-time",
"type": "string"
},
"device": {
"description": "Device used to record the video",
"examples": [
"iPhone"
],
"type": "string"
},
"duration": {
"description": "Duration of the video in seconds",
"examples": [
120
],
"type": "integer"
},
"height": {
"description": "Height of the video in pixels",
"examples": [
1080
],
"type": "integer"
},
"id": {
"description": "Unique identifier of the source",
"examples": [
"src_2G6MJiNz71bHQGNzGwKx5cJwPFS"
],
"type": "string"
},
"metadata": {
"additionalProperties": {
"type": "string"
},
"description": "Additional metadata for the source",
"examples": [
{
"key1": "value1",
"key2": "value2"
}
],
"type": "object"
},
"path": {
"description": "Exact object key in the configured bucket, 1 to 1024 UTF-8 bytes. The output base_prefix is not added.",
"maxLength": 1024,
"minLength": 1,
"type": "string"
},
"size": {
"description": "Size of the source file in bytes",
"examples": [
1234567
],
"type": "integer"
},
"storage_id": {
"description": "Connected Storage belonging to this Project.",
"minLength": 1,
"type": "string"
},
"url": {
"description": "URL where the source video can be accessed",
"examples": [
"https://example.com/video.mp4"
],
"type": "string"
},
"video_bitrate": {
"description": "Video bitrate in bits per second",
"examples": [
20000000
],
"type": "integer"
},
"video_codec": {
"description": "Video codec used",
"examples": [
"h264"
],
"type": "string"
},
"video_framerate": {
"description": "Video framerate in frames per second",
"examples": [
29.97
],
"type": "number"
},
"width": {
"description": "Width of the video in pixels",
"examples": [
1920
],
"type": "integer"
}
},
"required": [
"audio_bitrate",
"audio_codec",
"created_at",
"device",
"duration",
"height",
"id",
"metadata",
"size",
"video_bitrate",
"video_codec",
"video_framerate",
"width"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorAuthentication
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 401,
"description": "Code is the HTTP status code",
"examples": [
401
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Authentication error: invalid token or subscription inactive"
],
"type": "string"
},
"type": {
"const": "AuthenticationError",
"description": "Type indicates the error category",
"enum": [
"AuthenticationError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorNotFound
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 404,
"description": "Code is the HTTP status code",
"examples": [
404
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Ressource not found"
],
"type": "string"
},
"type": {
"const": "NotFoundError",
"description": "Type indicates the error category",
"enum": [
"NotFoundError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```
```json #/components/schemas/ResponseErrorTooManyRequests
{
"description": "Error response",
"properties": {
"error": {
"description": "Error response details",
"properties": {
"code": {
"const": 429,
"description": "Code is the HTTP status code",
"examples": [
429
],
"type": "integer"
},
"message": {
"description": "Message is a human-readable error description",
"examples": [
"Rate limit exceeded"
],
"type": "string"
},
"type": {
"const": "TooManyRequestsError",
"description": "Type indicates the error category",
"enum": [
"TooManyRequestsError"
],
"type": "string"
}
},
"required": [
"type",
"code",
"message"
],
"type": "object"
},
"status": {
"const": "error",
"description": "Status indicates the response status \"error\"",
"type": "string"
}
},
"required": [
"status",
"error"
],
"type": "object"
}
```