DeveloperHub LogoMade in DeveloperHub

API to manage your DeveloperHub resources programmatically. Using these APIs, you are able to manage pages, integrate with CI/CD, and retrieve resources among other operations.

Server
https://api.developerhub.io/api/v1
Server Variables
apiKey Api-Key

Generate an API Key from DeveloperHub.io platform and provide it in the header such as --header "X-Api-Key: <api-key>" for cURL for all the requests requiring this authentication.

Fields
KeyIn
X-Api-KeyHeader

Page

Operations for creating, reading, updating, publishing, and deleting pages.

Get page by slug

Get a page by slugs and read its content in Markdoc or a derived format. Rate limit: 60 in 1 minute.

Either version_id or version_slug must be provided. Either documentation_id or documentation_slug must be provided.

Auth
Query String
version_idinteger

Version ID.

version_slugstring

Version Slug.

documentation_idinteger

Documentation ID.

documentation_slugstring

Documentation Slug.

page_slugstring

Page Slug.

formatstring

Format type

Enum: markdoc,markdown,html,text

Default: markdoc

GET /page
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Pageobject

Page object

idinteger

Unique identifier

listedboolean

True if it can be viewed by readers if the version is published

titlestring

Title of the page

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

pathstring

Path of the page as version, documentation and page slugs

contentDraftstring?

Draft content in the selected format. Null if the page has no draft

contentPublishedstring?

Published content in the selected format. Null if never published

403

Access denied

429

Too many requests

Response
Copy

Read page

Read a page including its content in Markdoc or a derived format. Rate limit: 600 in 1 minute.

Auth
Path Params
idinteger

Page ID

Query String
formatstring

Format type

Enum: markdoc,markdown,html,text

Default: markdoc

GET /page/{id}
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Pageobject

Page object

idinteger

Unique identifier

listedboolean

True if it can be viewed by readers if the version is published

titlestring

Title of the page

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

pathstring

Path of the page as version, documentation and page slugs

contentDraftstring?

Draft content in the selected format. Null if the page has no draft

contentPublishedstring?

Published content in the selected format. Null if never published

403

Access denied

429

Too many requests

Response
Copy

Update a page

Updates a page title, slug or draft contents. Rate limit: 10800 in 1 hour.

Auth
Path Params
idinteger

Page ID

Request Body
objectobject

Page object

titlestring

Title of the page

slugstring

Slug in the URL. Generated if it was not provided

contentstring

Draft contents of the page in Markdoc format

messagestring

Page history message

Default: Updated using API

PUT /page/{id}
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Pageobject

Page object

idinteger

Unique identifier

listedboolean

True if it can be viewed by readers if the version is published

titlestring

Title of the page

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

pathstring

Path of the page as version, documentation and page slugs

contentDraftstring?

Draft content in the selected format. Null if the page has no draft

contentPublishedstring?

Published content in the selected format. Null if never published

403

Access denied

415

Unsupported content-type

429

Too many requests

Response
Copy

Delete a page

Deletes a page and removes it from the navigation index. Rate limit: 10800 in 1 hour.

Auth
Path Params
idinteger

Page ID

DELETE /page/{id}
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
objectobject

Empty object

403

Access denied

429

Too many requests

Response
Copy

Create a page

Creates a page with draft contents. To insert in a pre-existing category, set the categoryTitle. Rate limit: 10800 in 1 hour.

Auth
Path Params
idinteger

Documentation ID

Request Body
objectobject

Page object

titlestring

Title of the page

slugstring

Slug in the URL. Generated if it was not provided

contentstring

Draft contents of the page in Markdoc format

categoryTitlestring

To create the page inside a category, provide the pre-existing category title here (case insensitive). The page is added after the category's existing pages.

messagestring

Page history message

Default: Created using API

POST /documentation/{id}/page
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Pageobject

Page object

idinteger

Unique identifier

listedboolean

True if it can be viewed by readers if the version is published

titlestring

Title of the page

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

pathstring

Path of the page as version, documentation and page slugs

contentDraftstring?

Draft content in the selected format. Null if the page has no draft

contentPublishedstring?

Published content in the selected format. Null if never published

