DEV Community Badges API
The badges API from DEV Community — 2 operation(s) for badges.
The badges API from DEV Community — 2 operation(s) for badges.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/dev-to-badges-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Forem API V1 Badges 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: Badges
paths:
/api/badges:
get:
summary: Retrieve all badges
tags:
- Badges
description: 'Retrieve a list of all badges available on the platform.
### Badges Overview:
- Badges recognize achievements (e.g., "Top Writer", "Beloved Community Member", or anniversary milestones).
- Publicly visible on user profiles.'
parameters:
- name: page
in: query
required: false
description: Pagination page index.
schema:
type: integer
responses:
'200':
description: successful
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Badge'
operationId: getApiBadges
x-operation-id-source: derived
post:
summary: Create a badge
tags:
- Badges
description: 'Create a new badge. Requires administrator privileges.
### Body Parameter Guidelines:
- **title**: Unique name for the badge.
- **description**: Text explanation of the achievement.
- **remote_badge_image_url**: Public URL to an image asset (PNG, GIF, or SVG) representing the badge icon.
- **allow_multiple_awards**: Set to `true` if a user can earn the same badge multiple times (e.g. weekly challenges).'
parameters: []
responses:
'201':
description: created
content:
application/json:
schema:
$ref: '#/components/schemas/Badge'
requestBody:
content:
application/json:
schema:
type: object
properties:
badge:
type: object
properties:
title:
type: string
description:
type: string
remote_badge_image_url:
type: string
credits_awarded:
type: integer
allow_multiple_awards:
type: boolean
required:
- title
- description
- remote_badge_image_url
description: Badge properties to create.
operationId: postApiBadges
x-operation-id-source: derived
/api/badges/{id}:
get:
summary: Retrieve a badge's details
tags:
- Badges
description: Retrieve details of a single badge by unique numeric ID.
parameters:
- name: id
in: path
required: true
description: Unique badge ID.
schema:
type: integer
responses:
'200':
description: successful
content:
application/json:
schema:
$ref: '#/components/schemas/Badge'
operationId: getApiBadgesById
x-operation-id-source: derived
patch:
summary: Update a badge
tags:
- Badges
description: Update badge details (title, description, credits awarded, etc.) by unique ID. Requires administrator privileges.
parameters:
- name: id
in: path
required: true
description: Unique badge ID to update.
schema:
type: integer
responses:
'200':
description: successful
content:
application/json:
schema:
$ref: '#/components/schemas/Badge'
requestBody:
content:
application/json:
schema:
type: object
properties:
badge:
type: object
properties:
title:
type: string
description:
type: string
credits_awarded:
type: integer
allow_multiple_awards:
type: boolean
description: Badge properties to update.
operationId: patchApiBadgesById
x-operation-id-source: derived
delete:
summary: Delete a badge
tags:
- Badges
description: Delete a badge configuration from the system by ID. Requires administrator privileges.
parameters:
- name: id
in: path
required: true
description: Unique badge ID to delete.
schema:
type: integer
responses:
'204':
description: no content
operationId: deleteApiBadgesById
x-operation-id-source: derived
components:
schemas:
Badge:
description: Representation of a badge
type: object
properties:
id:
type: integer
format: int64
title:
type: string
slug:
type: string
description:
type: string
badge_image:
type:
- object
- 'null'
properties:
url:
type: string
credits_awarded:
type: integer
allow_multiple_awards:
type: boolean
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
required:
- id
- title
- slug
- description
- created_at
- updated_at
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.