Skip to main content
Salfio Docs

Search documentation

Type to search this documentation.

Get the caller's organization

GET/organizationGet the caller's organization

Returns the organization associated with the bearer token. Singleton endpoint — there is no {organizationId} in the path and there is no way for a caller to read a different organization's record.

Today the organization model does not carry per-org plan or rate-limit overrides. The response stubs plan to "free" and populates rateLimits with the system-wide defaults (100 requests/min per org, 50 requests/min per endpoint). When per-org overrides land the same wire fields will start reflecting per-org values — the response shape is forwards-compatible.

Responses

200Organization record.application/json

Headers

X-RateLimit-Limit

The request cap for the tighter of the per-organization / per-endpoint windows that applied to this request.

X-RateLimit-Remaining

Requests remaining in the current window.

X-RateLimit-Reset

Unix timestamp (seconds) when the current window resets.

value
allOf · 2 options
Option 1objectEnvelope
datavaluerequired

The response payload — shape depends on the endpoint.

metaobjectrequired

Pagination metadata — populated on list endpoints, empty on single-resource endpoints.

Show child attributes
cursornull | string

Opaque cursor to pass to the next request.

hasMoreboolean | null

True when further pages of results are available.

Option 2object
dataobject

The caller's organization. `plan` and `rateLimits` currently return stubbed defaults (`"free"` and the system-wide caps); see the description on `GET /organization` for the gap.

Show child attributes
createdAtstring · date-timerequired
defaultCurrencystringrequired

Three-letter ISO-4217 currency used for revenue displays.

defaultTimezonestringrequired

IANA timezone used for report aggregation.

idstring · uuidrequired
namestringrequired
planstringrequired

Billing plan. Read-only on the public API.

rateLimitsobjectrequired

Rate-limit caps applying to the organization. Currently reflects the system defaults; per-organization overrides are a tracked follow-up.

Show child attributes
endpointPerMinuteintegerrequired

Requests per minute for any single endpoint.

organizationPerMinuteintegerrequired

Requests per minute across the entire organization.

slugnull | string

URL-friendly short identifier. Read-only on the public API.

updatedAtstring · date-timerequired
Example response
{
  "data": {
    "createdAt": "2026-06-09T00:00:00Z",
    "defaultCurrency": "EUR",
    "defaultTimezone": "Europe/Amsterdam",
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "Acme Inc.",
    "plan": "free",
    "rateLimits": {
      "endpointPerMinute": 50,
      "organizationPerMinute": 100
    },
    "slug": "acme",
    "updatedAt": "2026-06-09T00:00:00Z"
  },
  "meta": {
    "cursor": "string",
    "hasMore": true
  }
}
401Missing or invalid bearer token. The message is intentionally opaque — do not rely on it to distinguish "missing" from "invalid".application/json
objectErrorEnvelope
errorobjectrequired
Show child attributes
codestringrequired

Machine-readable error category.

one of "unauthorized", "forbidden", "not_found", "invalid_argument", "conflict", "rate_limited", "internal_error", "not_implemented"

detailsobject

Optional per-code context (field names, retry windows, …).

messagestringrequired

Human-readable description — intended for operator logs, not end-user display.

Example response
{
  "error": {
    "code": "unauthorized",
    "message": "Authentication required"
  }
}
429Per-organization or per-endpoint rate limit exceeded.application/json

Headers

Retry-After

Seconds the client should wait before retrying.

objectErrorEnvelope
errorobjectrequired
Show child attributes
codestringrequired

Machine-readable error category.

one of "unauthorized", "forbidden", "not_found", "invalid_argument", "conflict", "rate_limited", "internal_error", "not_implemented"

detailsobject

Optional per-code context (field names, retry windows, …).

messagestringrequired

Human-readable description — intended for operator logs, not end-user display.

Example response
{
  "error": {
    "code": "rate_limited",
    "details": {
      "retry_after_seconds": 30
    },
    "message": "Rate limit exceeded"
  }
}

Documentation menu