Personality — entry 004 of 17
Dev.to
Dev.to's API (built on the open-source Forem platform) exposes articles, users, comments and other community content as JSON, with most read endpoints open to the public and write/user-scoped endpoints requiring a key. A live GET against the real gateway, dev.to/api/articles, returned genuine article JSON while carrying Access-Control-Allow-Origin: *, resolving cors unknown -> yes; no key was required for this public read call, though write endpoints still require the documented API Key. Free for community use with no paid tier — pricingModel free.
GreatAPIs Score
Auth quickstart
- Sign up with the provider to get an API key.
- Send it on every request as a header
api-key: <key>
Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.
Endpoints
agent_sessions5
GET/api/agent_sessionslist the authenticated user's agent sessions
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
POST/api/agent_sessionsupload a new agent session
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | AgentSessionIndex |
401 | unauthorized | — |
422 | unprocessable | — |
POST/api/agent_sessions/presignrequest a presigned URL to upload raw session transcript to S3
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
503 | service unavailable | — |
GET/api/agent_sessions/{id}show details for an agent session
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | AgentSessionShow |
401 | unauthorized | — |
404 | not found | — |
GET/api/agent_sessions/{id}/raw_urlrequest a presigned S3 GET URL to download the raw session transcript
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
404 | not found | — |
analytics8
GET/api/analytics/dashboardRetrieve dashboard analytics bundle
| Name | In | Required | Type |
|---|---|---|---|
start | query | no | string |
end | query | no | string |
article_id | query | no | integer |
organization_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/follower_engagementRetrieve follower engagement analytics
| Name | In | Required | Type |
|---|---|---|---|
start | query | no | string |
end | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/heatmapRetrieve heatmap activity
| Name | In | Required | Type |
|---|---|---|---|
end | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/historicalRetrieve historical analytics
| Name | In | Required | Type |
|---|---|---|---|
start | query | yes | string |
end | query | no | string |
article_id | query | no | integer |
organization_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/past_dayRetrieve analytics for the past day
| Name | In | Required | Type |
|---|---|---|---|
article_id | query | no | integer |
organization_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/referrersRetrieve referrer analytics
| Name | In | Required | Type |
|---|---|---|---|
start | query | no | string |
end | query | no | string |
article_id | query | no | integer |
organization_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/top_contributorsRetrieve top contributors analytics
| Name | In | Required | Type |
|---|---|---|---|
start | query | no | string |
end | query | no | string |
article_id | query | no | integer |
organization_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/analytics/totalsRetrieve analytics totals
| Name | In | Required | Type |
|---|---|---|---|
article_id | query | no | integer |
organization_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
articles13
GET/api/articlesPublished articles
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
tag | query | no | string |
tags | query | no | string |
tags_exclude | query | no | string |
username | query | no | string |
state | query | no | string |
top | query | no | integer |
collection_id | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of Articles | — |
POST/api/articlesPublish article
application/json — Article
| Status | Description | Schema |
|---|---|---|
201 | An Article | — |
401 | Unauthorized | — |
422 | Unprocessable Entity | — |
GET/api/articles/latestPublished articles sorted by published date
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of Articles | — |
GET/api/articles/meUser's articles
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of the authenticated user's Articles | — |
401 | Unauthorized | — |
GET/api/articles/me/allUser's all articles
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of the authenticated user's Articles | — |
401 | Unauthorized | — |
GET/api/articles/me/publishedUser's published articles
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of the authenticated user's Articles | — |
401 | Unauthorized | — |
GET/api/articles/me/unpublishedUser's unpublished articles
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of the authenticated user's Articles | — |
401 | Unauthorized | — |
GET/api/articles/searchSearch for articles
| Name | In | Required | Type |
|---|---|---|---|
q | query | no | string |
top | query | no | integer |
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of Articles | — |
GET/api/articles/semantic_searchPerform a semantic fuzzy search on articles
| Name | In | Required | Type |
|---|---|---|---|
q | query | yes | string |
per_page | query | no | integer |
page | query | no | integer |
threshold | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
400 | bad request | — |
401 | unauthorized | — |
GET/api/articles/{id}Published article by id
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | An Article | — |
404 | Article Not Found | — |
PUT/api/articles/{id}Update an article by id
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — Article
| Status | Description | Schema |
|---|---|---|
200 | An Article | — |
401 | Unauthorized | — |
404 | Article Not Found | — |
422 | Unprocessable Entity | — |
PUT/api/articles/{id}/unpublishUnpublish an article
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
note | query | no | string |
| Status | Description | Schema |
|---|---|---|
204 | Article successfully unpublished | — |
401 | Unauthorized | — |
404 | Article Not Found | — |
GET/api/articles/{username}/{slug}Published article by path
| Name | In | Required | Type |
|---|---|---|---|
username | path | yes | string |
slug | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | An Article | — |
404 | Article Not Found | — |
badge_achievements4
GET/api/badge_achievementsRetrieve all badge achievements
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/badge_achievementsCreate a badge achievement
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | BadgeAchievement |
409 | conflict | — |
422 | unprocessable | — |
GET/api/badge_achievements/{id}Retrieve a badge achievement's details
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | BadgeAchievement |
DELETE/api/badge_achievements/{id}Delete a badge achievement
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | no content | — |
badges5
GET/api/badgesRetrieve all badges
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/badgesCreate a badge
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | Badge |
GET/api/badges/{id}Retrieve a badge's details
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | Badge |
PATCH/api/badges/{id}Update a badge
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | Badge |
DELETE/api/badges/{id}Delete a badge
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | no content | — |
billboards5
GET/api/billboardsBillboards
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
POST/api/billboardsCreate a billboard
application/json
| Status | Description | Schema |
|---|---|---|
201 | A billboard | — |
401 | unauthorized | — |
422 | unprocessable | — |
GET/api/billboards/{id}A billboard (by id)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
404 | Unknown Billboard ID | — |
PUT/api/billboards/{id}Update a billboard by ID
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
404 | not found | — |
PUT/api/billboards/{id}/unpublishUnpublish a billboard
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | no content | — |
401 | unauthorized | — |
404 | not found | — |
comments2
GET/api/commentsComments
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | string |
per_page | query | no | integer |
a_id | query | no | string |
p_id | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | A List of Comments | — |
404 | Resource Not Found | — |
GET/api/comments/{id}Comment by id
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | A List of the Comments | — |
404 | Comment Not Found | — |
concepts11
GET/api/admin/conceptsRetrieve all concepts (Admin)
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/admin/conceptsCreate a concept (Admin)
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | Concept |
GET/api/admin/concepts/{id}Retrieve concept detail (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | Concept |
PATCH/api/admin/concepts/{id}Update a concept (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | Concept |
DELETE/api/admin/concepts/{id}Delete a concept (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | no content | — |
POST/api/admin/concepts/{id}/trigger_lookbackTrigger concept lookback backfill (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/conceptsRetrieve all accessible concepts
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
days | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
GET/api/concepts/searchPerform a semantic fuzzy search on concepts
| Name | In | Required | Type |
|---|---|---|---|
q | query | yes | string |
per_page | query | no | integer |
threshold | query | no | number |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
400 | bad request | — |
401 | unauthorized | — |
GET/api/concepts/{id}Retrieve details of a concept
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
days | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | Concept |
401 | unauthorized | — |
PATCH/api/concepts/{id}Update a concept's metadata
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | Concept |
GET/api/concepts/{id}/articlesRetrieve articles mapped to a concept
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
sort | query | no | string |
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
events5
GET/api/eventsRetrieve events
| Name | In | Required | Type |
|---|---|---|---|
type_of | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | A list of events | — |
POST/api/eventsCreate an event
application/json — EventInput
| Status | Description | Schema |
|---|---|---|
201 | Event created | Event |
GET/api/events/{id}Retrieve an event
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | The requested event | Event |
PATCH/api/events/{id}Update an event
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — EventInput
| Status | Description | Schema |
|---|---|---|
200 | Event updated | Event |
DELETE/api/events/{id}Delete an event
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | Event deleted | — |
feedback_messages1
PATCH/api/feedback_messages/{id}Update a feedback message's status (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
followed_tags1
GET/api/follows/tagsFollowed Tags
| Status | Description | Schema |
|---|---|---|
200 | A List of followed tags | — |
401 | unauthorized | — |
followers1
GET/api/followers/usersFollowers
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
sort | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | A List of followers | — |
401 | unauthorized | — |
follows1
POST/api/followsFollow users or organizations
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
health_checks3
GET/api/health_checks/appCheck app health
| Name | In | Required | Type |
|---|---|---|---|
health-check-token | header | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/health_checks/cacheCheck cache connection
| Name | In | Required | Type |
|---|---|---|---|
health-check-token | header | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/health_checks/databaseCheck database connection
| Name | In | Required | Type |
|---|---|---|---|
health-check-token | header | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
instance1
GET/api/instanceRetrieve instance configuration details
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
openapi1
GET/api/v1/openapi.jsonOpenAPI description
| Status | Description | Schema |
|---|---|---|
200 | The OpenAPI description | — |
organizations8
GET/api/organizationsOrganizations
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A list of all organizations | — |
POST/api/organizationsCreate an Organization
application/json — Organization
| Status | Description | Schema |
|---|---|---|
201 | Successful | — |
401 | Unauthorized | — |
422 | Unprocessable Entity | — |
GET/api/organizations/{id}An organization (by id)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | An Organization | — |
404 | Not Found | — |
PUT/api/organizations/{id}Update an organization by id
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — Organization
| Status | Description | Schema |
|---|---|---|
200 | An Organization | — |
401 | Unauthorized | — |
404 | organization Not Found | — |
422 | Unprocessable Entity | — |
DELETE/api/organizations/{id}Delete an Organization by id
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
GET/api/organizations/{organization_id_or_username}/articlesOrganization's Articles
| Name | In | Required | Type |
|---|---|---|---|
organization_id_or_username | path | yes | string |
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | An Organization's Articles (with ID) | — |
404 | Not Found | — |
GET/api/organizations/{organization_id_or_username}/usersOrganization's users
| Name | In | Required | Type |
|---|---|---|---|
organization_id_or_username | path | yes | string |
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | An Organization's users (with ID) | — |
404 | Not Found | — |
GET/api/organizations/{username}An organization (by username)
| Name | In | Required | Type |
|---|---|---|---|
username | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | An Organization | — |
404 | Not Found | — |
pages5
GET/api/pagesshow details for all pages
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/pagespages
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
422 | unprocessable | — |
GET/api/pages/{id}show details for a page
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | Page |
PUT/api/pages/{id}update details for a page
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — Page
| Status | Description | Schema |
|---|---|---|
200 | successful | Page |
401 | unauthorized | — |
422 | unprocessable | — |
DELETE/api/pages/{id}remove a page
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | Page |
401 | unauthorized | — |
422 | unprocessable | — |
podcast_episodes1
GET/api/podcast_episodesPodcast Episodes
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
username | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | A List of Podcast episodes filtered by username | — |
404 | Unknown Podcast username | — |
profile images1
GET/api/profile_images/{username}A Users or organizations profile image
| Name | In | Required | Type |
|---|---|---|---|
username | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | An object containing profile image details | — |
404 | Resource Not Found | — |
reactions2
POST/api/reactionscreate reaction
| Name | In | Required | Type |
|---|---|---|---|
category | query | yes | string |
reactable_id | query | yes | integer |
reactable_type | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
POST/api/reactions/toggletoggle reaction
| Name | In | Required | Type |
|---|---|---|---|
category | query | yes | string |
reactable_id | query | yes | integer |
reactable_type | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | unauthorized | — |
readinglist1
GET/api/readinglistReadinglist
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A list of articles in the users readinglist | — |
401 | Unauthorized | — |
recommended_articles_lists4
GET/api/recommended_articles_listsRetrieve all recommended articles lists
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
search | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/recommended_articles_listsCreate or update a recommended articles list
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | RecommendedArticlesList |
GET/api/recommended_articles_lists/{id}Retrieve details of a recommended articles list
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | RecommendedArticlesList |
PATCH/api/recommended_articles_lists/{id}Update a recommended articles list
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | RecommendedArticlesList |
request_redirects5
GET/api/admin/request_redirectsRetrieve all request redirects (Admin)
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/admin/request_redirectsCreate a request redirect (Admin)
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | RequestRedirect |
GET/api/admin/request_redirects/{id}Retrieve a request redirect's details (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | RequestRedirect |
PATCH/api/admin/request_redirects/{id}Update a request redirect (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | RequestRedirect |
DELETE/api/admin/request_redirects/{id}Delete a request redirect (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | no content | — |
segments7
GET/api/segmentsManually managed audience segments
| Name | In | Required | Type |
|---|---|---|---|
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of manually managed audience segments | — |
401 | Unauthorized | — |
POST/api/segmentsCreate a manually managed audience segment
| Status | Description | Schema |
|---|---|---|
201 | A manually managed audience segment | — |
401 | Unauthorized | — |
GET/api/segments/{id}A manually managed audience segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | The audience segment | — |
401 | Unauthorized | — |
404 | Audience Segment Not Found | — |
DELETE/api/segments/{id}Delete a manually managed audience segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | The deleted audience segment | — |
401 | Unauthorized | — |
404 | Audience Segment Not Found | — |
409 | Audience segment could not be deleted | — |
PUT/api/segments/{id}/add_usersAdd users to a manually managed audience segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — SegmentUserIds
| Status | Description | Schema |
|---|---|---|
200 | Result of adding the users to the segment. | — |
401 | Unauthorized | — |
404 | Audience Segment Not Found | — |
422 | Unprocessable Entity | — |
PUT/api/segments/{id}/remove_usersRemove users from a manually managed audience segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json — SegmentUserIds
| Status | Description | Schema |
|---|---|---|
200 | Result of removing the users to the segment. | — |
401 | Unauthorized | — |
404 | Audience Segment Not Found | — |
422 | Unprocessable Entity | — |
GET/api/segments/{id}/usersUsers in a manually managed audience segment
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of users in the audience segment | — |
401 | Unauthorized | — |
404 | Audience Segment Not Found | — |
subforems1
GET/api/subforemsRetrieve all discoverable subforems
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
surveys7
GET/api/surveysList surveys
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
active | query | no | boolean |
| Status | Description | Schema |
|---|---|---|
200 | A list of surveys | — |
401 | Unauthorized | — |
POST/api/surveysCreate a survey
application/json — SurveyInput
| Status | Description | Schema |
|---|---|---|
201 | Created | SurveyWithPolls |
401 | Unauthorized | — |
422 | Unprocessable Entity | — |
GET/api/surveys/{id_or_slug}A survey with polls
| Name | In | Required | Type |
|---|---|---|---|
id_or_slug | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | A survey with nested polls and options | SurveyWithPolls |
401 | Unauthorized | — |
404 | Not found | — |
PATCH/api/surveys/{id_or_slug}Update a survey
| Name | In | Required | Type |
|---|---|---|---|
id_or_slug | path | yes | string |
application/json — SurveyInput
| Status | Description | Schema |
|---|---|---|
200 | Successful | SurveyWithPolls |
401 | Unauthorized | — |
404 | Not Found | — |
422 | Unprocessable Entity | — |
DELETE/api/surveys/{id_or_slug}Delete a survey
| Name | In | Required | Type |
|---|---|---|---|
id_or_slug | path | yes | string |
| Status | Description | Schema |
|---|---|---|
204 | No Content | — |
401 | Unauthorized | — |
404 | Not Found | — |
422 | Unprocessable Entity | — |
GET/api/surveys/{id_or_slug}/poll_text_responsesSurvey poll text responses
| Name | In | Required | Type |
|---|---|---|---|
id_or_slug | path | yes | string |
per_page | query | no | integer |
after | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Poll text responses | — |
401 | Unauthorized | — |
404 | Not found | — |
GET/api/surveys/{id_or_slug}/poll_votesSurvey poll votes
| Name | In | Required | Type |
|---|---|---|---|
id_or_slug | path | yes | string |
per_page | query | no | integer |
after | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | Poll votes | — |
401 | Unauthorized | — |
404 | Not found | — |
tags1
GET/api/tagsTags
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of all tags | — |
trends3
GET/api/trendsTrends
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of Trends | — |
GET/api/trends/{id_or_slug}A Trend
| Name | In | Required | Type |
|---|---|---|---|
id_or_slug | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | A Trend | — |
404 | Trend Not Found | — |
GET/api/trends/{trend_id_or_slug}/articlesArticles in a Trend
| Name | In | Required | Type |
|---|---|---|---|
trend_id_or_slug | path | yes | string |
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of Articles in the Trend | — |
404 | Trend Not Found | — |
users25
GET/api/admin/usersList all users (Admin)
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
email | query | no | string |
username | query | no | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/admin/usersInvite a User
application/json — UserInviteParam
| Status | Description | Schema |
|---|---|---|
200 | Successful | — |
POST/api/admin/users/identities/bulkBulk link identities (Admin)
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/admin/users/{id}Get user detail (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
PATCH/api/admin/users/{id}Update user profile (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
PUT/api/admin/users/{id}/emailUpdate user email (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/admin/users/{id}/mergeMerge user into another (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
PUT/api/admin/users/{id}/notification_settingsUpdate user notification settings (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
PUT/api/admin/users/{id}/statusUpdate user moderation status (Admin)
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
GET/api/admin/users/{user_id}/identitiesList identities for a user (Admin)
| Name | In | Required | Type |
|---|---|---|---|
user_id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/admin/users/{user_id}/identitiesLink an identity to a user (Admin)
| Name | In | Required | Type |
|---|---|---|---|
user_id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | — |
DELETE/api/admin/users/{user_id}/identities/{id}Unlink an identity from a user (Admin)
| Name | In | Required | Type |
|---|---|---|---|
user_id | path | yes | integer |
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | no content | — |
GET/api/admin/users/{user_id}/notesList notes for a user (Admin)
| Name | In | Required | Type |
|---|---|---|---|
user_id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
POST/api/admin/users/{user_id}/notesAdd a note to a user (Admin)
| Name | In | Required | Type |
|---|---|---|---|
user_id | path | yes | integer |
application/json
| Status | Description | Schema |
|---|---|---|
201 | created | — |
GET/api/users/meThe authenticated user
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
401 | Unauthorized | — |
GET/api/users/searchSearch for users
| Name | In | Required | Type |
|---|---|---|---|
email | query | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | ExtendedUser |
GET/api/users/{id}A User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | string |
| Status | Description | Schema |
|---|---|---|
200 | successful | — |
PUT/api/users/{id}/limitedAdd limited role for a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | User successfully limited | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
DELETE/api/users/{id}/limitedRemove limited for a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | User successfully un-limited | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
PUT/api/users/{id}/spamAdd spam role for a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | Spam role assigned to the user successfully | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
DELETE/api/users/{id}/spamRemove spam role from a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | Successfully removed the spam role from a user | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
PUT/api/users/{id}/suspendSuspend a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | User successfully unpublished | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
PUT/api/users/{id}/trustedAdd trusted role for a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | Trusted role assigned to the user successfully | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
DELETE/api/users/{id}/trustedRemove trusted role from a User
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | Successfully removed the trusted role from a user | — |
401 | Unauthorized | — |
404 | Unknown User ID | — |
PUT/api/users/{id}/unpublishUnpublish a User's Articles and Comments
| Name | In | Required | Type |
|---|---|---|---|
id | path | yes | integer |
| Status | Description | Schema |
|---|---|---|
204 | User's articles and comments successfully unpublished | — |
videos1
GET/api/videosArticles with a video
| Name | In | Required | Type |
|---|---|---|---|
page | query | no | integer |
per_page | query | no | integer |
| Status | Description | Schema |
|---|---|---|
200 | A List of all articles with videos | — |
Try it
Developer reference
https://dev.to10 requests per 30 seconds for article creation; 30 requests per 30 seconds for article updates (per Forem's API v0 docs).
- GET/api/articles
- GET/api/articles/latest
- GET/api/tags
- GET/api/podcast_episodes
Changelog
- gained an OpenAPI spec