Authentication
BPP supports two authentication methods.
JWT Authentication
JWT (JSON Web Token) authentication is used for user-facing API access — for example, from custom integrations using user credentials.
Obtain a token
POST /api/v1/jwt/create/
Content-Type: application/json
{
"email": "user@example.com",
"password": "yourpassword"
}
Response:
{
"access": "<access_token>",
"refresh": "<refresh_token>"
}
- The
accesstoken is short-lived (minutes to hours). - The
refreshtoken is long-lived and used to obtain new access tokens without re-entering credentials.
Use the token
Include the access token in the Authorization header of every API request:
Authorization: Bearer <access_token>
Refresh the token
POST /api/v1/jwt/refresh/
Content-Type: application/json
{
"refresh": "<refresh_token>"
}
Verify a token
POST /api/v1/jwt/verify/
Content-Type: application/json
{
"token": "<token_to_verify>"
}
Returns 200 OK if the token is valid.
Logout
To invalidate the refresh token:
POST /api/v1/jwt/logout/
Authorization: Bearer <access_token>
Static API Key Authentication
Static API keys are used for automated integrations — for example, custom scripts or scheduled jobs that call the BPP API.
Using the API key
Authorization: Api-Key <your-api-key>
Obtaining an API key
Static API keys are provisioned by your BPP administrator. Contact your administrator to request or rotate a key.
Key rotation
To rotate a static API key:
- Request a new key from your BPP administrator.
- Update all integrations that use the old key.
- Confirm everything is working before decommissioning the old key.
Social Login
BPP supports social login via:
- Google OAuth — for user authentication and for connecting Google Ads accounts.
- Facebook OAuth — for connecting Meta Ads accounts.
Social login for users is handled via the /api/v1/auth/ endpoints. Connection-level OAuth flows (Google Ads, Meta Ads) are initiated from the Connections section of the BPP UI.
Data isolation
All authenticated API requests are automatically scoped to the customer workspace associated with the authenticated user. You cannot access data from other workspaces.