Overview
The InstaView API uses API keys for authentication. Each API key is associated with a company and has specific scopes that control what actions it can perform.API Key Format
InstaView API keys follow this format:- Prefix:
sk_indicates a secret key - Key: Random Base62-encoded string (URL-safe, no special characters)
- Length: Approximately 46 characters total
Authentication Method
Bearer Token
Pass your API key in theAuthorization header with the Bearer scheme:
Creating API Keys
Log in to Dashboard
Access your InstaView dashboard
Configure the Key
- Give it a descriptive name (e.g., “Production Integration”) - Select the required scopes - Optionally set an expiration date - Configure IP allowlist if needed
Scopes and Permissions
API keys use scope-based access control. Each resource type has three permission levels:Read
View and list resources
Write
Create and update resources
Delete
Delete resources (soft delete)
Available Scopes
| Resource | Read Scope | Write Scope | Delete Scope |
|---|---|---|---|
| Jobs | read:jobs | write:jobs | delete:jobs |
| Candidates | read:candidates | write:candidates | delete:candidates |
| Interviews | read:interviews | write:interviews | - |
| Agents | read:agents | write:agents | delete:agents |
| Companies | read:companies | write:companies | - |
| Billing | read:billing | - | - |
Scope Examples
- Read Only
- Full Access
- Candidate Management
Company Isolation
Every API key is scoped to a specific company. This ensures data isolation:- Keys can only access resources within their company
- Cross-company access is prevented at the API level
- Each company’s data is completely isolated
Regular API Keys
Standard API keys are associated with a single company:ATS Integration Keys
ATS (Applicant Tracking System) keys have special privileges:- Can create and manage multiple companies
- Must specify
companyIdquery parameter for resource access - Ideal for multi-tenant integrations
ATS keys can only be created by InstaView administrators. Contact support if
you need ATS integration capabilities.
Security Best Practices
Use Environment Variables
Use Environment Variables
Never hardcode API keys in your application code.
Rotate Keys Regularly
Rotate Keys Regularly
- Rotate API keys every 90 days - Create a new key before revoking the old one to avoid downtime - Use the dashboard to manage key lifecycle
Use Minimal Scopes
Use Minimal Scopes
Apply the principle of least privilege: - Only grant scopes that are
absolutely necessary - Use read-only keys for analytics and reporting - Create
separate keys for different integrations
Configure IP Allowlists
Configure IP Allowlists
Restrict API key usage to specific IP addresses:Keys will only work from these IP addresses.
Monitor Key Usage
Monitor Key Usage
- Review API key audit logs regularly - Set up alerts for unusual activity - Track key usage in the dashboard
Set Expiration Dates
Set Expiration Dates
Configure automatic key expiration for temporary integrations:
- Set expiration during key creation
- Receive notifications before expiry
- Ideal for contractor access or time-limited projects
Key Management
Listing Your Keys
View all API keys in your dashboard:- Active keys and their scopes
- Last used timestamp
- Creation date
- Expiration date (if set)
Suspending Keys
Temporarily disable a key without deleting it:401 Unauthorized error.
Revoking Keys
Permanently revoke a compromised key:Audit Logs
All API key operations are logged:- Key creation and deletion
- Successful authentications
- Failed authentication attempts
- Scope changes
- Suspension and revocation events
Common Authentication Errors
Invalid or missing API keyNote: The API returns a generic error message to prevent information leakage about which keys are valid.
Insufficient scopes for the requested operationThis error occurs when your API key doesn’t have the required scope for the operation you’re trying to perform.
Rate Limiting: Rate limiting is planned for future implementation.
Currently, the API does not enforce rate limits, but this feature will be
added soon. When implemented, you’ll receive appropriate HTTP 429 responses
with retry-after headers.