It can happen that an API request returns an error. In this article, we'll show you how a response with an error looks like, and the meaning of the most common errors received so you can troubleshoot them easily.
You are reading API v2 documentationStill using the Legacy API? Access the Legacy API documentation.
All API v2 error responses return a JSON that follows the same standard format:
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Video with ID 'x1' not found.",
"correlation_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"object_id": "x1",
"reason": "object_not_found",
"object_type": "Video",
"param": "id"
},
"documentation_url": "https://developers.dailymotion.com/reference/api-errors"
}
}| Field | Description |
|---|---|
code | Stable machine-readable error code (ie. RESOURCE_NOT_FOUND, MISSING_PERMISSIONS). |
message | Human-readable error description intended for developers. |
correlation_id | Request correlation ID to share with Support Team when troubleshooting. May be null. |
details | Structured additional context. The shape of this object depends on the code value. |
documentation_url | Link to this API error reference page. |
Possible reasons:
No Authorization: Bearer header, malformed JWT, expired token, or invalid signature. Identity is not established ( unlike error 403), the caller is not treated as an authenticated subject.
HTTP status codes & error codes
| Code | Meaning | Usage |
|---|---|---|
200 OK | Success | Successful GET or PATCH |
201 Created | Resource created | Successful POST |
204 No Content | No body | Successful DELETE |
500 Internal Server Error | Unexpected error | Unhandled server error |
401 - Authentication failed
Possible reasons: No Authorization: Bearer header, malformed JWT, expired token, or invalid signature. Identity is not established ( unlike error 403), the caller is not treated as an authenticated subject.
Typical error.code values: INVALID_AUTHORIZATION, AUTHORIZATION_EXPIRED
Example:
{
"error": {
"code": "AUTHORIZATION_EXPIRED",
"message": "Authorization expired.",
"correlation_id": "550e8400-e29b-41d4-a716-446655440000",
"details": { "param": "authorization" },
"documentation_url": "https://developers.dailymotion.com/reference/api-errors"
}
}403 - Authorization failed
The bearer token was accepted, but the caller lacks the required OAuth scopes or permissions, or an upstream service denied access to the resource.
Typical error.code values: MISSING_PERMISSIONS, UPSTREAM_ACCESS_DENIED
Example:
{
"error": {
"code": "MISSING_PERMISSIONS",
"message": "Missing required permissions: playlist:write. Required: playlist:read, playlist:write.",
"correlation_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"required_permissions": ["playlist:read", "playlist:write"],
"missing_permissions": ["playlist:write"]
},
"documentation_url": "https://developers.dailymotion.com/reference/api-errors"
}
}404 - Resource not found
Possible reasons: The path ID does not exist, a parent resource in a nested URL is missing, or the object is not visible.
Typical error.code value: RESOURCE_NOT_FOUND
Example:
{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Video with ID 'x1' not found.",
"correlation_id": "550e8400-e29b-41d4-a716-446655440000",
"details": {
"object_id": "x1",
"reason": "object_not_found",
"object_type": "Video",
"param": "id"
},
"documentation_url": "https://developers.dailymotion.com/reference/api-errors"
}
}422 - Unprocessable entity
Possible reasons:
- Invalid path, query, or body parameters
- Domain validation errors
- Missing context (ie. a required parent ID or value is absent)
Typical error.code values: MISSING_PARENT_ID, MISSING_REQUIRED_VALUE
Best Practices
- Always check the
codefield: The HTTP status code tells you the category, butcodegives you the precise error for programmatic handling. - Share
correlation_idwith Support: Include it when contacting Dailymotion Support to help trace your request. - Read the
detailsobject: Provides structured context (ie. which permissions are missing, which parameter is invalid) to help you fix the request without guessing.
Video access errors
When requesting access to a video, the API may return a message in the access_error field explaining why the access can't be granted.
Before you contact Support, check the "Type" of the error first:
- Temporary: Just reload or wait a moment (
DM006DM012).- Owner setting: An intentional restriction. If you own the video, adjust it in your Dailymotion Studio (
DM007DM008DM010DM014DM016DM019DM020).- Integration: Check the request you send (
DM001).- Technical: Re-upload the video, then contact Support if it persists (
DM011DM013).- Permanent: The content has been deleted and can't be restored (
DM002DM003DM005,DM017).- Informational: Not an error, no action needed (
DM018).Always include the video ID (and the
correlation_idwhen available) when you contact Support.
| Error code | Meaning | Troubleshooting | Type |
|---|---|---|---|
DM001 | No video was specified in the request. Player shows: No video available. Sorry, this content is no longer available. |
| Integration |
DM002 | The content has been deleted by the video owner. Player shows: This content or user profile is no longer available. |
| Permanent |
DM003 | The live content has ended and is no longer available. Player shows: Live stream off air. | This is expected once a live event is over.
| Permanent |
DM005 | The content has been deleted due to a report. Player shows: This content or user profile is no longer available. |
| Permanent |
DM006 | Publishing is in progress. The player shows a reload button. Player shows: Publication in progress. Video available shortly, please try reloading. |
| Temporary |
DM007 | The video is geo-restricted by its owner. Player shows: Video not available. This video is not available in your region. | This restriction is intentional and set by the video owner.
| Owner setting |
DM008 | The content is flagged as explicit and is shown behind a sensitive-content screen. Player shows: Sensitive content. This content might not be suitable for all audiences. |
| Owner setting |
DM010 | The content is private. Player shows: Private video. The publisher has marked this video as private. | Private videos cannot be played publicly or embedded.
| Owner setting |
DM011 | An error occurred while encoding the video. Player shows: Video not available. An error occurred while encoding this video. |
| Technical |
DM012 | Encoding is in progress. The player shows a reload control. Player shows: Encoding in progress. Please try reloading. |
| Temporary |
DM013 | The video has no preset (no playable video stream). Player shows: Video not available. This video stream can't be reached right now. | This usually points to a failed or incomplete encoding.
| Technical |
DM016 | The content is not available on this website and can only be watched on Dailymotion. The Player shows a "Watch on Dailymotion" control that will open the video onsite. Player shows: Unable to play video. This video cannot be played on this site. |
| Owner setting |
DM017 | The live has expired and is no longer available. Player shows: Video no longer available. Sorry, this content is no longer available. | This is expected once a live event has expired.
| Permanent |
DM018 | The live has not started yet. The player shows a countdown. Player shows: Live in xH xM xS | This is informational, not an error. The player shows a countdown and will start automatically when the live begins. No action is required. | Informational |
DM019 | The content was uploaded by an inactive channel, so its access is limited. Player shows: Content is not available. The video you requested is owned by an inactive user. Its access has been limited. | Access is limited because the owning channel is inactive.
| Owner setting |
DM020 | The content is blocked on Dailymotion platforms (dailymotion.com and mobile apps). Player shows: Private video. The publisher has marked this video as private. | This is set by the video owner.
| Owner setting |
