Account API
REST interface for your tenant: contacts, documents, banking, and service. Clear auth, rate limits, and an exportable schema for your own clients.
Base URL
https://api.jupiter-erp.com/api/account/…
Quick start
- 1
Create an API token
In the Jupiter ERP panel under Profile → API & MCP, generate a personal token.
- 2
Note your account UUID
Find the tenant UUID in account settings: every request needs the X-Account-Uuid header.
- 3
Send your first request
With Bearer token and account UUID, fetch tenant data (GET /api/account), for example.
curl -X GET 'https://api.jupiter-erp.com/api/account' \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'X-Account-Uuid: YOUR_ACCOUNT_UUID' \
-H 'Accept: application/json'MCP
With the same token, an agent uses the Account API. The connection is POST /api/mcp with a bearer token and the X-Account-Uuid header. Subscription, users, and the Jupiter AI assistant stay in the panel. The per-minute limits match the Account API. The counters are separate.
Request headers
Missing required fields → HTTP 401 or 403.
| Header | Required | Description | Example |
|---|---|---|---|
| Authorization | yes | Bearer token from profile settings. | Bearer {API-Token} |
| X-Account-Uuid | yes | UUID of the Jupiter ERP tenant the request applies to. | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx |
| Accept | no | Recommended: application/json for JSON responses. | application/json |
| Accept-Language | no | Preferred language for error messages and validated text (e.g. de, en). If omitted, the user's panel language applies. | en |
| Content-Type | no | For POST, PUT, and PATCH with a JSON body: application/json. | application/json |
Response headers
Rate limit information is included with every response.
| Header | Description | Example |
|---|---|---|
| Content-Type | Response format; application/json for JSON endpoints. | — |
| X-RateLimit-Limit | Maximum number of requests in the current window for the applicable limit. | — |
| X-RateLimit-Remaining | Remaining requests in the current window. | — |
| Retry-After | Only on HTTP 429: wait time in seconds before retrying the request. | — |
Rate limits
To protect the platform, a per-minute request limit applies. Two independent counters apply at once: the lower limit wins.
API token
300 requests / minute
Applies to all requests with the same Bearer token.
Tenant (X-Account-Uuid)
600 requests / minute
Sum of all tokens and integrations on the same tenant.
These limits apply to the standard plans. Custom plans can include higher limits, an SLA, and other operational agreements.
HTTP 429: Too many requests
- Response status HTTP 429 Too Many Requests.
- The Retry-After header gives the recommended wait time in seconds.
- Use exponential backoff and avoid parallel burst load on a single token.
- If you need sustained higher throughput, contact us before rollout.
Error responses
Errors are returned as JSON. Besides the HTTP status, the body usually includes a readable message; validation errors also include structured errors.
{
"message": "The given data was invalid.",
"errors": {
"email": ["The email field is required."]
}
}- message may be localized when Accept-Language is set.
- errors is an object with field names and lists of hints (typical for HTTP 422).
- HTTP 403 may mean the tenant is locked or the token lacks permission for the action.
Pagination
List endpoints return entries in data and metadata in meta. Control via query parameters page and per_page (defaults per endpoint in the reference).
Query parameters
Fields in meta
{
"data": [ … ],
"meta": {
"current_page": 1,
"last_page": 5,
"per_page": 25,
"total": 112,
"items_from": 1,
"items_to": 25
}
}Downloads
Full schema and Postman collection, the same basis as this reference.
Data format
Consistent conventions across all endpoints.
- JSON
- Request and response body as application/json
- Money amounts
- always in cents (450 = 4.50 EUR)
- Timestamps
- ISO 8601 (UTC)
- HTTPS
- production only over TLS
HTTP status codes
Common responses at a glance.
- 200 / 201
- Success (201 for newly created resources)
- 400
- Invalid request
- 403
- No permission or tenant unavailable
- 404
- Resource not found
- 409
- Conflict (e.g. duplicate)
- 412
- Precondition not met
- 419
- Security check failed
- 422
- Validation failed
- 424
- Dependency failed
- 429
- Rate limit exceeded
Popular endpoints
Entry points for common operations. Full list under Endpoints.
- getGet current account information/api/account
- getList account contacts/api/account/contacts
- postCreate contact/api/account/contacts
- getList Invoices/api/account/invoices
- getList Bank Accounts/api/account/bank-accounts
- getList Bank Transactions/api/account/bank-transactions
- getList automatic assignment suggestions for open bank transactions/api/account/bank-transactions/assignment-suggestions
Planning an integration?
We support design, staging access, and production rollout of your integration.