Download OpenAPI specification:
MamutTV API. Errors are returned as application/problem+json.
The Turnstile token goes either in the X-Turnstile-Token header or in the cf-turnstile-response body field
| X-Turnstile-Token | string |
| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| cf-turnstile-response | string |
| email required | string <email> |
| password required | string |
{- "cf-turnstile-response": "string",
- "email": "user@example.com",
- "password": "string"
}{- "accessToken": "9018c41a-c414-471c-8b50-f5169f6e6f64",
- "refreshToken": "9018c41a-c414-471c-8b50-f5169f6e6f64"
}The Turnstile token goes either in the X-Turnstile-Token header or in the cf-turnstile-response body field
| X-Turnstile-Token | string |
| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| cf-turnstile-response | string |
| email required | string <email> |
| name required | string |
| password required | string [ 12 .. 72 ] characters |
{- "cf-turnstile-response": "string",
- "email": "user@example.com",
- "name": "string",
- "password": "stringstring"
}{- "message": "Conta criada com sucesso. Enviamos um link de verificacao para o seu e-mail."
}{- "address": {
- "address1": "Rua Moura",
- "address2": "Ap. 601",
- "city": "São José",
- "number": "270",
- "state": "SC",
- "zipCode": "88117250"
}, - "createdAt": "2024-01-03T18:17:52.838Z",
- "document": {
- "type": "CPF",
- "value": "40652029060"
}, - "email": "john@doe.com",
- "entitlement": "active",
- "freeTrial": {
- "endsAt": "2024-01-10T18:17:52.838Z",
- "status": "active"
}, - "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "mainProfileId": "98ae0467-8b93-46a4-9ab0-aafff34c7be6",
- "name": "John",
- "phone": "+5548991148203",
- "profiles": [
- {
- "avatar": "string",
- "createdAt": "2024-01-03T18:17:52.838Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "isKids": false,
- "name": "John Doe",
- "parentalControl": false,
- "updatedAt": "2024-01-03T18:17:52.838Z",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
], - "status": "ACTIVE",
- "updatedAt": "2024-01-03T18:17:52.838Z"
}| accessToken required | string non-empty |
| refreshToken required | string non-empty |
{- "accessToken": "string",
- "refreshToken": "string"
}{- "accessToken": "9018c41a-c414-471c-8b50-f5169f6e6f64",
- "refreshToken": "9018c41a-c414-471c-8b50-f5169f6e6f64"
}Polled by the device with the device_code it received when the pairing started. While the user has not approved yet, answers 400 with error=authorization_pending: keep polling, respecting the interval from the pairing response. Once the code dies, answers 400 with error=expired_token: stop polling and start a new pairing. Error codes follow RFC 8628 section 3.5. The user_code shown on screen is not accepted here: it is meant to be read out loud.
| deviceCode required | string [ 1 .. 64 ] characters |
{- "deviceCode": "0192f0c3-6f9e-7a1b-9c2d-3e4f5a6b7c8d"
}{- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "status": "approved",
- "userCode": "12345678"
}| subscriptionId | string <uuid> |
| userCode required | string non-empty |
{- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
- "userCode": "string"
}{- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "deviceCode": "9018c41a-c414-471c-8b50-f5169f6e6f64",
- "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "status": "approved",
- "userCode": "12345678"
}| email required | string <email> |
| password required | string |
{- "email": "user@example.com",
- "password": "string"
}{- "accessToken": "9018c41a-c414-471c-8b50-f5169f6e6f64",
- "refreshToken": "9018c41a-c414-471c-8b50-f5169f6e6f64",
- "requiresSubscriptionSelection": false
}| credential required | string non-empty |
{- "credential": "string"
}{- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "requiresSubscriptionSelection": false
}| uniqueCode required | string non-empty |
{- "uniqueCode": "string"
}{- "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
- "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
}| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| token required | string non-empty |
{- "token": "string"
}{- "message": "E-mail alterado com sucesso."
}| email required | string <email> |
{- "email": "user@example.com"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| token required | string non-empty |
{- "token": "string"
}{- "message": "Solicitacao cancelada. Sua conta segue com o e-mail atual."
}| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| newEmail required | string <email> |
| password required | string |
{- "newEmail": "new@doe.com",
- "password": "string"
}{- "message": "Enviamos um link de confirmacao para o novo e-mail."
}| password required | string <= 72 characters |
{- "password": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}Partial update: only non-empty fields are applied, and the address is only applied when zipCode is present.
object (CommandAddressStruct) | |
object (CommandDocumentStruct) | |
| mainProfileId | string <uuid> |
| name | string |
| phone | string |
{- "address": {
- "address1": "Rua Moura",
- "address2": "Ap. 601",
- "city": "São José",
- "number": "270",
- "state": "SC",
- "zipCode": "88117250"
}, - "document": {
- "type": "CPF",
- "value": "40652029060"
}, - "mainProfileId": "98ae0467-8b93-46a4-9ab0-aafff34c7be6",
- "name": "John",
- "phone": "+5548991148203"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| actualPassword required | string |
| confirmNewPassword required | string [ 12 .. 72 ] characters |
| newPassword required | string [ 12 .. 72 ] characters |
{- "actualPassword": "string",
- "confirmNewPassword": "stringstring",
- "newPassword": "stringstring"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}Always answers 202, whether or not the email is registered.
| email required | string <email> |
{- "email": "user@example.com"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| code required | string non-empty |
| newPassword required | string [ 12 .. 72 ] characters |
{- "code": "string",
- "newPassword": "stringstring"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| file required | string |
| isKids | boolean |
| layout | string |
| name required | string |
{- "file": "images/avatar-1.png",
- "isKids": false,
- "layout": "elegant",
- "name": "Test"
}{- "avatar": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "deletedAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "isKids": true,
- "layout": "string",
- "name": "string",
- "parentalControl": true,
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "avatar": "string",
- "createdAt": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "isKids": false,
- "layout": "string",
- "name": "string",
- "parentalControl": {
- "active": true
}, - "updatedAt": "string",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| file | string |
| isKids | boolean |
| layout | string |
| name | string |
object (EditProfileParentalControlPatch) |
{- "file": "images/avatar-1.png",
- "isKids": false,
- "layout": "elegant",
- "name": "Test",
- "parentalControl": {
- "active": true,
- "actualPassword": "1234",
- "change": true,
- "confirmPassword": "new.password",
- "password": "new.password"
}
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}Mails a single-use link to the account address. The PIN itself is never sent.
| id required | string <uuid> |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}Consumes the single-use token from the reset e-mail and stores the new PIN. The current PIN is not required.
| id required | string <uuid> |
| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| confirmPin required | string [ 1 .. 32 ] characters |
| pin required | string [ 1 .. 32 ] characters |
| token required | string non-empty |
{- "confirmPin": "1234",
- "pin": "1234",
- "token": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}Answers whether the PIN matches. The PIN itself is never returned by any endpoint.
| id required | string <uuid> |
| pin required | string [ 1 .. 32 ] characters |
{- "pin": "1234"
}{- "valid": true
}{- "sessions": [
- {
- "city": "string",
- "country": "string",
- "deviceInfo": "string",
- "deviceName": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ip": "string",
- "isMobile": true,
- "lastAccess": "2019-08-24T14:15:22Z",
- "lastActivity": "string",
- "loc": "string",
- "org": "string",
- "region": "string",
- "timezone": "string"
}
]
}| sessionId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| Authorization | string |
| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| city | string |
| country | string |
| deviceInfo | string |
| deviceModel | string |
| deviceUuid | string |
| ip | string |
| isMobile | boolean |
| loc | string |
| macAddress | string |
| org | string |
| region | string |
| timezone | string |
{- "city": "string",
- "country": "string",
- "deviceInfo": "string",
- "deviceModel": "string",
- "deviceUuid": "string",
- "ip": "string",
- "isMobile": true,
- "loc": "string",
- "macAddress": "string",
- "org": "string",
- "region": "string",
- "timezone": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| subscriptionId | string <uuid> |
{- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f"
}{- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f"
}{- "licenses": [
- {
- "bound": true,
- "city": "string",
- "country": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "deviceId": "string",
- "deviceInfo": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ip": "string",
- "isMobile": true,
- "lastAccess": "2019-08-24T14:15:22Z",
- "loc": "string",
- "org": "string",
- "region": "string",
- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
- "timezone": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}{- "licenses": [
- {
- "bound": true,
- "city": "string",
- "country": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "deviceId": "string",
- "deviceInfo": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "ip": "string",
- "isMobile": true,
- "lastAccess": "2019-08-24T14:15:22Z",
- "loc": "string",
- "org": "string",
- "region": "string",
- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
- "timezone": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| licenseId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| invitedEmail required | string <email> |
{- "invitedEmail": "user@example.com"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| token required | string |
{- "token": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| licenseId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}{- "slots": [
- {
- "deviceName": "string",
- "licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
- "memberName": "string",
- "occupant": "string",
- "pendingInvite": {
- "expiresAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "invitedEmail": "string",
- "resendCount": 0
}
}
], - "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f",
- "totalSlots": 0
}| licenseId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| name required | string [ 1 .. 50 ] characters |
{- "name": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}The subscription stays active until the end of the current billing period.
| subscriptionId required | string <uuid> |
{- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| screens_quantity required | integer <int64> >= 1 |
| stripe_plan_id required | string non-empty |
{- "screens_quantity": 1,
- "stripe_plan_id": "string"
}{- "checkoutSession": {
- "id": "string",
- "status": "string",
- "url": "string"
}
}| payment_method_id required | string non-empty |
{- "payment_method_id": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| payment_method_id required | string non-empty |
{- "payment_method_id": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| id required | string non-empty |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| category required | string Enum: "individual" "family" "individual_plus" |
{- "plan_options": [
- {
- "description": "string",
- "name": "string",
- "price": 0,
- "stripe_id": "string",
- "stripe_price_id": "string",
- "years": "string"
}
]
}| stripe_id required | string non-empty |
| screens_quantity required | integer <int64> >= 1 |
{- "plan": {
- "description": "string",
- "discount_percentage_applied": 0,
- "name": "string",
- "price": 0,
- "price_without_discount": 0,
- "screens_quantity": 0,
- "stripe_id": "string",
- "stripe_price_id": "string",
- "total_with_discount": 0,
- "years": "string"
}
}[- {
- "cancelAtPeriodEnd": true,
- "canceledAt": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "paymentStatus": "string",
- "planDetails": {
- "description": "string",
- "name": "string",
- "price": 0,
- "stripe_id": "string",
- "stripe_price_id": "string",
- "years": "string"
}, - "planExpiresAt": "2019-08-24T14:15:22Z",
- "screensQuantity": 0,
- "status": "string",
- "stripeCheckoutSessionId": "string",
- "stripeCustomerId": "string",
- "stripePlanId": "string",
- "stripeSubscriptionId": "string",
- "totalPaid": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
]The plan change is prorated and invoiced immediately.
| planId required | string non-empty |
| subscriptionId required | string <uuid> |
{- "planId": "string",
- "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}[- {
- "backupPlaylistId": "7991fa44-7417-4104-81b6-35cef8b9fc02",
- "createdAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "pin": "string",
- "protected": true,
- "providerBlocked": true,
- "providerID": "string",
- "providerLabel": "string",
- "providerStatus": "string",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "url": "string",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}
]| CF-Connecting-IP | string |
| X-Forwarded-For | string |
| name | string |
| pin | string |
| protected | boolean |
| providerID | string |
| url required | string <uri> non-empty |
{- "name": "Test",
- "pin": "string",
- "protected": true,
- "providerID": "string",
}{- "createdAt": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "pin": "string",
- "protected": true,
- "providerID": "string",
- "status": "string",
- "updatedAt": "2019-08-24T14:15:22Z",
- "url": "string",
- "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b"
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| name required | string |
| pin | string |
| protected | boolean |
| providerID | string |
| url required | string |
{- "name": "string",
- "pin": "string",
- "protected": true,
- "providerID": "string",
- "url": "string"
}{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| description | string |
| name | string |
| profileId | string <uuid> |
| type | string Enum: "default" "favorites" "import" |
{- "description": "string",
- "name": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "type": "default"
}{- "createdAt": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "type": "string"
}| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "favoritesLists": [
- {
- "created_at": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "profile_id": "bfcb6779-b1f9-41fc-92d7-88f8bc1d12e8",
- "type": "string",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}| favoritesListId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| contentId required | string |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "favoriteChannels": [
- {
- "contentId": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "title": "string"
}
]
}| contentId | string |
| profileId required | string <uuid> |
| title required | string |
{- "contentId": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "title": "string"
}{- "contentId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "title": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}| favoritesListId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| tmdbId | string |
| contentId | string |
| kind | string <= 50 characters |
| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| contentId | string |
| favoritesListId | string <uuid> |
| kind | string |
| profileId required | string <uuid> |
| title required | string |
| tmdbId | string |
{- "contentId": "string",
- "favoritesListId": "b04c9441-7dc4-4f87-90e3-43be465e4a99",
- "kind": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "title": "string",
- "tmdbId": "string"
}{- "contentId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "favoritesListId": "b04c9441-7dc4-4f87-90e3-43be465e4a99",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "string",
- "title": "string",
- "tmdbId": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}| favoritesListId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "favoriteMovies": [
- {
- "contentId": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "favoritesListId": "b04c9441-7dc4-4f87-90e3-43be465e4a99",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "string",
- "title": "string",
- "tmdbId": "string",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
[- {
- "contentId": "external-123",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "tv_series",
- "rating": 5,
- "title": "Breaking Bad",
- "tmdbId": "1396"
}
]| contentId required | string |
| kind | string |
| profileId required | string <uuid> |
| rating required | integer <int64> [ 1 .. 10 ] |
| title required | string |
| tmdbId required | string |
{- "contentId": "string",
- "kind": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "rating": 1,
- "title": "string",
- "tmdbId": "string"
}{- "contentId": "external-123",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "tv_series",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "rating": 5,
- "title": "Breaking Bad",
- "tmdbId": "1396"
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| profileId required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| contentId required | string |
| kind | string |
| profileId required | string <uuid> |
| rating required | integer <int64> [ 1 .. 10 ] |
| title required | string |
| tmdbId required | string |
{- "contentId": "string",
- "kind": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "rating": 1,
- "title": "string",
- "tmdbId": "string"
}{- "contentId": "external-123",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "tv_series",
- "rating": 5,
- "title": "Breaking Bad",
- "tmdbId": "1396"
}| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| page | integer <int64> >= 1 Default: 1 |
| pageSize | integer <int64> [ 1 .. 100 ] Default: 30 |
{- "histories": [
- {
- "accessed_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "string",
- "media_id": "string",
- "profile_id": "bfcb6779-b1f9-41fc-92d7-88f8bc1d12e8",
- "tmdb_id": 0
}
]
}Returns 201 on the first access to the media item and 200 when an existing entry is refreshed.
| kind required | string [ 1 .. 50 ] characters |
| media_id required | string non-empty |
| profile_id required | string <uuid> |
| tmdb_id required | integer <int64> >= 1 |
{- "kind": "string",
- "media_id": "string",
- "profile_id": "bfcb6779-b1f9-41fc-92d7-88f8bc1d12e8",
- "tmdb_id": 1
}{- "accessed_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "kind": "string",
- "media_id": "string",
- "profile_id": "bfcb6779-b1f9-41fc-92d7-88f8bc1d12e8",
- "tmdb_id": 0
}Returns 201 with a Location header when the entry is created and 200 when an existing entry is updated.
| elapsedTimeMs required | integer <int64> >= 1 |
| episode | integer <int64> >= 0 |
| fullyElapsed | boolean |
| mediaId required | string [ 1 .. 255 ] characters |
| profileId required | string <uuid> |
| season | integer <int64> >= 0 |
| sourceId | string <= 255 characters |
| totalTimeMs required | integer <int64> >= 1 |
{- "elapsedTimeMs": 1,
- "episode": 0,
- "fullyElapsed": true,
- "mediaId": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "season": 0,
- "sourceId": "string",
- "totalTimeMs": 1
}{- "contentTitle": "string",
- "elapsedTimeMs": 0,
- "episode": 0,
- "fullyElapsed": true,
- "haveNextEpisode": true,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "identityKey": "string",
- "kind": "string",
- "mediaId": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "season": 0,
- "sourceId": "string",
- "tmdbId": 0,
- "totalTimeMs": 0
}Deletes every episode entry of the title. identity_key is opaque to the client: the list endpoint returns it, this one takes it back.
| profile_id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| identity_key required | string non-empty |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}Without query params, returns the most recent entry per title. With media_id, returns every episode of that media. With watched=true, only fully watched entries.
| profile_id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| page | integer <int64> >= 1 Default: 1 |
| pageSize | integer <int64> [ 1 .. 100 ] Default: 10 |
| media_id | string |
| watched | boolean |
{- "items": [
- {
- "backdropPath": "string",
- "elapsedTimeMs": 0,
- "episode": 0,
- "fullyElapsed": true,
- "haveNextEpisode": true,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "identityKey": "string",
- "kind": "string",
- "logoPath": "string",
- "mediaId": "string",
- "posterPath": "string",
- "releaseDate": "string",
- "season": 0,
- "sourceId": "string",
- "title": "string",
- "tmdbId": 0,
- "totalTimeMs": 0,
- "updatedAt": "2019-08-24T14:15:22Z",
- "voteAverage": 0.1
}
], - "page": 0,
- "pageSize": 0,
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a"
}| profile_id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "detail": "Property foo is required but is missing.",
- "errors": [
- {
- "location": "string",
- "message": "string",
- "value": null
}
], - "status": 400,
- "title": "Bad Request",
}| profile_id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
| id required | string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]... |
{- "contentTitle": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "elapsedTimeMs": 0,
- "episode": 0,
- "fullyElapsed": true,
- "haveNextEpisode": true,
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "identityKey": "string",
- "kind": "string",
- "mediaId": "string",
- "profileId": "faebe71b-2bf8-4bdb-9b67-258e4d6aa00a",
- "season": 0,
- "sourceId": "string",
- "tmdbId": 0,
- "totalTimeMs": 0,
- "updatedAt": "2019-08-24T14:15:22Z"
}