### Page JSON Response Sample (GET) Source: https://developers.forem.com/api/v1/index Example JSON response for a successful retrieval of a page's details. Includes fields like ID, title, slug, description, and body content in HTML or markdown format. This is used by the GET /pages endpoint. ```json [ { "id": 5, "title": "An Instant In The Wind", "slug": "trivial_exaggerate", "description": "Excepturi illum tenetur nisi.", "is_top_level_path": false, "landing_page": false, "body_html": null, "body_json": null, "body_markdown": "Et voluptas cupiditate voluptatibus.", "processed_html": "

Et voluptas cupiditate voluptatibus.

\n\n", "social_image": { "url": null }, "template": "contained" } ] ``` -------------------------------- ### Create Page Request Body Example (POST) Source: https://developers.forem.com/api/v1/index Example JSON payload for creating a new page using the POST /pages endpoint. It requires fields such as title, slug, description, and body content in markdown or JSON format. Optional fields include is_top_level_path and template. ```json { "title": "string", "slug": "string", "description": "string", "body_markdown": "string", "body_json": "string", "is_top_level_path": true, "template": "contained" } ``` -------------------------------- ### Get All Tags (GET /tags) Source: https://developers.forem.com/api/v1/index Retrieves a list of tags that can be used to tag articles, ordered by popularity. Supports pagination with default page size of 10. Each tag object includes id, name, and color hex codes. ```json [ { "id": 806, "name": "tag5", "bg_color_hex": null, "text_color_hex": null }, { "id": 808, "name": "tag6", "bg_color_hex": null, "text_color_hex": null }, { "id": 809, "name": "tag7", "bg_color_hex": null, "text_color_hex": null } ] ``` -------------------------------- ### GET /api/podcast_episodes Source: https://developers.forem.com/api/v1/index Retrieves a list of podcast episodes. Supports pagination and filtering by username. ```APIDOC ## GET /api/podcast_episodes ### Description Retrieves a list of podcast episodes. "Podcast episodes" are episodes belonging to podcasts. It will only return active (reachable) podcast episodes that belong to published podcasts available on the platform, ordered by descending publication date. It supports pagination, each page will contain 30 articles by default. ### Method GET ### Endpoint /api/podcast_episodes #### Query Parameters - **page** (integer) - Optional - Pagination page. Default: 1. - **per_page** (integer) - Optional - Page size (the number of items to return per page). The default maximum value can be overridden by "API_PER_PAGE_MAX" environment variable. Range: [1 .. 1000]. Default: 30. - **username** (string) - Optional - Using this parameter will retrieve episodes belonging to a specific podcast. Example: username=codenewbie. ### Response #### Success Response (200) Returns a list of podcast episodes. - **type_of** (string) - The type of the object, e.g., "podcast_episodes". - **class_name** (string) - The class name of the object, e.g., "PodcastEpisode". - **id** (integer) - The unique identifier for the podcast episode. - **path** (string) - The URL path to the podcast episode. - **title** (string) - The title of the podcast episode. - **image_url** (string) - The URL of the podcast episode's image. - **podcast** (object) - Information about the podcast the episode belongs to. - **title** (string) - The title of the podcast. - **slug** (string) - The slug of the podcast. - **image_url** (string) - The URL of the podcast's image. #### Response Example ```json [ { "type_of": "podcast_episodes", "class_name": "PodcastEpisode", "id": 4, "path": "/codenewbie/slug-4", "title": "5", "image_url": "/uploads/podcast/image/8/624a3c09-8036-43e4-9187-4cbf6d3c1fd6.jpeg", "podcast": { "title": "Maudite", "slug": "codenewbie", "image_url": "/uploads/podcast/image/8/624a3c09-8036-43e4-9187-4cbf6d3c1fd6.jpeg" } } ] ``` ``` -------------------------------- ### GET /api/videos Source: https://developers.forem.com/api/v1/index Retrieve a list of articles that include a video. Results are ordered by popularity and support pagination. ```APIDOC ## Articles with a video ### Description This endpoint allows the client to retrieve a list of articles that are uploaded with a video. It will only return published video articles ordered by descending popularity. It supports pagination, each page will contain 24 articles by default. ### Method GET ### Endpoint /api/videos ### Parameters #### Query Parameters - **page** (integer) - Required >= 1 - Pagination page. Default: 1 - **per_page** (integer) - Required [1..1000] - Page size (the number of items to return per page). Default: 24 ### Response #### Success Response (200) A List of all articles with videos. #### Response Example ```json [ { "type_of": "video_article", "id": 287, "path": "/username499/the-millstone201-1kgb", "cloudinary_video_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/thumbs-video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f-00001.png", "title": "The Millstone201", "user_id": 1452, "video_duration_in_minutes": "00:00", "video_source_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f.m3u8", "user": { "name": "Edgardo \"Monroe\" \:/ Gusikowski" } }, { "type_of": "video_article", "id": 288, "path": "/username500/a-many-splendoured-thing202-4gnk", "cloudinary_video_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/thumbs-video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f-00001.png", "title": "A Many-Splendoured Thing202", "user_id": 1453, "video_duration_in_minutes": "00:00", "video_source_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f.m3u8", "user": { "name": "Arlena \"Catarina\" \:/ Zulauf" } } ] ``` -------------------------------- ### GET /api/pages Source: https://developers.forem.com/api/v1/index Retrieves details for all Page objects available on the platform. ```APIDOC ## GET /api/pages ### Description This endpoint allows the client to retrieve details for all Page objects. ### Method GET ### Endpoint /api/pages ### Parameters ### Request Example (No request body for GET requests) ### Response #### Success Response (200) - **type_of** (string) - Type of the resource (e.g., "article"). - **id** (integer) - Unique identifier for the page. - **title** (string) - The title of the page. - **description** (string) - A brief description of the page. - **readable_publish_date** (string) - The formatted date when the page was published. - **slug** (string) - A URL-friendly identifier for the page. - **path** (string) - The relative path to the page. - **url** (string) - The full URL to the page. - **comments_count** (integer) - The number of comments on the page. - **public_reactions_count** (integer) - The number of public reactions to the page. - **collection_id** (null) - Indicates if the page belongs to a collection. - **published_timestamp** (string) - The exact timestamp when the page was published. - **positive_reactions_count** (integer) - The number of positive reactions. - **cover_image** (string) - URL to the cover image of the page. - **social_image** (string) - URL to the social media image. - **canonical_url** (string) - The canonical URL for SEO purposes. - **created_at** (string) - Timestamp when the page was created. - **edited_at** (null) - Timestamp when the page was last edited. - **crossposted_at** (null) - Timestamp if the page was crossposted. - **published_at** (string) - Timestamp when the page was published. - **last_comment_at** (string) - Timestamp of the last comment. - **reading_time_minutes** (integer) - Estimated reading time in minutes. - **tag_list** (array of strings) - List of tags associated with the page. - **tags** (string) - Comma-separated string of tags. - **user** (object) - Information about the page's author. - **name** (string) - Author's display name. - **username** (string) - Author's username. - **twitter_username** (string) - Author's Twitter username. - **github_username** (string) - Author's GitHub username. - **user_id** (integer) - Author's unique ID. - **website_url** (null) - Author's website URL. - **profile_image** (string) - URL to the author's profile image. - **profile_image_90** (string) - URL to the author's 90x90 profile image. - **organization** (object) - Information about the page's organization. - **name** (string) - Organization's name. - **username** (string) - Organization's username. - **slug** (string) - Organization's slug. - **profile_image** (string) - URL to the organization's profile image. - **profile_image_90** (string) - URL to the organization's 90x90 profile image. #### Response Example ```json [ { "type_of": "article", "id": 276, "title": "Down to a Sunless Sea195", "description": "Scenester occupy swag. Yr godard single-origin coffee biodiesel beard artisan. Wes anderson yolo...", "readable_publish_date": "Apr 14", "slug": "down-to-a-sunless-sea195-51d4", "path": "/org81/down-to-a-sunless-sea195-51d4", "url": "http://localhost:3000/org81/down-to-a-sunless-sea195-51d4", "comments_count": 0, "public_reactions_count": 0, "collection_id": null, "published_timestamp": "2023-04-14T14:45:38Z", "positive_reactions_count": 0, "cover_image": "http://localhost:3000/assets/38-3b0c46cc0d5367229799d282c99b2c42f33501201cac1ceb5c643f9ee11f06c6.png", "social_image": "http://localhost:3000/assets/38-3b0c46cc0d5367229799d282c99b2c42f33501201cac1ceb5c643f9ee11f06c6.png", "canonical_url": "http://localhost:3000/org81/down-to-a-sunless-sea195-51d4", "created_at": "2023-04-14T14:45:38Z", "edited_at": null, "crossposted_at": null, "published_at": "2023-04-14T14:45:38Z", "last_comment_at": "2023-04-14T14:45:38Z", "reading_time_minutes": 1, "tag_list": [ "javascript", "html", "discuss" ], "tags": "javascript, html, discuss", "user": { "name": "Annabell \"Tyron\" \:/ West", "username": "username453", "twitter_username": "twitter453", "github_username": "github453", "user_id": 1399, "website_url": null, "profile_image": "/uploads/user/profile_image/1399/15f1c715-4e10-4f57-9cca-7a2071dfdf23.jpeg", "profile_image_90": "/uploads/user/profile_image/1399/15f1c715-4e10-4f57-9cca-7a2071dfdf23.jpeg" }, "organization": { "name": "Schuster LLC", "username": "org81", "slug": "org81", "profile_image": "/uploads/organization/profile_image/334/824e9ec6-b41c-4824-87e8-ae7721868787.png", "profile_image_90": "/uploads/organization/profile_image/334/824e9ec6-b41c-4824-87e8-ae7721868787.png" } } ] ``` #### Error Response (404) (Not explicitly documented, but typically indicates no pages found) ``` -------------------------------- ### GET /api/follows/tags Source: https://developers.forem.com/api/v1/index This endpoint allows the client to retrieve a list of the tags they follow. ```APIDOC ## GET /follows/tags ### Description This endpoint allows the client to retrieve a list of the tags they follow. ### Method GET ### Endpoint https://dev.to/api/follows/tags ### Response #### Success Response (200) A List of followed tags. - **id** (integer) - The ID of the tag. - **name** (string) - The name of the tag. - **points** (integer) - The number of points associated with the tag. #### Response Example (200) ```json [ { "id": 701, "name": "tag3", "points": 1 }, { "id": 702, "name": "tag4", "points": 1 } ] ``` #### Error Response (401) Unauthorized access. ``` -------------------------------- ### GET /api/display_ads Source: https://developers.forem.com/api/v1/index Retrieves a list of all display ads available on the platform. Requires API key authorization. ```APIDOC ## GET /api/display_ads ### Description This endpoint allows the client to retrieve a list of all display ads. ### Method GET ### Endpoint /api/display_ads ### Authorizations - api-key ### Responses #### Success Response (200) successful #### Error Response (401) unauthorized ### Request Example N/A ### Response Example (200) ```json [] ``` ``` -------------------------------- ### GET /api/videos Source: https://developers.forem.com/api/v1/index Retrieves a paginated list of published articles that include a video, ordered by descending popularity. ```APIDOC ## GET /api/videos ### Description This endpoint allows the client to retrieve a list of articles that are uploaded with a video. It will only return published video articles ordered by descending popularity. It supports pagination, each page will contain 24 articles by default. ### Method GET ### Endpoint /api/videos ### Parameters #### Query Parameters - **page** (integer) - Optional - Default: 1 - Pagination page. - **per_page** (integer) - Optional - [ 1 .. 1000 ] - Default: 24 - Page size (the number of items to return per page). The default maximum value can be overridden by "API_PER_PAGE_MAX" environment variable. ### Response #### Success Response (200) A List of all articles with videos. ``` -------------------------------- ### GET /api/articles Source: https://developers.forem.com/api/v1/index This endpoint allows the client to retrieve a list of published articles. Articles are posts users create on DEV. ```APIDOC ## GET /api/articles ### Description This endpoint allows the client to retrieve a list of published articles. Articles include blog posts, discussion questions, and help threads. By default, it returns featured, published articles ordered by descending popularity. It supports pagination, with each page containing 30 articles by default. ### Method GET ### Endpoint https://dev.to/api/articles ### Parameters #### Query Parameters - **page** (integer) - Optional - The page number of articles to retrieve. Defaults to 1. - **per_page** (integer) - Optional - The number of articles per page. Defaults to 30. Maximum is 100. - **top** (string) - Optional - Filters articles by a specific top category (e.g., 'week', 'month', 'year', 'infinity'). - **state** (string) - Optional - Filters articles by their state ('fresh', 'boosted'). Defaults to 'fresh'. - **tag** (string) - Optional - Filters articles by a specific tag. - **username** (string) - Optional - Filters articles by a specific username. - **a_device_of_state** (string) - Optional - Filters articles by a specific device of state (e.g., 'true' for articles that are 'under development'). ### Request Example (No request body for GET requests) ### Response #### Success Response (200) Returns an array of article objects, each containing details similar to the POST /articles response, but focused on published articles. #### Error Responses - **401** - Unauthorized - **422** - Unprocessable Entity ``` -------------------------------- ### Get Followed Tags (GET /follows/tags) Source: https://developers.forem.com/api/v1/index Retrieves a list of tags that the user follows. Requires an API key for authorization. Returns a list of tag objects, each with an id, name, and points. Handles unauthorized (401) errors. ```json [ { "id": 701, "name": "tag3", "points": 1 }, { "id": 702, "name": "tag4", "points": 1 } ] ``` -------------------------------- ### Page JSON Response Sample (POST) Source: https://developers.forem.com/api/v1/index Example JSON response after successfully creating a page using the POST /pages endpoint. It mirrors the structure of a retrieved page, including its ID, title, slug, and processed body content. ```json { "id": 7, "title": "Example Page", "slug": "example1", "description": "a new page", "is_top_level_path": false, "landing_page": false, "body_html": null, "body_json": null, "body_markdown": "# Hi, this is a New Page\nYep, it's an a new page", "processed_html": "

