openapi: 3.2.0 info: title: Forem API V1 Videos API version: 1.0.0 description: Access Forem articles, users and other resources via API. servers: - url: https://dev.to description: Production server security: - api-key: [] - bearer_auth: [] tags: - name: Videos paths: /api/videos: get: summary: Articles with a video tags: - Videos security: [] description: 'Retrieve a list of articles that contain uploaded videos. ### Videos Overview: - Bypasses authentication (can be accessed publicly). - Returns articles that are published and include a video asset. - Articles are ordered by descending popularity (views, watch time, and reactions). - By default, returns 24 video articles per page.' operationId: videos parameters: - $ref: '#/components/parameters/pageParam' - $ref: '#/components/parameters/perPageParam24to1000' responses: '200': description: A List of all articles with videos content: application/json: schema: type: array items: $ref: '#/components/schemas/VideoArticle' components: parameters: pageParam: in: query name: page required: false description: Pagination page schema: type: integer format: int32 minimum: 1 default: 1 perPageParam24to1000: in: query name: per_page required: false description: Page size (the number of items to return per page). The default maximum value can be overridden by "API_PER_PAGE_MAX" environment variable. schema: type: integer format: int32 minimum: 1 maximum: 1000 default: 24 schemas: VideoArticle: description: Representation of an Article with video type: object properties: type_of: type: string id: type: integer format: int64 path: type: string cloudinary_video_url: type: string title: type: string user_id: type: integer format: int64 video_duration_in_minutes: type: string video_source_url: type: string user: description: Author of the article type: object properties: name: type: string securitySchemes: api-key: type: apiKey name: api-key in: header description: "API Key authentication.\n\nAuthentication for some endpoints, like write operations on the\nArticles API require a DEV API key.\n\nAll authenticated endpoints are CORS disabled, the API key is intended for non-browser scripts.\n\n### Getting an API key\n\nTo obtain one, please follow these steps:\n\n - visit https://dev.to/settings/extensions\n - in the \"DEV API Keys\" section create a new key by adding a\n description and clicking on \"Generate API Key\"\n\n ![obtain a DEV API Key](https://user-images.githubusercontent.com/37842/172718105-bd93664e-76e0-477d-99c4-265dda0b06c5.png)\n\n - You'll see the newly generated key in the same view\n ![generated DEV API Key](https://user-images.githubusercontent.com/37842/172718151-e7fe26a0-9937-42e8-96c6-333acdab9e49.png)" bearer_auth: type: http scheme: bearer bearerFormat: JWT description: Short-lived RS256 RFC 9068 access token issued by the configured delegation service and verified against its configured JWKS. The issuer authorizes the client and requested operation before minting the token; Forem validates the token and resolves its subject and owner to a local user. An invalid token returns 401; an unavailable trust dependency with no usable cached key returns 503.