Skip to main content
Every Blend API request is authenticated with a JWT bearer token. You get one by posting your Blend credentials to /api/v1/auth/login, which returns both an access_token (valid 60 minutes) and a refresh_token (valid 7 days). Send the access token as Authorization: Bearer {access_token} on every subsequent call. The base URL is https://api.byblend.com.

Get a token

Use the returned access_token on everything else:

Refresh before you expire

When the access token expires, call /api/v1/auth/refresh to get a new one without re-sending credentials.
The refresh endpoint expects the refresh token in the Authorization header — not the access token. Sending the access token here is the single most common integration mistake.
Refresh on a timer or on a 401, rather than logging in fresh for every request. A 60-minute access token comfortably covers a batch job; a 7-day refresh token covers a week of unattended operation.

Check a token without spending a request

GET /api/v1/auth/verify returns whether the current token is still valid, along with the user it belongs to — useful for health checks and for confirming which Blend account an integration is running as.

Service accounts

Create a dedicated Blend user for your integration rather than authenticating as a person. Integration activity then shows up distinctly in order history and audit trails, and a staff member leaving your organization never breaks your pipeline.

Generate token

POST /auth/login

Refresh access token

POST /auth/refresh

Verify access token

GET /auth/verify