Both APIs use OAuth2 client credentials flow. Every request requires a short-lived Bearer token in theDocumentation Index
Fetch the complete documentation index at: https://docs.venlyfinance.com/llms.txt
Use this file to discover all available pages before exploring further.
Authorization header.
Get an Access Token
Exchange your Client ID and Secret at the token endpoint for your environment:| Environment | URL |
|---|---|
| Staging | https://login-staging.venly.io/auth/realms/VenlyFinance/protocol/openid-connect/token |
| Production | https://login.venly.io/auth/realms/VenlyFinance/protocol/openid-connect/token |
Use the Token
Pass theaccess_token as a Bearer token on every request:
Fundflow API:
Token Refresh
Request a new token before the current one expires. A 30-second buffer is sufficient:401 Unauthorized response means the token has expired — re-authenticate and retry the request once.
Environments
| Staging | Production | |
|---|---|---|
| Token endpoint | login-staging.venly.io | login.venly.io |
| Fundflow API | api-fundflow-staging.venly.io/v1 | api-fundflow.venly.io/v1 |
| Finance API | api-staging.venlyfinance.com/v1 | api.venlyfinance.com/v1 |
Staging credentials and production credentials are separate. Staging calls do not move real funds.
Security
- Store
CLIENT_IDandCLIENT_SECRETin environment variables or a secrets manager — never in source code or version control. - Never log or expose tokens in client-side code.
- Treat a leaked secret as compromised immediately — rotate it via your Venly account and invalidate any outstanding tokens.

