API reference¶
Use the Braidplane API for automation and direct integrations. Most resources belong to an organization, and pipeline resources also name a project and environment in the URL.
This page explains the common conventions. The OpenAPI specification is the complete reference for paths, request bodies, response schemas, and validation rules.
Base URL¶
Use the API host for your Braidplane environment, without an /api suffix:
| Environment | Base URL |
|---|---|
| Staging | https://api.staging.braidplane.com |
| Production | https://api.braidplane.com |
Braidplane Alpha runs in staging. The production API is not available yet; use the staging API with test data. The public documentation's OpenAPI link describes that available staging API.
The app host is for browser sessions. Do not send API tokens to it.
Authentication¶
Send a personal access token or organization API key as a bearer token:
Authorization: Bearer <token>
Personal access tokens act as you and use your current workspace membership and permissions. Organization API keys are machine identities for automation. Give either credential only the permissions it needs, and keep it out of source files, pipeline specifications, logs, and support messages.
Create a personal access token under Account → Security → Personal access tokens. Organization administrators can create API keys with the API or CLI. The raw value is shown once.
Make a request¶
This example fetches one workspace. read -s keeps the token out of shell
history and off the screen:
export BRAIDPLANE_API_URL='https://api.staging.braidplane.com'
export BRAIDPLANE_ORG='<workspace-slug>'
read -r -s -p 'Braidplane token: ' BRAIDPLANE_TOKEN
printf '\n'
curl --fail-with-body --silent --show-error \
--header "Authorization: Bearer $BRAIDPLANE_TOKEN" \
"$BRAIDPLANE_API_URL/organizations/$BRAIDPLANE_ORG"
unset BRAIDPLANE_TOKEN
A successful response is JSON describing the workspace and its trial or plan. Use external slugs from API responses and URLs; internal database IDs are not part of the public contract.
Common resource paths¶
| Task | Method and path |
|---|---|
| Get a workspace | GET /organizations/{organization} |
| List data sources | GET /organizations/{organization}/data-sources |
| Test a saved data source | POST /organizations/{organization}/data-sources/{data_source}/test-connection |
| List pipelines | GET /organizations/{organization}/projects/{project}/pipelines |
| Validate a pipeline | POST /organizations/{organization}/projects/{project}/environments/{environment}/pipeline-validation |
| Execute a deployed pipeline | POST /organizations/{organization}/projects/{project}/environments/{environment}/pipelines/{pipeline}:execute |
| List runs | GET /organizations/{organization}/projects/{project}/environments/{environment}/runs |
The OpenAPI specification lists required bodies, permissions, and every response for these routes.
Pagination¶
List endpoints accept limit and cursor. Start without a cursor. When a
response has has_more: true, pass its next_cursor to fetch the next page.
Some lists also accept sort_by, order, and direction; use only the values
listed for that endpoint in OpenAPI.
Errors¶
Errors use a common JSON wrapper:
{
"error": {
"code": "ENTITY_NAME_INVALID",
"message": "Entity name must be between 1 and 100 characters",
"request_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
Use code for program logic, show message to a person, and keep request_id
when contacting support. Validation errors can also include field-level
details. Never expose your bearer token in a support request.
Pipeline request behavior¶
- Select project environments explicitly for environment-aware validation, deployment, binding, and run operations.
- An accepted execution is asynchronous. Keep the returned run slug and poll
its run resource until it reaches
succeeded,failed, orcanceled. - Handle validation, authentication, authorization, missing-resource, and conflict responses according to the status and schema in the OpenAPI document.