403

Access denied

415

Unsupported content-type

429

Too many requests

Response
Copy

Publish a page

Publishes a page from its draft contents. Rate limit: 10800 in 1 hour.

Auth
Path Params
idinteger

Page ID

PUT /page/{id}/publish
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Pageobject

Page object

idinteger

Unique identifier

listedboolean

True if it can be viewed by readers if the version is published

titlestring

Title of the page

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

pathstring

Path of the page as version, documentation and page slugs

contentDraftstring?

Draft content in the selected format. Null if the page has no draft

contentPublishedstring?

Published content in the selected format. Null if never published

403

Access denied

415

Unsupported content-type

429

Too many requests

Response
Copy

Documentation

Operations for listing documentation sections.

Lists documentation sections in a version

Lists all documentation sections in a version. Rate limit: 60 in 60 minutes.

Auth
Path Params
idinteger

Version ID

GET /version/{id}/documentation
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Documentationarray[object]

OK

idinteger

Unique identifier

titlestring

Title of the documentation section

slugstring

Slug in the URL

descriptionstring?

Description of the documentation section

createdstring

Date of creation

updatedstring

Date of last update

pagesUpdatedstring?

Date of last update to any page in the section

ordrinteger

Numerical order in the version

publishedboolean

True if it can be viewed by readers

collapsedboolean

True if the section's navigation starts collapsed

wideboolean

True if pages render in wide layout

stickyboolean

True if the section navigation is sticky

localestring

Locale of the section

showPagesLastUpdatedboolean

True if pages show their last update date

showPagesLastUpdateUserboolean

True if pages show who last updated them

hasExpandableCategoriesboolean

True if navigation categories are expandable

403

Access denied

429

Too many requests

Response
Copy

Version

Operations for listing, updating, and reporting on project versions.

Lists all project versions

Lists all project versions that are accessible through the API Key. This will only list non-deleted versions. Rate limit: 60 in 60 minutes.

Auth
GET /version
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Versionarray[object]

OK

idinteger

Unique identifier

publishedboolean

True if it can be viewed by readers

namestring

Name of the version

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

ordrinteger

Numerical order in the project

403

Access denied

429

Too many requests

Response
Copy

Update a version

Updates a version. Enables you to publish or unpublish a version. Rate limit: 3600 in 1 hour.

Auth
Path Params
idinteger

Version ID

Request Body
objectobject

Version object

namestring

Name of the version

slugstring

Slug in the URL

publishedboolean

True if it can be viewed by readers

PUT /version/{id}
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Versionobject

Version object

idinteger

Unique identifier

publishedboolean

True if it can be viewed by readers

namestring

Name of the version

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

ordrinteger

Numerical order in the project

403

Access denied

415

Unsupported content-type

429

Too many requests

Response
Copy

Get version content report

Reports every page in the version with its creation and last-update details. Rate limit: 60 in 60 minutes.

Auth
Path Params
idinteger

Version ID

Query String
created_by_emailstring

Only include pages created by the user with this email address

GET /version/{id}/report
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Version Report Pagearray[object]

OK

idinteger

Page ID

titlestring

Title of the page

hasDraftboolean

True if the page has unpublished draft changes

listedboolean

True if the page is accessible for readers

sourceCreatedstring

Date the page was originally created, tracked through version duplication to the original page

sourceCreatedByobject

User attribution in a version report

idinteger?

User ID. Null if unknown

emailstring?

User e-mail address. Null if unknown

namestring?

User name. Null if unknown

createdstring

Date of creation in this version

createdByobject

User attribution in a version report

idinteger?

User ID. Null if unknown

emailstring?

User e-mail address. Null if unknown

namestring?

User name. Null if unknown

updatedstring

Date of last update

updatedByobject

User attribution in a version report

idinteger?

User ID. Null if unknown

emailstring?

User e-mail address. Null if unknown

namestring?

User name. Null if unknown

403

Access denied

429

Too many requests

Response
Copy

Reference

Operations for adding, reading, and publishing API reference specifications.

Adds or updates a reference specification

Adds or updates a reference specification in that version. If the reference title matches one that already existed, then it is updated. Rate limit: 300 in 60 minutes.

