Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
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 \n\n - You'll see the newly generated key in the same view\n "
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.