Endpoint
All API requests go to:application/json bodies containing a query string and an optional variables object.
Authentication
Beebole uses API key authentication. Include your API key as a request header namedapikey:
Open your API key
In Beebole, click the button with your initials at the bottom of the left sidebar, then click API Key.
Copy your API key
Beebole creates one API Key automatically the first time you open this panel. Click Copy to copy it to the clipboard.
Making a request
A GraphQL request is a POST with a JSON body containing aquery field (and optionally variables). Here is a minimal example using curl:
Queries and mutations
The Beebole API uses standard GraphQL conventions:- Queries read data without side effects. Use them to fetch people, projects, tasks, time records, expense records, and more.
- Mutations write data. Use them to create, update, archive, or delete entities.
- Queries — all available read operations
- Mutations — all available write operations
- Schema explorer — how to explore the schema with introspection and a GraphQL client
Error handling
GraphQL responses follow the standard shape: results come back underdata, and any operation-level errors come back in an errors array.
Authentication errors
If theapikey header is missing or invalid, Beebole cannot resolve the linked person. You may see one of these authentication messages in the errors array:
| Message | Cause |
|---|---|
APIKeyError:InvalidKey | The API key is missing or not recognized |
APIKeyError:CantFindLinkedAccount | The person linked to this key no longer exists |
APIKeyError:CantFindLinkedOrganisation | The organization linked to this key no longer exists |
Permission handling
Beebole resolves permissions per operation. If a request asks for data or an action the linked person is not authorized for, Beebole omits the affected fields fromdata and lists their paths in a permissionsErrors array, rather than failing the whole request:
402 Payment Required and an AccountIsInactive error. Browser sessions are not blocked the same way, so this only affects API access.
Rate limits
Beebole does not apply a general rate limit to GraphQL API traffic. Rate limiting is reserved for a small set of sensitive operations — such as sign-in, sign-up, inviting people, and loading public holidays — which are not part of a typical integration workflow. For very high request volumes, batch related operations into fewer requests where possible, and contact support@beebole.com if you have specific throughput needs.Related content
Queries
All available GraphQL read operations in the Beebole API.
Mutations
All available GraphQL write operations in the Beebole API.
Custom Integrations
Build custom workflows and integrations using the API.
Frequently asked questions
Can I use any programming language with the API?
Can I use any programming language with the API?
Yes. The API is standard GraphQL over HTTPS. Any language with an HTTP client — Python, JavaScript, Ruby, Go, Java, and others — can make requests.
Where do I find my API key?
Where do I find my API key?
In Beebole, click the button with your initials at the bottom of the left sidebar, then click API Key. Beebole creates the key automatically, and you can Copy or Reset it from that panel.
Can I use the API to read and write time records?
Can I use the API to read and write time records?
How do I explore the API schema?
How do I explore the API schema?
The Beebole API supports GraphQL introspection, so any standard GraphQL client can fetch the full schema — types, queries, mutations, and their arguments. See the Schema explorer page for how to connect a GraphQL client.