Leverage the power of our OAuth 2.0 based RESTful APIs to integrate content publishing directly into your applications.
Welcome to the official MYETV API documentation. All requests must be made over HTTPS to the https://developers.myetv.tv domain.
MYETV uses standard OAuth 2.0 flows to allow apps to securely access accounts. We support two primary methods depending on your application type.
Security Notice: API endpoints are protected by application-level firewalls and rate limiters to ensure platform stability. Repeated failed authentication attempts will result in a temporary IP ban.
Use this flow when your app needs to act on behalf of a normal user. The user will be asked to choose whether to grant access to their Personal Account or one of their managed Networks.
Step 1: Request Authorization - Redirect the user to request their consent:
GET /api/oauth/authorize.php?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&response_type=code
Step 2: Exchange Code for Token - Your server exchanges the received code for an Access Token by making a POST request:
POST /api/oauth/token.php
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
&redirect_uri=YOUR_REDIRECT_URI
&code=RECEIVED_CODE
If you are building a server-to-server script or testing via cURL on your own account, you can bypass the browser authorization and generate a token directly using your App credentials.
POST /api/oauth/token.php
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
&client_id=YOUR_CLIENT_ID
&client_secret=YOUR_CLIENT_SECRET
Success Response (Both Methods):
{
"access_token": "f8a9b2c3d4e5f6g7h8i9...",
"token_type": "Bearer",
"expires_in": 5184000
}
Once you have an Access Token, you can retrieve the details of the connected entity (Account or Network). The API automatically determines the correct entity based on the token provided.
GET /api/v1/profile.php
Authorization: Bearer YOUR_ACCESS_TOKENSuccess Response (JSON):
{
"id": "a1b2c3d4",
"type": "account", // Can be 'account' or 'network'
"name": "John Doe",
"username": "johndoe89",
"avatar": "https://www.myetv.tv/.../avatar.jpg",
"profile_url": "https://www.myetv.tv/account/..."
}
Use the Access Token to publish text, links, or images. Note: You do not need to specify who is publishing in the JSON payload. The API natively routes the post to the User's Board or the Network's Wall depending on the identity bound to the token.
POST /api/v1/publishcontents.php
Authorization: Bearer YOUR_ACCESS_TOKENContent-Type: application/jsonExample A: Plain Text Post
{
"type": "text",
"text": "This is a post sent via API! XD",
"privacy": "public"
}
Example B: Link Sharing with Title & Preview Image
{
"type": "link",
"title": "Check out this awesome website!",
"text": "Here are my thoughts on this...",
"link_url": "https://www.example.com",
"image_url": "https://www.example.com/preview.jpg",
"privacy": "onlyfriends"
}
Example C: Image Publishing (Direct Upload)
{
"type": "image",
"text": "My new photo via API",
"image_base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE...",
"privacy": "public"
}
| Field | Type | Description |
|---|---|---|
| type | String | Required. Allowed values: text, link, image. |
| title | String | Optional. The title of the content or the link being shared. |
| text | String | The text content or caption of the post. |
| link_url | String (URL) | Required if type is link. The API automatically detects authorized platforms (e.g., YouTube, Vimeo, Twitch). |
| image_url | String (URL) | Optional. Direct URL to an external image, ideal for link previews or RSS feed thumbnails (saves bandwidth compared to base64). |
| image_base64 | String (Base64) | Required if type is image and no image_url is provided. The Base64 encoded image (must include the data:image prefix). Max payload size is 10MB. |
| eflash | String | Optional. A comment or brief caption associated with the content or link. |
| scheduled_time | String (Datetime) | Optional. Desired future publication date and time (e.g., 2026-11-27 13:30:00). If omitted or past, publishes immediately. |
| timezone | String (TZ) | Optional. Default: UTC. The Timezone identifier (e.g., Europe/Rome). |
| privacy | String | Optional. Default: public. Allowed values: public, onlylogged, onlyfriends, private. |
| category_id | Integer | Optional. Default: 1. The numeric ID representing the content category (see Appendix below). |
| language | String (ISO3) | Optional. Default: nts. The ISO3 code of the content language. |
| country | String (ISO3) | Optional. Default: INT. The ISO3 code of the content origin country. |
{
"status": "success",
"message": "Content published successfully.",
"content_id": "4b2a8d1e",
"url": "https://www.myetv.tv/play/4b2a8d1e"
}
Retrieve detailed information about a specific content item using its unique ID. The API strictly enforces content privacy, geolanguage rules, and geo-blocking restrictions. If a content is protected, restricted to specific friends, or blocked in the requester's country/language zone, the API will immediately return a 403 Forbidden error (unless the request is made by the content owner).
GET /api/v1/getcontent.php?id=CONTENT_ID&language=ISO3_CODE
Authorization: Bearer YOUR_ACCESS_TOKEN| Field | Type | Description |
|---|---|---|
| id | String | Required. The unique ID of the content. |
| language | String (ISO3) | Optional. The ISO3 language code of the requesting user (e.g., eng, ita). Required only if you need to properly evaluate custom Geolanguage restrictions set by the author. |
{
"status": "success",
"data": {
"id": "275103dd",
"owner": "44",
"title": "The Next Chapter of MyETV",
"text": "Welcome to a brand new era of content creation...",
"link": "https://blog.myetv.tv/...",
"url": "https://www.myetv.tv/play/275103dd",
"image": "https://blog.myetv.tv/wp-content/uploads/...",
"duration": null,
"type": "myeTV",
"privacy": "public",
"category_id": 1,
"language": "nts",
"country": "INT",
"quality": "EURL",
"eflash": "",
"scheduled_at": "2026-05-08 18:01:18"
}
}
When publishing content, use the following numeric IDs for the category_id parameter:
| ID | Category Name |
|---|---|
| 1 | Generic Content (general) |
| 2 | Animals |
| 3 | Autos and Vehicles (motors) |
| 4 | How to... |
| 5 | Film |
| 6 | Games |
| 7 | Education |
| 8 | Music |
| 9 | News |
| 10 | NoProfit |
| 11 | Blogs |
| 12 | Science |
| 13 | Shows |
| 14 | Sport |
| 15 | Events |
| 16 | Funny Contents |
| 17 | Pictures and Animated Images |
| 18 | Advertisement |
| 19 | Live Streaming |
| 20 | Nature |
| 21 | Style |
| 22 | People |
| 23 | Politic |
| 24 | Travels |
| 25 | Animation |
| 26 | Activism |
| 27 | Technology |
| 28 | Television |
| 29 | Series |
| 30 | Entertainment |
| 31 | Television Show |
| 32 | History |
| 33 | From the Web (online) |
| 34 | Away From Keyboard (afk) |
| 35 | Exploration |
| 36 | Justice |
| 37 | Legality |
| 38 | Documentary |
| 39 | Geography |
| 40 | Mythology |
| 41 | Geopolitics |
client_credentials flow without a Default API Identity configured in the Dashboard.