Seamless integration with our GDPR compliant background check API
Diligent, Responsible, Safe - Effective background check software for safety and compliance.
Benefits of implementing Pescheck's background check API
Pescheck's background check API allows companies to get their platforms up and running quickly while also improving efficiency, managing compliance and safety, and supporting a strong brand experience.
- Deploy faster - Once your Pescheck-hosted flow is live, you only need a candidate's email to kickstart the process
- Deliver a seamless experience - A deeper integration makes the background check process a natural extension of your product
- Save time and resources - Design smooth and efficient onboarding experiences for candidates, gig workers, and other users
API documentation and code examples
Authenticate with OAuth2, create a screening request, fetch its status and result, and receive updates by webhook. The endpoints below are taken from our public OpenAPI schema; replace the YOUR_ placeholders with your own values.
Swagger documentation ReDoc documentation Official SDKs on GitHub
curl
# 1. Authenticate: OAuth2 client credentials
curl -X POST https://api.pescheck.io/api/o/token/ \
-d grant_type=client_credentials \
-d client_id=YOUR_CLIENT_ID \
-d client_secret=YOUR_CLIENT_SECRET
# -> {"access_token": "YOUR_ACCESS_TOKEN", "token_type": "Bearer", "expires_in": 3600, ...}
# 2. Find the profile (set of checks) to screen with
curl https://api.pescheck.io/api/v2/profiles/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# 3. Create a screening request
curl -X POST https://api.pescheck.io/api/v2/screenings/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"profile_id": "YOUR_PROFILE_ID",
"candidate": {
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]"
}
}'
# -> {"id": "SCREENING_ID", "status": "...", "candidate_wizard_url": "...", "dashboard_url": "...", ...}
# 4. Fetch the status and result
curl https://api.pescheck.io/api/v2/screenings/SCREENING_ID/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# 5. Register a webhook for status changes
curl -X POST https://api.pescheck.io/api/v2/webhooks/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Screening updates",
"url": "https://example.com/pescheck-webhook",
"events": ["screening.status_changed"]
}'
# 6. Confirm you own the webhook URL
curl -X POST https://api.pescheck.io/api/v2/webhooks/WEBHOOK_ID/verify/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"verification_code": "CODE_SENT_TO_YOUR_WEBHOOK_URL"}' Node.js
// Node.js 18+ (built-in fetch)
const BASE = "https://api.pescheck.io";
// 1. Authenticate: OAuth2 client credentials
const tokenRes = await fetch(`${BASE}/api/o/token/`, {
method: "POST",
body: new URLSearchParams({
grant_type: "client_credentials",
client_id: "YOUR_CLIENT_ID",
client_secret: "YOUR_CLIENT_SECRET",
}),
});
const { access_token } = await tokenRes.json();
const headers = {
Authorization: `Bearer ${access_token}`,
"Content-Type": "application/json",
};
// 2. Find the profile (set of checks) to screen with
const profiles = await (await fetch(`${BASE}/api/v2/profiles/`, { headers })).json();
const profileId = profiles.results[0].id;
// 3. Create a screening request
const createRes = await fetch(`${BASE}/api/v2/screenings/`, {
method: "POST",
headers,
body: JSON.stringify({
profile_id: profileId,
candidate: {
first_name: "Jane",
last_name: "Doe",
email: "[email protected]",
},
}),
});
const screening = await createRes.json();
// 4. Fetch the status and result
const statusRes = await fetch(`${BASE}/api/v2/screenings/${screening.id}/`, { headers });
const { status, checks } = await statusRes.json();
console.log(status, checks);
// 5. Register a webhook for status changes
const hookRes = await fetch(`${BASE}/api/v2/webhooks/`, {
method: "POST",
headers,
body: JSON.stringify({
name: "Screening updates",
url: "https://example.com/pescheck-webhook",
events: ["screening.status_changed"],
}),
});
const webhook = await hookRes.json();
// 6. Confirm you own the webhook URL
await fetch(`${BASE}/api/v2/webhooks/${webhook.id}/verify/`, {
method: "POST",
headers,
body: JSON.stringify({ verification_code: "CODE_SENT_TO_YOUR_WEBHOOK_URL" }),
}); Python
# pip install requests
import requests
BASE = "https://api.pescheck.io"
# 1. Authenticate: OAuth2 client credentials
token = requests.post(
f"{BASE}/api/o/token/",
data={
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
},
).json()["access_token"]
headers = {"Authorization": f"Bearer {token}"}
# 2. Find the profile (set of checks) to screen with
profiles = requests.get(f"{BASE}/api/v2/profiles/", headers=headers).json()
profile_id = profiles["results"][0]["id"]
# 3. Create a screening request
screening = requests.post(
f"{BASE}/api/v2/screenings/",
headers=headers,
json={
"profile_id": profile_id,
"candidate": {
"first_name": "Jane",
"last_name": "Doe",
"email": "[email protected]",
},
},
).json()
# 4. Fetch the status and result
result = requests.get(f"{BASE}/api/v2/screenings/{screening['id']}/", headers=headers).json()
print(result["status"], result["checks"])
# 5. Register a webhook for status changes
webhook = requests.post(
f"{BASE}/api/v2/webhooks/",
headers=headers,
json={
"name": "Screening updates",
"url": "https://example.com/pescheck-webhook",
"events": ["screening.status_changed"],
},
).json()
# 6. Confirm you own the webhook URL
requests.post(
f"{BASE}/api/v2/webhooks/{webhook['id']}/verify/",
headers=headers,
json={"verification_code": "CODE_SENT_TO_YOUR_WEBHOOK_URL"},
) Webhook deliveries are sent to your URL when the selected events occur. Fetch the screening with the GET request above to read its current status and results. See the Swagger documentation for the full list of events and fields.
Some of our API connections
Our team of (API) experts is constantly working on developing new integrations. Below you'll find a selection of the possibilities. If the system you are using is not listed (yet), no worries. Feel free to contact us, and we can explore the options together for creating a new integration.
Why use Pescheck's background check API?
Dedicated Support
Easily build with our RESTful API with JSON responses.
High-security standards
99.99% uptime and real-time, 24/7 access to data.
Easy-to-use software
Detailed and organized results with clear and concise labeling.
Use your platform
Use Pescheck's hosted background check application or embed the process into your own flow.
Pay as you go
Receive detailed status updates via webhooks or response calls.
Fast turnaround times
Simple and clear developer documentation, with support from our team.
Available screenings with Pescheck's API
Pescheck makes it easy to order [API] screenings and view results through the webhooks.
- International PEP and Sanctions List Check
- Credit Check
- Criminal Record / Letter of Conduct
- CV Check - Work-/reference
- Qualification check
- Adverse Media check
- ID Check
- Integrity Statement
- VOG (Certificate of Good Conduct) Profile (NL)
Faster Remote Work Process
Years of Experience
Hours Saved Per Month
"For Beldoo, integrating Pescheck's API through Zapier was a remarkably efficient process. It took us less than two hours to set up and fully integrate, significantly streamlining our workflow. This seamless connection has enhanced our operational efficiency, proving to be a valuable asset to our service offerings. Highly recommended for any business looking for reliable and quick integration solutions."
Simon
beldoo.nl
Questions & answers
Start with our 14-day free trial to explore Pescheck's API capabilities. You'll get full access to our sandbox environment, comprehensive documentation, and dedicated support to help you integrate and test our background check services with your platform.
Unlike traditional software that requires complex installations and maintenance, Pescheck's API is cloud-based and always up-to-date. You get instant access to our screening services through simple API calls, automatic updates, and seamless scalability without infrastructure overhead.
Absolutely. Pescheck is ISO 27001 certified and fully GDPR compliant. We use enterprise-grade encryption for all data in transit and at rest, maintain strict access controls, and undergo regular security audits to ensure your data remains secure and confidential.
Our flexible billing model offers both pay-as-you-go and prepaid options. You're only charged for the screenings you perform, with transparent pricing and no hidden fees. Monthly invoices provide detailed usage reports, and you can adjust your plan anytime based on your needs.
For organisations running fewer than 50 screenings per month, pay-as-you-go offers maximum flexibility. For higher volumes, prepaid packages provide better rates and budget predictability. Our team can help you choose the most cost-effective option based on your expected usage.