DeveloperHub Changelog API
Creates and lists changelog posts from Markdoc content, with cursor pagination and named API-key permissions (changelog.edit, changelog.read) — 2 operations.
Creates and lists changelog posts from Markdoc content, with cursor pagination and named API-key permissions (changelog.edit, changelog.read) — 2 operations.
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/developerhub-changelog-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: DeveloperHub.io Changelog API
description: API to manage your %product% resources programmatically. Using these APIs, you are able
to manage pages, integrate with CI/CD, and retrieve resources among other operations.
version: 1.1.0
contact:
name: DeveloperHub
url: https://docs.developerhub.io/api/ref
servers:
- url: https://api.developerhub.io/api/v1
variables: {}
security:
- Api-Key: []
tags:
- name: Changelog
description: Operations for creating and listing changelog posts.
paths:
/changelog/{id}/post:
post:
tags:
- Changelog
summary: Create a changelog post
description: 'Creates a changelog post from Markdoc content, optionally publishing it immediately.
The slug is generated from the title if not provided. Permission: `changelog.edit`. Rate limit:
10800 in 1 hour.'
operationId: create_changelog_post
parameters:
- name: id
in: path
description: Changelog ID
required: true
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Changelog post object
properties:
title:
type: string
description: Title of the changelog post
example: 26 May 2026
content:
type: string
description: Contents of the post in [Markdoc format](https://docs.developerhub.io/support-center/exporting-documentation#markdoc)
example: 'We just shipped **2.0**
## Highlights
- Faster search
'
slug:
type: string
description: Slug in the URL. Must match `^[a-zA-Z0-9-]+$`. Generated from the title
if not provided
example: 26-may-2026
published:
type: boolean
description: Publish the post immediately
default: false
required:
- title
- content
responses:
'200':
description: OK
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ChangelogPost'
'400':
description: Client Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDenied'
'415':
description: Unsupported content-type
content:
application/json:
schema:
$ref: '#/components/schemas/UnsupportedContentType'
'429':
description: Too many requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
deprecated: false
get:
tags:
- Changelog
summary: List changelog posts
description: 'Lists a changelog''s posts, newest first. Returns the 10 most recent posts by default;
use `cursor` to page. Permission: `changelog.read`. Rate limit: 600 in 60 seconds.'
operationId: list_changelog_posts
parameters:
- name: id
in: path
description: Changelog ID
required: true
schema:
type: integer
- name: count
in: query
schema:
type: integer
default: 10
description: Number of posts to retrieve. Maximum is 50
example: 10
required: false
- name: cursor
in: query
schema:
type: string
description: Cursor for next page of results
example: XAr
required: false
responses:
'200':
description: OK
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
content:
application/json:
schema:
$ref: '#/components/schemas/ChangelogPostList'
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/AccessDenied'
'429':
description: Too many requests
content:
application/json:
schema:
$ref: '#/components/schemas/TooManyRequests'
deprecated: false
components:
headers:
X-RateLimit-Limit:
description: Requests permitted until reset time
schema:
type: integer
example: 300
X-RateLimit-Remaining:
description: Requests consumed in current period
schema:
type: integer
example: 253
X-RateLimit-Reset:
description: Unix timestamp at which requests consumed will reset
schema:
type: integer
example: 1611530395
schemas:
AccessDenied:
title: AccessDenied
type: object
properties:
error:
type: object
properties:
message:
type: string
description: Message of the error
example: Access Denied
httpCode:
type: number
description: HTTP code returned
example: 403
code:
type: number
description: Internal error code
example: 403
ChangelogPost:
title: Changelog Post
description: Changelog post object
required:
- id
- title
- slug
- published
- content
- created
- updated
type: object
properties:
id:
type: integer
description: Unique identifier
example: 4821
title:
type: string
description: Title of the changelog post
example: 26 May 2026
slug:
type: string
description: Slug in the URL
example: 26-may-2026
published:
type: boolean
description: True if the post is published
example: true
content:
type:
- string
- 'null'
description: Contents of the post in Markdoc format. Null if the post has no content.
example: We just shipped **2.0**
created:
type: string
description: Date of creation
example: 2026-06-02T19:02:14+0000
updated:
type: string
description: Date of last update
example: 2026-06-02T19:02:14+0000
ChangelogPostList:
title: Changelog Post List
description: Paginated list of changelog posts
type: object
required:
- posts
- count
- total
- cursor
properties:
posts:
type: array
items:
$ref: '#/components/schemas/ChangelogPost'
count:
type: integer
description: Number of posts retrieved
example: 10
total:
type: integer
description: Total number of posts in the changelog
example: 42
cursor:
type:
- string
- 'null'
description: Cursor for next page of results. Null value if there are no more results
example: XAr
Error:
title: Error
type: object
properties:
message:
type: string
description: Message of the error
example: No file provided.
httpCode:
type: number
description: HTTP code returned
example: 400
code:
type: number
description: Internal error code
example: 400
TooManyRequests:
title: TooManyRequests
type: object
properties:
error:
type: object
properties:
message:
type: string
description: Message of the error
example: You exceeded the rate limit
httpCode:
type: number
description: HTTP code returned
example: 429
code:
type: number
description: Internal error code
example: 9
UnsupportedContentType:
title: UnsupportedContentType
type: object
properties:
error:
type: object
properties:
message:
type: string
description: Message of the error
example: Unsupported content-type 'form'. Supported content-type is 'application/json'.
httpCode:
type: number
description: HTTP code returned
example: 415
code:
type: number
description: Internal error code
example: 415
securitySchemes:
Api-Key:
type: apiKey
description: 'Generate an API Key from [DeveloperHub.io platform](https://app.developerhub.io) and
provide it in the header such as `--header "X-Api-Key: <api-key>"` for cURL for all the requests
requiring this authentication.'
name: X-Api-Key
in: header