BeeL
Get StartedVeriFactuStripeAPI Reference
Companies

Create API key scoped to a company

Creates an API key that authenticates directly as this company. The created key cannot have more scopes than the parent key.

The optional environment field selects the new key's environment. When omitted the key inherits the parent key's environment. A live (PRODUCTION) parent may issue test (SANDBOX) keys, but a test parent cannot issue live keys — that request is rejected with 400 error.code=ENVIRONMENT_ESCALATION.


Try this endpoint with Claude
Copy the prompt for any assistant, or open it directly in Claude Code (needs it installed).
POST
/v1/companies/{company_id}/api-keys
AuthorizationBearer <token>

API Key authentication.

Format: Authorization: Bearer beel_sk_<key>

Scopes: API Keys use the same scopes as OAuth2 tokens. Each key is created with specific scopes that limit which endpoints it can access. The required scope for each endpoint is documented in the operation's security section under OAuth2.

Obtaining Keys: API Keys are managed from the BeeL dashboard

Security: API Keys are secret credentials. Do not share them or store them in source code

In: header

Path Parameters

company_idstring
Formatuuid
namestring

Descriptive name for the API key

environment?string

Target environment for the key (PRODUCTION = beel_sk_live_*, SANDBOX = beel_sk_test_*). Optional; when omitted the key inherits the parent key's environment.

A live (PRODUCTION) parent key may issue test (SANDBOX) keys, but a test parent key cannot issue live keys (rejected, no privilege escalation).

Value in"PRODUCTION" | "SANDBOX"
permissions?array<string>

Scopes for the key (cannot exceed parent key scopes)

expires_in_days?integer

Expiration in days (optional)

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://app.beel.es/api/v1/companies/497f6eca-6276-4993-bfeb-53cbbbba6f08/api-keys" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "success": true,
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "string",
    "key": "string",
    "prefix": "string",
    "environment": "string",
    "permissions": [
      "string"
    ],
    "expires_at": "2019-08-24T14:15:22Z"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "BAD_REQUEST",
    "message": "Invalid request"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}
{
  "success": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal server error"
  },
  "meta": {
    "timestamp": "2025-01-15T10:30:00Z",
    "request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
  }
}