Auth
Path Params
versionIdstring

The version ID

Query String
publishboolean

Publish the specification immediately. Set to false to import it as a draft to be published later.

Default: true

show_try_it_outboolean

Enable the Try It Out console on the reference

allow_downloadboolean

Allow readers to download the specification

expandableboolean

Show the reference operations as expandable rows

Request Body
objectobject
filefile

The API specification in OpenAPI 2/3 (Swagger) format

POST /version/{versionId}/reference
Copy
Responses
201

Created

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Referenceobject

Reference object

idinteger

Unique identifier

titlestring

Title of the API Reference

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

ordrinteger

Numerical order in the version

400

General Exception

403

Access denied

429

Too many requests

Response
Copy

Read a reference specification

Downloads the raw specification of an API reference in JSON or YAML. Rate limit: 600 in 1 minute.

Auth
Path Params
idinteger

Reference ID

Query String
draftboolean

Read the draft specification instead of the published one

Default: false

formatstring

Format of the returned specification. auto returns it as originally uploaded; json and yaml convert it if needed.

Enum: auto,json,yaml

Default: auto

GET /reference/{id}/definition
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
objectobject

The specification as a JSON document

403

Access denied

404

Draft not found

429

Too many requests

Response
Copy

Publish a reference draft

Publishes the draft specification of an API reference. Fails if the reference has no draft. Rate limit: 300 in 60 minutes.

Auth
Path Params
idinteger

Reference ID

PUT /reference/{id}/publish
Copy
Responses
201

Published

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Referenceobject

Reference object

idinteger

Unique identifier

titlestring

Title of the API Reference

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

ordrinteger

Numerical order in the version

400

General Exception

403

Access denied

429

Too many requests

Response
Copy

Project

Project-level operations such as export, search, audit log, and users.

Exports project

Exports the project into a ZIP file of Markdoc or Markdown files. Only available for enterprise plans. Rate limit: 10 in 60 minutes.

Auth
Query String
formatstring

Format of the exported page files.

Enum: markdoc,markdown

Default: markdoc

version_slugstring

Export only the version with this slug. Omit to export all versions.

GET /export
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
filefile

OK

400

Upgrade Plan

403

Access denied

429

Too many requests

Response
Copy

Get all resources

Returns all pages, documentation, references and versions of your project. Rate limit: 30 in 60 minutes.

Auth
GET /all
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
AllProjectobject

All resources in a project

pageobject

A key-value dictionary mapping of page ID to page details

*object
titlestring

Page title

updatedstring

Date of last update

documentationIdinteger

Documentation ID

listedboolean

True if page is accessible for readers

documentationobject

A key-value dictionary mapping of documentation ID to documentation details

*object
titlestring

Documentation title

versionIdinteger

Version ID

referenceobject

A key-value dictionary mapping of reference ID to reference details

*object
titlestring

Reference title

versionIdinteger

Version ID

versionobject

A key-value dictionary mapping of version ID to version details

*object
namestring

Version title

publishedboolean

True if it can be viewed by readers

403

Access denied

429

Too many requests

Response
Copy

Get audit log

Query the audit log. Only available in enterprise plans. Rate limit: 600 in 60 minutes.

Auth
Query String
scopesarray

Scope of the audit logs.

Enum: content,users,hosting,security,plan,other

Default: ["content"]

max_datestring

Maximum date to retrieve audits in Y-m-d\TH:i:sP format. Note that "+" character must be encoded to "%2B"

hitsinteger

Number of hits to retrieve. Maximum is 100

Default: 20

cursorstring

Cursor for next page of results

GET /audit
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
objectobject
dataarray[object]
ipAddressstring

IP Address of the user who made the change

entitystring

Type of entity.

Enum: page,documentation,reference,version,project,landing-page,index,project-import,project-user

entityIdstring

ID of entity

detailsobject

Changes to the entity

scopestring

Scope of the change

messagestring

Message describing the change

operationstring

Operation of the change

Enum: INS,UPD,DEL,READ,ADD,REM

timestampstring

Date of change

userstring

User making the change

apiKeyboolean

True if change was authenticated through an API Key