\n \n \n Hi, this is a New Page\n

\n\n

Yep, it's an a new page

\n\n", "social_image": { "url": null }, "template": "contained" } ``` -------------------------------- ### Response Sample for Fetching Articles (JSON) Source: https://developers.forem.com/api/v1/index This is a sample JSON response for a successful request to the articles endpoint. It includes details about the article, user, organization, and associated tags. ```JSON [ { "type_of": "article", "id": 254, "title": "All the King's Men175", "description": "Typewriter crucifix forage. Pug put a bird on it art party taxidermy asymmetrical xoxo. Sustainable...", "readable_publish_date": "Apr 14", "slug": "all-the-kings-men175-794", "path": "/username387/all-the-kings-men175-794", "url": "http://localhost:3000/username387/all-the-kings-men175-794", "comments_count": 0, "public_reactions_count": 0, "collection_id": null, "published_timestamp": "2023-04-14T14:45:32Z", "positive_reactions_count": 0, "cover_image": "http://localhost:3000/assets/36-83d24fbff858b9dd4035d1e7d2df14090946ae4fed631055fc1d5862e7018348.png", "social_image": "http://localhost:3000/assets/36-83d24fbff858b9dd4035d1e7d2df14090946ae4fed631055fc1d5862e7018348.png", "canonical_url": "http://localhost:3000/username387/all-the-kings-men175-794", "created_at": "2023-04-14T14:45:32Z", "edited_at": null, "crossposted_at": null, "published_at": "2023-04-14T14:45:32Z", "last_comment_at": "2023-04-14T14:45:32Z", "reading_time_minutes": 1, "tag_list": [ "discuss" ], "tags": "discuss", "user": { "name": "Versie \"Luana\" \\:/ Runolfsson", "username": "username387", "twitter_username": "twitter387", "github_username": "github387", "user_id": 1308, "website_url": null, "profile_image": "/uploads/user/profile_image/1308/dfa25219-dfea-4d9a-93ec-403a5f51a29e.jpeg", "profile_image_90": "/uploads/user/profile_image/1308/dfa25219-dfea-4d9a-93ec-403a5f51a29e.jpeg" }, "organization": { "name": "Ledner, Jaskolski and Bednar", "username": "org70", "slug": "org70", "profile_image": "/uploads/organization/profile_image/295/216d3fb5-bd3c-459a-a9d8-572e8332fd88.png", "profile_image_90": "/uploads/organization/profile_image/295/216d3fb5-bd3c-459a-a9d8-572e8332fd88.png" }, "flare_tag": { "name": "discuss", "bg_color_hex": "#000000", "text_color_hex": "#ffffff" } } ] ``` -------------------------------- ### Forem API v1: Get Published Article by Path (GET Request) Source: https://developers.forem.com/api/v1/index This section describes how to retrieve a published article using its path. It requires the username and slug as path parameters. The endpoint returns an Article on success (200) or indicates if the Article is Not Found (404). ```http GET /articles/{username}/{slug} HTTP/1.1 Host: https://dev.to/api ``` -------------------------------- ### POST /api/display_ads Source: https://developers.forem.com/api/v1/index Creates a new display ad. Requires API key authorization and a JSON request body. ```APIDOC ## POST /api/display_ads ### Description This endpoint allows the client to create a new display ad. ### Method POST ### Endpoint /api/display_ads ### Authorizations - api-key ### Request Body - **schema** (any) - Required ### Responses #### Success Response (200) successful #### Error Response (401) unauthorized #### Error Response (422) unprocessable ### Request Example ```json { "name": "Example Ad", "body_markdown": "# Hi, this is ad\nYep, it's an ad", "placement_area": "post_comments", "display_to": "all" } ``` ### Response Example (200) ```json { "id": 193, "approved": true, "body_markdown": "# Hi, this is ad\nYep, it's an ad", "cached_tag_list": "", "clicks_count": 0, "created_at": "2023-04-14T18:45:35.606+04:00", "creator_id": null, "display_to": "all", "exclude_article_ids": "", "impressions_count": 0, "name": "Example Ad", "organization_id": null, "placement_area": "post_comments", "processed_html": "

