Skip to main content
Fetches public-safe metadata for an organization by its UUID. Sensitive data (credentials, billing) is never returned.

Endpoint

GET https://app.kash.bot/api/organizations/:id

Path Parameters

id
string
required
The unique organization identifier (UUID format)

Response

organization
object
Organization metadata (public-safe fields only)
_meta
object
Request metadata

Rate Limit

100 requests per minute per IP address

Example Request

curl "https://app.kash.bot/api/organizations/550e8400-e29b-41d4-a716-446655440000"

Example Response

200 - Success
{
  "organization": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "acme-markets",
    "slug": "acme-markets",
    "displayName": "Acme Markets",
    "tagline": "Predict the future with Acme",
    "colorPrimary": "#4FC4FF",
    "logoUrl": "https://cdn.kash.bot/orgs/acme-logo.png",
    "status": "active"
  },
  "_meta": {
    "requestedAt": "2026-03-04T12:00:00Z"
  }
}
404 - Not Found
{
  "error": "Organization not found",
  "message": "No organization exists with ID: 550e8400-e29b-41d4-a716-446655440000",
  "code": "NOT_FOUND"
}
429 - Rate Limit Exceeded
{
  "error": "Too many requests",
  "message": "Rate limit of 100 requests per minute exceeded",
  "code": "RATE_LIMIT_EXCEEDED",
  "retryAfter": 45
}

Response Headers

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1709553660000
Access-Control-Allow-Origin: *

Common Use Cases

Fetch branding for a white-label embed

async function applyOrgBranding(orgId) {
  const { organization } = await fetch(
    `https://app.kash.bot/api/organizations/${orgId}`
  ).then(r => r.json());

  document.documentElement.style.setProperty(
    '--brand-color', organization.colorPrimary
  );

  if (organization.logoUrl) {
    document.getElementById('logo').src = organization.logoUrl;
  }
}