countinteger

Number of hits retrieved

totalinteger

Total number of hits retrievable

cursorstring

Cursor for next page of results. Null value if there are no more results

400

Client Error

403

Access denied

429

Too many requests

Response
Copy

Get users

Get all users and their roles. Rate limit: 3600 in 60 minutes.

Auth
GET /users
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Userarray[object]

OK

idinteger

Unique identifier

namestring

User name

emailstring

User e-mail address

rolestring

Role of user

Enum: ADMIN,PUBLISHER,WRITER,REVIEWER

lastActiveAtstring

Date of last time user accessed DeveloperHub

400

Client Error

403

Access denied

429

Too many requests

Response
Copy

Changelog

Operations for creating and listing changelog posts.

Create a changelog post

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.

Auth
Path Params
idinteger

Changelog ID

Request Body
objectobject

Changelog post object

titlestring

Title of the changelog post

contentstring

Contents of the post in Markdoc format

slugstring

Slug in the URL. Must match ^[a-zA-Z0-9-]+$. Generated from the title if not provided

publishedboolean

Publish the post immediately

Default: false

POST /changelog/{id}/post
Copy
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Changelog Postobject

Changelog post object

idinteger

Unique identifier

titlestring

Title of the changelog post

slugstring

Slug in the URL

publishedboolean

True if the post is published

contentstring?

Contents of the post in Markdoc format. Null if the post has no content.

createdstring

Date of creation

updatedstring

Date of last update

400

Client Error

403

Access denied

415

Unsupported content-type

429

Too many requests

Response

List changelog posts

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.

Auth
Path Params
idinteger

Changelog ID

Query String
countinteger

Number of posts to retrieve. Maximum is 50

Default: 10

cursorstring

Cursor for next page of results

GET /changelog/{id}/post
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Changelog Post Listobject

Paginated list of changelog posts

postsarray[object]
idinteger

Unique identifier

titlestring

Title of the changelog post

slugstring

Slug in the URL

publishedboolean

True if the post is published

contentstring?

Contents of the post in Markdoc format. Null if the post has no content.

createdstring

Date of creation

updatedstring

Date of last update

countinteger

Number of posts retrieved

totalinteger

Total number of posts in the changelog

cursorstring?

Cursor for next page of results. Null value if there are no more results

403

Access denied

429

Too many requests

Response

Get access details of all invited readers

Get access details of all invited readers. Rate limit: 3600 in 60 minutes.

Auth
GET /reader-access
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Reader Accessarray[object]

Reader access details

emailstring

Reader e-mail address

expiresAtstring?

Date when the access expires. Null if it never expires.

createdstring

Date of access creation

revokedstring?

Date when revoked. Null if not revoked.

400

Client Error

403

Access denied

429

Too many requests

Response

Grant access to reader

Grants access to reader. Only applicable when project is protected by "Email Invite". Rate limit: 100 in 60 minutes.

Auth
Request Body
objectobject

Reader access object

emailstring

Email address of reader

expiresAtstring?

Date of expiry in Y-m-d\TH:i:sP format

POST /reader-access
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Reader Accessobject

Reader Access

emailstring

Reader e-mail address

expiresAtstring?

Date when the access expires. Null if it never expires.

createdstring

Date of access creation

revokedstring?

Date when revoked. Null if not revoked.

403

Access denied

415

Unsupported content-type

429

Too many requests

Response

Revoke access to reader

Revokes access to reader. Rate limit: 100 in 60 minutes.

Auth
Request Body
objectobject

Reader access object

emailstring

Email address of reader

PATCH /reader-access
Responses
200

OK

Headers
X-RateLimit-Limitinteger

Requests permitted until reset time

X-RateLimit-Remaininginteger

Requests consumed in current period

X-RateLimit-Resetinteger

Unix timestamp at which requests consumed will reset

Body
Reader Accessobject

Reader Access

emailstring

Reader e-mail address

expiresAtstring?

Date when the access expires. Null if it never expires.

createdstring

Date of access creation

revokedstring?

Date when revoked. Null if not revoked.

403

Access denied

415

Unsupported content-type

429

Too many requests

Response