Hi, this is ad

Yep, it's an ad

", "published": true, "success_rate": 0, "type_of": "in_house", "updated_at": "2023-04-14T18:45:35.606+04:00", "audience_segment_type": null, "tag_list": "" } ``` ``` -------------------------------- ### POST /api/pages Source: https://developers.forem.com/api/v1/index Creates a new Page object on the platform. Requires API key authorization. ```APIDOC ## POST /api/pages ### Description This endpoint allows the client to create a new page. Requires API key authorization. ### Method POST ### Endpoint /api/pages ### Parameters #### Request Body - **title** (string) - Required - Title of the page. - **slug** (string) - Required - Used to link to this page in URLs, must be unique and URL-safe. - **description** (string) - Required - For internal use, helps similar pages from one another. - **body_markdown** (string) - Required - The text (in markdown) of the page. - **body_json** (string) - Optional - For JSON pages, the JSON body. - **is_top_level_path** (boolean) - Optional - If true, the page is available at '/{slug}' instead of '/page/{slug}', use with caution. - **template** (string) - Optional - Default: "contained". Enum: "contained", "full_within_layout", "nav_bar_included", "json". Controls the layout template for the page. ### Request Example ```json { "title": "string", "slug": "string", "description": "string", "body_markdown": "string", "body_json": "string", "is_top_level_path": true, "template": "contained" } ``` ### Response #### Success Response (200) - **id** (integer) - Unique identifier for the newly created page. - **title** (string) - The title of the page. - **slug** (string) - A URL-friendly identifier for the page. - **description** (string) - A brief description of the page. - **is_top_level_path** (boolean) - Indicates if the page is available at the root path. - **landing_page** (boolean) - Indicates if the page is a landing page. - **body_html** (null) - HTML content of the page. - **body_json** (null) - JSON content of the page. - **body_markdown** (string) - Markdown content of the page. - **processed_html** (string) - The processed HTML content of the page. - **social_image** (object) - Social image details. - **url** (null) - URL of the social image. - **template** (string) - The layout template used for the page. #### Response Example ```json { "id": 7, "title": "Example Page", "slug": "example1", "description": "a new page", "is_top_level_path": false, "landing_page": false, "body_html": null, "body_json": null, "body_markdown": "# Hi, this is a New Page\nYep, it's an a new page", "processed_html": "

