Skip to content

Authentication

Send a key as a bearer token on every request. A key sees what its person sees in one workspace.

curl
curl https://taseli.co.il/api/v1/workspace \
  -H "Authorization: Bearer $TASELI_KEY"

The header is the only way in. A key in the URL is ignored. The API sends no CORS headers: call it from your server, never from a web page.

Two kinds of key

Personal keyOAuth access token
ForYour own scripts, CRM, dashboardsAI apps connected through the consent screen
Made inSettings › AI agentsThe app's sign-in
Looks liketsl_ and 48 hex charactersThe same
ExpiresWhen revokedAfter 1 hour
WebhooksYes, if it isn't read-onlyNo: a webhook outlives its token

Each person can hold up to 20 open personal keys per workspace.

What a key can do

Taseli reads the person's role on every request, so a demotion takes effect on the next call.

RoleReadsWebhooks
Owner, adminYesYes
Manager, analystYesNo: 403
Client roles, members limited to one clientNoNo

A read-only key reads; creating, deleting or testing a webhook with one answers 403 scope. Scopes: read covers every GET, propose covers changing webhooks.

Revoking

Settings › AI agents › Keys and apps. A revoked key stops on the next request, and any webhook it made is paused. A leaked key is read access to the business's ad data and spend, so revoke it at once.

Failures

No key, or a bad one, answers 401 with a WWW-Authenticate header. See Errors.