Let's Talk
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.

All operations require an API key, read Authentication.

All operations (except Search content) must be called from a back-end. Cross-origin requests are not allowed.

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

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. Permission: page.edit

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 Darkdown format

categoryTitlestring

To append the page to a category, provide the pre-existing category title here (case insensitive)

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

contentDraftstring

Draft content in the selected format

contentPublishedstring

Published content in the selected format

pathstring

Path of the page without the project basepath (if any)

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. Permission: page.publish

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

contentDraftstring

Draft content in the selected format

contentPublishedstring

Published content in the selected format

pathstring

Path of the page without the project basepath (if any)

403

Access denied

415

Unsupported content-type

429

Too many requests

Response
Copy

Get page by slug

Get a page by slugs and read its content in Darkdown, markdown, HTML, or text 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. Permission: page.read

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: darkdown,markdown,html,text

Default: darkdown

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

contentDraftstring

Draft content in the selected format

contentPublishedstring

Published content in the selected format

pathstring

Path of the page without the project basepath (if any)

403

Access denied

429

Too many requests

Response
Copy

Read page

Read a page including its content in Darkdown, markdown, HTML, or text format. Rate limit: 600 in 1 minute. Permission: page.read

Auth
Path Params
idinteger

Page ID

Query String
formatstring

Format type

Enum: darkdown,markdown,html,text

Default: darkdown

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

contentDraftstring

Draft content in the selected format

contentPublishedstring

Published content in the selected format

pathstring

Path of the page without the project basepath (if any)

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. Permission: page.edit

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 Darkdown 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

contentDraftstring

Draft content in the selected format

contentPublishedstring

Published content in the selected format

pathstring

Path of the page without the project basepath (if any)

403

Access denied

415

Unsupported content-type

429

Too many requests

Response
Copy

Lists all documentation section under version

Lists all documentation sections under the version. This will only list non-deleted documentation sections. Rate limit: 60 in 60 minutes. Permission: project.read

Auth
Path Params
versionIdnumber

The version ID

GET /version/{versionId}/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

publishedboolean

True if it can be viewed by readers

createdstring

Date of creation

updatedstring

Date of last update

slugstring

Slug in the URL

ordrinteger

Numerical order in the version

403

Access denied

429

Too many requests

Response
Copy

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. Permission: project.read

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. Permission: version.publish

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

Read reference

Reads a reference definition. Permission: reference.read. Rate limit: 600 in 60 seconds.

Auth
Path Params
idstring

The reference ID

Query String
draftboolean

Get draft definition

formatstring

Get definition in format

Enum: auto,yaml,json

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

OpenAPI definition

403

Access denied

429

Too many requests

Response
Copy

Publish API reference

Publishes the draft of an API reference. Rate limit: 3600 in 1 hour. Permission: reference.publish

Auth
Path Params
idnumber

The reference ID

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

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

Adds or updates an API reference

Adds or updates an API reference in that version. If the reference title matches one that already existed, then it is updated. Changes are published and do not pass through a draft state. Rate limit: 300 in 60 minutes. Permission: reference.publish

Auth
Path Params
versionIdstring

The version ID

Query String
publishboolean

By default true, set to false to write a draft instead. Permission needed would be reference.edit.

Default: true

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

Get users

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

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

Get all resources

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

Auth
Query String
publishedboolean

When true, only lists published items.

versionIdinteger

The version to get all resources from. Use latest to automatically choose the default version.

GET /all
Copy
Responses
200

OK

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. Permission: audit.read

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

Exports project

Exports the project into a ZIP file. Only available for enterprise plans. Rate limit: 10 in 60 minutes. Permission: project.export

Auth
Query String
formatstring

Format type

Enum: darkdown,markdown

Default: darkdown

version_slugstring

Provide version slug if you wish to export a specific version only

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 access details of all invited readers

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

Auth
GET /reader-access
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
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
Copy

Grant access to reader

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

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
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
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
Copy

Revoke access to reader

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

Auth
Request Body
objectobject

Reader access object

emailstring

Email address of reader

PATCH /reader-access
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
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
Copy