\n \n \n Hi, this is a New Page\n

\n\n

Yep, it's an a new page

\n\n", "social_image": { "url": null }, "template": "contained" } ``` #### Error Responses - **401**: Unauthorized (Missing or invalid API key). - **422**: Unprocessable Entity (Validation errors in the request body). ``` -------------------------------- ### GET /organizations/{username} Source: https://developers.forem.com/api/v1/index Retrieves a single organization by its username. ```APIDOC ## GET /api/organizations/{username} ### Description Retrieves a single organization by its username. ### Method GET ### Endpoint https://dev.to/api/organizations/{username} ### Parameters #### Path Parameters - **username** (string) - Required - The username of the organization to retrieve. ### Response #### Success Response (200) - **type_of** (string) - Type of the object, e.g., "organization". - **id** (integer) - Unique identifier for the organization. - **username** (string) - The username of the organization. - **name** (string) - The display name of the organization. - **summary** (string) - A brief description or tagline for the organization. - **twitter_username** (string) - The organization's Twitter username. - **github_username** (string) - The organization's GitHub username. - **url** (string) - The organization's website URL. - **location** (string) - The organization's location. - **tech_stack** (string) - Technologies associated with the organization. - **tag_line** (string) - A short tagline for the organization. - **story** (string) - A longer description of the organization. - **joined_at** (string) - Timestamp when the organization joined DEV.to. - **profile_image** (string) - The URL to the organization's profile image. #### Response Example (200) ```json { "type_of": "organization", "id": 323, "username": "org77", "name": "Skiles-Frami", "summary": "Franzen seitan mustache cred. Gluten-free flannel gastropub hoodie vinegar wolf mixtape.", "twitter_username": "org26", "github_username": "org5524", "url": "http://jacobs.com/assunta.rau", "location": null, "tech_stack": null, "tag_line": null, "story": null, "joined_at": "2023-04-14T14:45:37Z", "profile_image": "/uploads/organization/profile_image/323/d1677329-759a-44e1-866e-c5be50e9593b.png" } ``` #### Error Response (404) Not Found. ``` -------------------------------- ### Create Display Ad - Request and Response Samples (JSON) Source: https://developers.forem.com/api/v1/index This snippet shows the request body (empty JSON) for creating a display ad and a successful response (200 OK) upon creation. The response includes details of the newly created ad. Error responses like 401 Unauthorized or 422 Unprocessable Entity are also possible. ```json { } ``` ```json { "id": 193, "approved": true, "body_markdown": "# Hi, this is ad\nYep, it's an ad", "cached_tag_list": "", "clicks_count": 0, "created_at": "2023-04-14T18:45:35.606+04:00", "creator_id": null, "display_to": "all", "exclude_article_ids": "", "impressions_count": 0, "name": "Example Ad", "organization_id": null, "placement_area": "post_comments", "processed_html": "

