API Reference
Complete REST API documentation for VeriPlus compliance platform with code examples in JavaScript, Python, and cURL.
API Reference
VeriPlus provides a comprehensive REST API for integrating identity verification, AML screening, deepfake detection, and crypto compliance into your applications.
Base URL
Production: https://api.veriplus.co.uk/api/v3
Sandbox: https://sandbox-api.veriplus.co.uk/api/v3
Authentication
All API requests require authentication via API key in the Authorization header:
Authorization: Bearer your_api_key_hereGet your API key from the Dashboard Settings.
Keep Your API Key Secret
Never expose API keys in client-side code or public repositories. Rotate keys immediately if compromised.
Quick Start
const apiKey = 'vp_live_abc123...';
const baseUrl = 'https://api.veriplus.co.uk/api/v3';
async function createApplicant() {
const response = await fetch(`${baseUrl}/applicants`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
firstName: 'John',
lastName: 'Doe',
email: '[email protected]',
dateOfBirth: '1990-01-15',
country: 'GB'
})
});
const data = await response.json();
console.log('Applicant created:', data.applicantId);
return data;
}API Endpoints Overview
| Category | Endpoints | Purpose |
|---|---|---|
| Authentication | /auth/* | API key management |
| Applicants | /applicants/* | Create and manage applicants |
| Verifications | /verifications/* | Identity verification workflows |
| AML Screening | /aml/* | Sanctions, PEP, adverse media searches |
| Deepfake Detection | /deepfake/* | AI-generated content detection |
| KYT Crypto | /kyt/* | Cryptocurrency wallet screening |
| Webhooks | /webhooks/* | Event notifications |
Request Format
All POST/PUT requests must include Content-Type: application/json header and valid JSON body.
Common Request Parameters
| Parameter | Type | Description |
|---|---|---|
organizationId | string | Your organisation ID (auto-detected from API key) |
idempotencyKey | string | Optional unique key to prevent duplicate requests |
callbackUrl | string | Optional webhook URL for async results |
Example with Idempotency
const idempotencyKey = `verif_${Date.now()}_${Math.random()}`;
const response = await fetch(`${baseUrl}/verifications`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
'Idempotency-Key': idempotencyKey
},
body: JSON.stringify({
applicantId: 'app_abc123',
profileType: 'STANDARD'
})
});Response Format
All API responses follow a consistent structure:
Success Response (200-299)
{
"success": true,
"data": {
"id": "resource_id",
"status": "completed",
// ... resource-specific fields
},
"meta": {
"timestamp": "2024-01-15T10:30:00Z",
"requestId": "req_xyz789"
}
}Error Response (400-599)
{
"success": false,
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "Not enough credits to perform this operation",
"details": {
"required": 2,
"available": 0
}
},
"meta": {
"timestamp": "2024-01-15T10:30:00Z",
"requestId": "req_xyz789"
}
}Rate Limits
| Plan | Requests/Min | Requests/Day |
|---|---|---|
| Free | 10 | 100 |
| Basic | 30 | 1,000 |
| Professional | 100 | 10,000 |
| Enterprise | 500 | Unlimited |
Rate limit headers included in all responses:
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 25
X-RateLimit-Reset: 1642251600
Rate Limit Exceeded
When rate limit is exceeded, API returns 429 Too Many Requests. Implement exponential backoff in your client.
Pagination
List endpoints support cursor-based pagination:
GET /api/v3/applicants?limit=50&cursor=abc123Parameters:
limit: Number of results (default: 20, max: 100)cursor: Pagination cursor from previous response
Response:
{
"success": true,
"data": [...],
"pagination": {
"hasMore": true,
"nextCursor": "xyz789",
"total": 1234
}
}Filtering and Sorting
Most list endpoints support filtering and sorting:
// Filter by status and sort by creation date
GET /api/v3/verifications?status=COMPLETED&sortBy=createdAt&order=desc
// Filter by date range
GET /api/v3/applicants?createdFrom=2024-01-01&createdTo=2024-01-31Common Query Parameters:
status: Filter by statuscreatedFrom,createdTo: Date range filters (ISO 8601)sortBy: Field to sort byorder:ascordesc
Credit Costs
Each API operation consumes credits from your organisation's balance. The following costs are automatically pulled from our database:
Verification
| Verification Type | Credits |
|---|---|
| Document Verification | 1 |
| Identity Verification (Standard) | 1 |
| Identity Verification (Enhanced) | 2 |
| Biometric Verification | 3 |
AML
| AML Check Type | Credits |
|---|---|
| Sanctions Check | 1 |
| PEP Screening | 2 |
| Adverse Media Check | 3 |
| Basic AML Check | 1 |
| Enhanced AML Check | 2 |
| Monitoring (per month) | 1 |
Deepfake Detection
| Media Type | Credits |
|---|---|
| Image Analysis | 2 |
| Video Analysis | 5 |
| Audio Analysis | 3 |
| Document Analysis | 4 |
KYT Crypto
| KYT Operation | Credits |
|---|---|
| Wallet Check | 2 |
| Monitoring (per month) | 1 |
Check your credit balance:
GET /api/v3/credits/balanceSandboxing
Use the sandbox environment for testing without consuming credits:
https://sandbox-api.veriplus.co.uk/api/v3
Sandbox Behavior:
- No credits consumed
- Simulated responses (predictable results)
- Test API keys start with
vp_test_ - Same endpoints as production
Webhooks
VeriPlus can send real-time event notifications to your server:
POST /api/v3/webhooks
{
"url": "https://yourdomain.com/webhooks/veriplus",
"events": [
"verification.completed",
"aml.match_found",
"deepfake.scan_completed"
],
"secret": "your_webhook_secret"
}See Webhooks Documentation for complete event reference.
SDKs and Libraries
Official SDKs:
- JavaScript/TypeScript:
npm install @veriplus/node-sdk - Python:
pip install veriplus-sdk - PHP: Coming soon
- Ruby: Coming soon
Community SDKs available on GitHub.
API Versioning
Current version: v3
- Breaking changes will result in new version (
v4,v5, etc.) - Previous versions supported for 12 months after deprecation
- Version specified in URL path:
/api/v3/...
Support
- API Status: status.veriplus.co.uk
- Documentation Issues: support.veriplus.co.uk
- Email Support: [email protected]
Next Steps
Ready to get started?
Start with our free plan. No credit card required.