Skip to main content

Authentication

The Animo API uses Laravel Passport (OAuth2) with bearer tokens. Every request to /api/v1/* must include a valid access token.

Sending the token

Include the token in the Authorization header:

Obtaining a token

  1. Sign in to Animo as the user whose data the integration will access.
  2. Open the admin panel and navigate to user API token settings.
  3. Create a new personal access token and select the required scopes.
  4. Copy the token immediately — it is shown only once.
Personal access tokens expire after one year (Passport::personalAccessTokensExpireIn).

OAuth2 authorization code flow

For third-party apps that act on behalf of users:
  1. Register an OAuth client in Passport.
  2. Redirect the user to authorize:
  3. Exchange the authorization code for an access token:
OAuth routes are mounted at /api/oauth.

Token refresh

Authenticated users can refresh tokens via:
(Requires an active web session.)

Default scopes

When creating a token without explicitly selecting scopes, these are granted by default:

All scopes

Note: Scopes leads:read, submissions:read, and meetings:read are registered but have no matching GET endpoints yet.

Plan availability

API access is available on all plans, including Free.

Scope requirements per route group

Routes enforce scopes via middleware. A token must include the scope listed on each endpoint. Webhook endpoints also require the Integrations feature (USE_INTEGRATIONS gate, Pro plan).

Error responses