Hi, this is ad

Yep, it's an ad

", "published": true, "success_rate": 0, "type_of": "in_house", "updated_at": "2023-04-14T18:45:35.606+04:00", "audience_segment_type": null, "tag_list": "" } ``` -------------------------------- ### GET /websites/developers_forem_api_v1 Source: https://developers.forem.com/api/v1/index Retrieves a list of video articles. This endpoint returns a collection of video articles, each with details such as type, ID, path, video URLs, title, user information, and duration. ```APIDOC ## GET /websites/developers_forem_api_v1 ### Description Retrieves a list of video articles. This endpoint returns a collection of video articles, each with details such as type, ID, path, video URLs, title, user information, and duration. ### Method GET ### Endpoint /websites/developers_forem_api_v1 ### Parameters #### Query Parameters - **per_page** (integer) - Optional - Number of results to return per page. - **page** (integer) - Optional - Page number for pagination. ### Response #### Success Response (200) - **type_of** (string) - The type of the content (e.g., "video_article"). - **id** (integer) - The unique identifier for the article. - **path** (string) - The URL path to the article. - **cloudinary_video_url** (string) - The Cloudinary URL for the video thumbnail. - **title** (string) - The title of the video article. - **user_id** (integer) - The ID of the user who published the article. - **video_duration_in_minutes** (string) - The duration of the video in minutes (formatted as HH:MM). - **video_source_url** (string) - The source URL for the video. - **user** (object) - An object containing information about the article's author. - **name** (string) - The name of the user. #### Response Example { "example": "[ { "type_of": "video_article", "id": 287, "path": "/username499/the-millstone201-1kgb", "cloudinary_video_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/thumbs-video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f-00001.png", "title": "The Millstone201", "user_id": 1452, "video_duration_in_minutes": "00:00", "video_source_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f.m3u8", "user": { "name": \"Edgardo \"Monroe\" \\:/ Gusikowski\" } }, { "type_of": "video_article", "id": 288, "path": "/username500/a-many-splendoured-thing202-4gnk", "cloudinary_video_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/thumbs-video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f-00001.png", "title": "A Many-Splendoured Thing202", "user_id": 1453, "video_duration_in_minutes": "00:00", "video_source_url": "https://dw71fyauz7yz9.cloudfront.net/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f/video-upload__1e42eb0bab4abb3c63baeb5e8bdfe69f.m3u8", "user": { "name": \"Arlena \"Catarina\" \\:/ Zulauf\" } } ]" } ``` -------------------------------- ### GET /api/articles/me/unpublished Source: https://developers.forem.com/api/v1/index Retrieves a list of unpublished articles for the authenticated user. Supports pagination. ```APIDOC ## GET /api/articles/me/unpublished ### Description This endpoint allows the client to retrieve a list of unpublished articles on behalf of an authenticated user. Unpublished articles will be in reverse chronological creation order. It will return unpublished articles with pagination. By default a page will contain 30 articles. ### Method GET ### Endpoint /api/articles/me/unpublished ### Query Parameters - **page** (integer) - Optional - Default: 1 - Pagination page. - **per_page** (integer) - Optional - Default: 30 - Page size (the number of items to return per page). The default maximum value can be overridden by "API_PER_PAGE_MAX" environment variable. ### Responses #### Success Response (200) - **articles** (array) - A List of the authenticated user's Articles. #### Error Response (401) - **error** (string) - Unauthorized ### Request Example ```json { "articles": [ { "type_of": "article", "title": "Example Unpublished Article", "id": 54321, "url": "https://dev.to/example/unpublished-article" } ] } ``` ### Response Example ```json { "articles": [ { "type_of": "article", "title": "Example Unpublished Article", "id": 54321, "url": "https://dev.to/example/unpublished-article" } ] } ``` ```