Enterprise organizations need programmatic control over users, projects, and access permissions. Manually onboarding employees through the UI, creating projects for each new team, and managing role assignments across hundreds of users doesnât scale.Documentation Index
Fetch the complete documentation index at: https://docs.abv.dev/llms.txt
Use this file to discover all available pages before exploring further.
How Organization-Scoped APIs Work
Organization-scoped API keys and SCIM endpoints enable enterprise-grade automation:Create organization-scoped API key
Authenticate with Basic Auth
- Username: Public key (starts with
pk-org-...) - Password: Secret key (starts with
sk-org-...)
Call organization management APIs
- Projects: Create, update, delete projects programmatically
- API Keys: Generate project-scoped API keys for applications
- Memberships: Assign users to organizations and projects with specific roles
- SCIM endpoints: Automate user lifecycle management
Integrate with identity providers
- Configure your IdP (Okta, Azure AD, Google Workspace) to use ABVâs SCIM endpoints
- Provide organization-scoped credentials for authentication
- Map IdP user attributes to ABV roles
- Enable automatic provisioning and deprovisioning
Organization Management API
Organization-scoped API keys enable programmatic administration of ABV projects and memberships.Available Endpoints
Project Management
Project Management
- Infrastructure-as-code: Provision projects for new teams or environments
- Multi-tenant deployments: Create customer-specific projects programmatically
- Environment management: Automate creation of staging/production projects
API Key Management
API Key Management
- CI/CD automation: Generate API keys for deployment pipelines
- Key rotation: Programmatically rotate project keys on schedule
- Customer onboarding: Create API keys for new multi-tenant customers
Membership Management
Membership Management
- Bulk role assignments: Update roles for multiple users at once
- Team reorganizations: Reassign project memberships when teams change
- Access audits: Programmatically review and adjust access levels
Example: Programmatically Create a Project
Example: Assign User to Project with Role
OWNER, ADMIN, MEMBER, VIEWER, NONE
Learn more about roles â
SCIM 2.0 User Provisioning
ABV implements SCIM 2.0 (System for Cross-domain Identity Management) for automated user lifecycle management.SCIM Base URL
All SCIM endpoints use this base URL:Authentication
SCIM endpoints use HTTP Basic Authentication with organization-scoped API keys:- Username: Organization public key (
pk-org-...) - Password: Organization secret key (
sk-org-...)
SCIM Endpoints
Service Provider Configuration
Service Provider Configuration
GET /ServiceProviderConfigReturns SCIM service capabilities and configuration (supported operations, authentication schemes, bulk operations support).Use case: IdP autodiscoveryâidentity providers query this endpoint to determine ABVâs SCIM capabilities.Resource Types
Resource Types
GET /ResourceTypesReturns supported SCIM resource types (User, Group, etc.).Use case: IdP configurationâidentity providers determine which resources ABV supports provisioning.Schemas
Schemas
GET /SchemasReturns SCIM schema definitions for User resources, including supported attributes.Use case: Attribute mappingâidentity providers map their user attributes to ABVâs schema.User Provisioning
User Provisioning
NONE by default.Get user:SCIM User Lifecycle
The following diagram shows how user provisioning flows from your identity provider to ABV:User created in identity provider
NONE.Role assignment
User attributes updated
Okta Integration Guide
Okta is a popular enterprise identity provider. This guide covers setting up both authentication (SSO) and user provisioning (SCIM).Okta Authentication (SSO via OIDC)
ABV supports OpenID Connect (OIDC) for Single Sign-On through Okta.Create Okta OIDC application
- Log in to your Okta admin console
- Navigate to Applications > Create App Integration
- Choose OIDC - OpenID Connect as the sign-in method and click Next
- Choose Web Application as the application type and click Next
Configure application settings
- App name:
ABV - Login redirect URIs:
https://your-abv-domain.dev/api/auth/callback/okta- US region:
https://app.abv.dev/api/auth/callback/okta - EU region:
https://eu.app.abv.dev/api/auth/callback/okta
- US region:
- Logout redirect URIs:
https://your-abv-domain.dev/- US region:
https://app.abv.dev/ - EU region:
https://eu.app.abv.dev/
- US region:
Contact ABV support for SSO configuration
- Okta application Client ID
- Okta application Client Secret
- Your Okta domain (e.g.,
company.okta.com)
Test SSO login
- Assign users to your Okta ABV application
- Navigate to ABVâs login page
- Enter your email address
- Youâll be automatically redirected to Okta for authentication
- After successful Okta login, youâre redirected back to ABV logged in
Okta User Provisioning (SCIM)
Automate user lifecycle management by syncing Okta users to ABV.Create Okta SAML/SCIM application
- Log in to your Okta admin console
- Navigate to Applications > Create App Integration
- Choose SAML 2.0 as the sign-in method and click Next
Configure SAML settings
- App name:
ABV SCIM - Single sign-on URL:
https://your-abv-domain.dev/api/auth/callback/okta - Audience URI:
abv
Enable SCIM provisioning
- In the General tab, set Provisioning to
SCIM - Navigate to the Provisioning tab
- Click Edit for the SCIM Connection
Configure SCIM connection
- SCIM connector base URL:
https://your-abv-domain.dev/api/public/scim- US region:
https://app.abv.dev/api/public/scim - EU region:
https://eu.app.abv.dev/api/public/scim
- US region:
- Unique identifier field for users:
userName - Supported provisioning actions: Check all three:
Import new Users and Profile UpdatesPush New UsersPush Profile Updates
- Basic Auth - Username: Organization public key from ABV (starts with
pk-org-...) - Basic Auth - Password: Organization secret key from ABV (starts with
sk-org-...)
- Navigate to Organization Settings > API Keys in ABV
- Click Create new organization API key
- Copy the public and secret keys
Enable provisioning features
- Create Users
- Update User Attributes
- Deactivate Users
Configure default user roles (optional)
- Navigate to Provisioning tab > Profile Editor
- Click Add Attribute:
- Data type:
string array - Display Name:
ABV Roles - Variable Name:
roles - External Name:
roles - External Namespace:
urn:ietf:params:scim:schemas:core:2.0:User - Attribute members:
NONE,VIEWER,MEMBER,ADMIN - Attribute type:
Personal
- Data type:
- Click Save
- In Provisioning tab > Attribute Mappings, set the default value for
rolesattribute to your desired default (e.g.,MEMBER)
Assign users to the application
- Navigate to the Assignments tab
- Click Assign > Assign to People
- Select users to provision to ABV
- Optionally override roles per user (if role attribute is configured)
- Click Done and then Save
Verify provisioning
- In ABV, navigate to Organization Settings > Members
- Confirm Okta-provisioned users appear with correct roles
- Test login with a provisioned user (they should SSO through Okta if both SSO and SCIM are configured)
Security Best Practices
Protect Organization-Scoped Keys
Protect Organization-Scoped Keys
- Storage: Use secrets management systems (HashiCorp Vault, AWS Secrets Manager, Azure Key Vault)
- Access control: Limit who can create or view organization keys (Owners only)
- Rotation: Rotate organization keys quarterly or after suspected compromise
- Audit: Monitor usage of organization keys through audit logs
Use Least-Privilege Principle
Use Least-Privilege Principle
- Application tracing: Project-scoped key (write traces to one project)
- Customer API key generation: Organization-scoped key (create keys across projects)
- User provisioning: Organization-scoped key (SCIM requires org-level access)
- Project management: Organization-scoped key (create/delete projects)
Monitor SCIM Provisioning Logs
Monitor SCIM Provisioning Logs
- ABV audit logs: Track user creation, role changes, and membership modifications
- IdP provisioning logs: Verify successful synchronization and catch errors
- Anomaly detection: Unexpected user creations, bulk role changes, or provisioning failures
Test in Non-Production First
Test in Non-Production First
- Create a test ABV organization
- Configure SCIM provisioning to the test organization
- Provision test users and verify role mappings work correctly
- Test deprovisioning (user removal)
- Verify audit logs capture all operations
- Only then configure production provisioning
Implement SSO and SCIM Together
Implement SSO and SCIM Together
- Centralized authentication
- Enforce MFA policies
- Immediate login revocation on offboarding
- Automated user lifecycle
- Consistent role assignments
- No manual user management
Troubleshooting
SCIM Authentication Fails
SCIM Authentication Fails
- Incorrect API keys: Wrong public or secret key
- Wrong key type: Using project-scoped key instead of organization-scoped key
- Revoked keys: Keys were deleted or expired
- Incorrect base URL: Typo in SCIM connector base URL
- Verify youâre using organization-scoped keys (
pk-org-...andsk-org-...) - Confirm keys are active in Organization Settings > API Keys
- Check SCIM base URL matches ABV region (US: app.abv.dev, EU: eu.app.abv.dev)
- Regenerate organization keys if uncertain about validity
Users Not Provisioning from IdP
Users Not Provisioning from IdP
- Provisioning not enabled: IdP provisioning features not activated
- Attribute mapping errors: Required fields missing or incorrectly mapped
- SCIM connectivity issues: IdP canât reach ABVâs SCIM endpoints
- Role mapping misconfiguration: Users created but with NONE role (invisible in some views)
- Check IdP provisioning logs for specific error messages
- Verify âCreate Usersâ is enabled in IdP provisioning settings
- Test SCIM connectivity with curl using organization credentials
- Check ABV Organization Settings > Members for users with NONE role
- Review attribute mappings (email/userName are required)
SSO Redirect Loop or Errors
SSO Redirect Loop or Errors
- Incorrect redirect URIs: Mismatch between IdP configuration and ABVâs callback URL
- SSO not configured in ABV: Support hasnât enabled SSO for your organization yet
- Client ID/Secret mismatch: IdP application credentials donât match ABV configuration
- Domain mismatch: Using wrong ABV region (US vs EU)
- Verify redirect URIs match exactly (including https://)
- Confirm ABV support has configured SSO (contact support@abv.dev)
- Double-check Client ID and Secret were provided to ABV support correctly
- Ensure users access the correct ABV region (app.abv.dev or eu.app.abv.dev)
Organization API Returns 403 Forbidden
Organization API Returns 403 Forbidden
- Wrong key scope: Using project-scoped key for organization endpoints
- Insufficient permissions: Organization key belongs to user without required role
- Endpoint requires organization key: Endpoint explicitly requires organization scope
- Verify youâre using organization-scoped key (
pk-org-...) - Check that the user who created the organization key has Owner or Admin role
- Review API documentation for endpointâs required permissions