DBmuse API reference

Every endpoint of the DBmuse REST API, generated from the API itself.

All endpoints are relative to https://api.dbmuse.com. Create an API key in your DBmuse dashboard, then authenticate every request with it.

apiKey HTTP Basic auth carrying only the DBmuse API key secret: Authorization: Basic base64(<key secret>).

accessToken Operator session token issued by the DBmuse dashboard: Authorization: Token <access token>.

Download the OpenAPI specification for use with your own tooling.

Databases

GET/api/databases

List database connections

Lists the database connection entries of your organization. A key is scoped to a single project and only ever sees that project's connections. OAuth and API-key responses are restricted to safe connection metadata and exclude credentials. Existing operator dashboard sessions retain the product's full saved-connection behavior. Requires the databases:read scope.

databases:readapiKeyaccessToken
Parameters
NameInTypeDescription
projectIdquerystring
limitqueryinteger
skipqueryinteger
sortFieldquerystring
sortDirectionquerystring (ASC | DESC)
fieldsquerystringComma-separated projection of fields to return
Responses
StatusMeaning
200Array of database connections
401Missing or invalid credentials
403API key is missing the databases:read scope
429API key rate limit exceeded
POST/api/databases

Create a database connection

Creates a database connection entry. A key writes into its own project only. Requires the databases:write scope.

databases:writeapiKeyaccessToken
Responses
StatusMeaning
200The created database connection
403API key is missing the databases:write scope
GET/api/databases/{databaseId}

Get a database connection

Returns a single database connection by id. Connections belonging to another organization (or, for a key, another project) respond 404. Requires the databases:read scope.

databases:readapiKeyaccessToken
Parameters
NameInTypeDescription
databaseIdrequiredpathstring
Responses
StatusMeaning
200The database connection
404Not found (or owned by another organization)
PUT/api/databases/{databaseId}

Update a database connection

Requires the databases:write scope.

databases:writeapiKeyaccessToken
Parameters
NameInTypeDescription
databaseIdrequiredpathstring
Responses
StatusMeaning
200The updated database connection
DELETE/api/databases/{databaseId}

Delete a database connection

Deleting a connection that belongs to another organization (or, for a key, another project) responds 404. Requires the databases:write scope.

databases:writeapiKeyaccessToken
Parameters
NameInTypeDescription
databaseIdrequiredpathstring
Responses
StatusMeaning
200The deleted database connection
404Not found (or owned by another organization)

Projects

GET/api/projects

List projects

Lists the projects of your organization. A key is scoped to a single project and only ever sees that one. Requires the projects:read scope.

projects:readapiKeyaccessToken
Responses
StatusMeaning
200Array of projects
401Missing or invalid credentials
403API key is missing the projects:read scope
429API key rate limit exceeded
POST/api/projects

Create a project

Requires the projects:write scope.

projects:writeapiKeyaccessToken
Responses
StatusMeaning
200The created project
403API key is missing the projects:write scope
GET/api/projects/{projectId}

Get a project

Returns a single project by id. Projects belonging to another organization (or, for a key, another project) respond 404. Requires the projects:read scope.

projects:readapiKeyaccessToken
Parameters
NameInTypeDescription
projectIdrequiredpathstring
Responses
StatusMeaning
200The project
404Not found (or owned by another organization)
PUT/api/projects/{projectId}

Update a project

Updating a project that belongs to another tenant responds 404. Requires the projects:write scope.

projects:writeapiKeyaccessToken
Parameters
NameInTypeDescription
projectIdrequiredpathstring
Responses
StatusMeaning
200The updated project
404Not found (or owned by another organization)
DELETE/api/projects/{projectId}

Delete a project

Deleting a project that belongs to another tenant responds 404. Requires the projects:write scope.

projects:writeapiKeyaccessToken
Parameters
NameInTypeDescription
projectIdrequiredpathstring
Responses
StatusMeaning
200The deleted project
404Not found (or owned by another organization)

Webhook subscriptions

GET/api/webhooksubscriptions

List webhook subscriptions

Webhook subscriptions deliver database.created, database.updated, database.deleted, project.created, project.updated and project.deleted events to your server as signed POST requests (X-Dbmuse-Signature: t=<timestamp>,v1=<hex HMAC-SHA256 of "timestamp.body">). An endpoint failing 20 times in a row is disabled automatically. Subscriptions are managed with an operator access token; the secret is only returned once, on create.

accessToken
Responses
StatusMeaning
200Array of webhook subscriptions (without secrets)
POST/api/webhooksubscriptions

Create a webhook subscription

The response includes the signing secret exactly once — store it; it cannot be retrieved again.

accessToken
Request body
FieldTypeDescription
projectIdrequiredstring
urlrequiredstring
eventsarray (database.created | database.updated | database.deleted | project.created | project.updated | project.deleted)Empty array subscribes to all events
Responses
StatusMeaning
200The created subscription, including its secret
PUT/api/webhooksubscriptions/{webhookSubscriptionId}

Update a webhook subscription

url, events and active are editable; the secret and project are immutable. Re-enabling an auto-disabled endpoint is done by setting active back to true.

accessToken
Parameters
NameInTypeDescription
webhookSubscriptionIdrequiredpathstring
Responses
StatusMeaning
200The updated subscription (without secret)
DELETE/api/webhooksubscriptions/{webhookSubscriptionId}

Delete a webhook subscription

accessToken
Parameters
NameInTypeDescription
webhookSubscriptionIdrequiredpathstring
Responses
StatusMeaning
200Deleted