DeveloperHub Reader Access API
Grants, lists and revokes access for invited readers of a private documentation project, keyed on email address — 3 operations.
Grants, lists and revokes access for invited readers of a private documentation project, keyed on email address — 3 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-reader-access-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 Documentation Reader Access 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: []
paths:
/reader-access:
get:
tags:
- Reader Access
summary: Get access details of all invited readers
description: 'Get access details of all invited readers. Rate limit: 3600 in 60 minutes.'
operationId: get_reader_access
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:
type: array
items:
$ref: '#/components/schemas/ReaderAccess'
description: Reader access details
'400':
description: Client Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'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
post:
tags:
- Reader Access
summary: Grant access to reader
description: 'Grants access to reader. Only applicable when project is protected by "Email Invite".
Rate limit: 100 in 60 minutes.'
operationId: create_reader_access
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Reader access object
required:
- email
properties:
email:
type: string
description: Email address of reader
example: peter@example.com
expiresAt:
type:
- string
- 'null'
description: Date of expiry in Y-m-d\TH:i:sP format
example: 2022-01-01T03:02:01+0000
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/ReaderAccess'
'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
patch:
tags:
- Reader Access
summary: Revoke access to reader
description: 'Revokes access to reader. Rate limit: 100 in 60 minutes.'
operationId: revoke_reader_access
requestBody:
required: true
content:
application/json:
schema:
type: object
description: Reader access object
required:
- email
properties:
email:
type: string
description: Email address of reader
example: peter@example.com
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/ReaderAccess'
'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
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
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
ReaderAccess:
title: Reader Access
description: Reader Access
required:
- email
- expiresAt
- created
- revoked
type: object
properties:
email:
type: string
description: Reader e-mail address
example: peter@example.com
expiresAt:
type:
- string
- 'null'
description: Date when the access expires. Null if it never expires.
example: 2022-04-20T19:03:14+0000
created:
type: string
description: Date of access creation
example: 2022-03-20T19:02:14+0000
revoked:
type:
- string
- 'null'
description: Date when revoked. Null if not revoked.
example: 2022-03-22T20:02:15+0000
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