Case Management
Retrieve All Cases
Retrieves a paginated, filterable list of investigation cases for the authenticated business.
GET
/
v2
/
api
/
cases
Retrieve All Cases
curl --request GET \
--url https://api.youverify.co/v2/api/cases \
--header 'token: <api-key>'import requests
url = "https://api.youverify.co/v2/api/cases"
headers = {"token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {token: '<api-key>'}};
fetch('https://api.youverify.co/v2/api/cases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.youverify.co/v2/api/cases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.youverify.co/v2/api/cases"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.youverify.co/v2/api/cases")
.header("token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.youverify.co/v2/api/cases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 200,
"message": "Cases retrieved successfully!",
"data": {
"docs": [
{
"caseTitle": "KYC data Mismatch",
"status": "Opened",
"caseType": "KYC",
"severity": "High",
"parentId": null,
"businessId": "681d7b30cd275833cb856ff8",
"entityId": "6880a452495dce07d2f7ff5a",
"description": "The case was created because there's a complete mismatch between the NIN and BVN data of the client.",
"evidences": [],
"linkedIssues": [
{
"issueId": "6880f7d527309cf76eb5db2e",
"issueType": "Activity",
"dateLinked": null,
"status": "Mismatch"
}
],
"caseStage": [
{
"stage": "Investigation",
"level": "LV1",
"investigatorId": "681d7b32cd275833cb856fff",
"investigatorName": "Jaymee Bottomore",
"notes": [],
"isReassigned": false,
"previousInvestigators": [],
"tasks": [
{
"task": "Investigate KYC verification",
"isCompleted": false
},
{
"task": "Gather evidences, and add them to the case.",
"isCompleted": false
},
{
"task": "Confirm if entities are same and why there's a mismatch",
"isCompleted": false
}
],
"_id": "68945a37a52eb93b87f827fa"
}
],
"activities": [
{
"event": "Case Created",
"activity": "Case created by Jaymee Bottomore",
"createdBy": "Jaymee Bottomore",
"userId": "681d7b30cd275833cb856ff8",
"eventDateTime": "2025-08-07T07:48:07.145Z",
"_id": "68945a37a52eb93b87f827fb"
}
],
"isDeleted": false,
"comments": [],
"createdAt": "2025-08-07T07:48:07.165Z",
"lastModifiedAt": "2025-08-07T07:48:07.165Z",
"_createdAt": "2025-08-07T08:48:077+01:00",
"_lastModifiedAt": "2025-08-07T08:48:077+01:00",
"id": "cas_68945a37a52eb93b87f827f9"
}
],
"pagination": {
"type": "cursor",
"perPage": 20,
"nextPage": null,
"prevPage": null,
"hasNextPage": false,
"hasPrevPage": false
},
"searchTerms": {}
},
"links": []
}{
"success": false,
"statusCode": 401,
"message": "Permission denied",
"name": "UnauthorizedError",
"data": {}
}{
"success": false,
"statusCode": 404,
"message": "You have attempted to get a resource that does not exist.",
"name": "ResourceNotFoundError",
"data": {}
}{
"success": false,
"statusCode": 429,
"message": "Too many requests",
"name": "RateLimitError",
"data": {}
}{
"success": false,
"statusCode": 500,
"message": "Internal Server Error",
"name": "Error",
"data": {}
}Authorizations
Your Youverify API secret key. Never expose client-side.
Headers
API secret token
Query Parameters
Cursor for next page in pagination
Cursor for previous page in pagination
Field to sort by
Sort order, either 'asc' or 'desc'
Search query
Number of cases to return (Default: 20)
Cases filter start date
Cases filter end date
Approval state of the entity
Entity Id to filter cases by
Id of the investigator to filter cases by
Response
Success
⌘I
Retrieve All Cases
curl --request GET \
--url https://api.youverify.co/v2/api/cases \
--header 'token: <api-key>'import requests
url = "https://api.youverify.co/v2/api/cases"
headers = {"token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {token: '<api-key>'}};
fetch('https://api.youverify.co/v2/api/cases', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.youverify.co/v2/api/cases",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.youverify.co/v2/api/cases"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.youverify.co/v2/api/cases")
.header("token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.youverify.co/v2/api/cases")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"statusCode": 200,
"message": "Cases retrieved successfully!",
"data": {
"docs": [
{
"caseTitle": "KYC data Mismatch",
"status": "Opened",
"caseType": "KYC",
"severity": "High",
"parentId": null,
"businessId": "681d7b30cd275833cb856ff8",
"entityId": "6880a452495dce07d2f7ff5a",
"description": "The case was created because there's a complete mismatch between the NIN and BVN data of the client.",
"evidences": [],
"linkedIssues": [
{
"issueId": "6880f7d527309cf76eb5db2e",
"issueType": "Activity",
"dateLinked": null,
"status": "Mismatch"
}
],
"caseStage": [
{
"stage": "Investigation",
"level": "LV1",
"investigatorId": "681d7b32cd275833cb856fff",
"investigatorName": "Jaymee Bottomore",
"notes": [],
"isReassigned": false,
"previousInvestigators": [],
"tasks": [
{
"task": "Investigate KYC verification",
"isCompleted": false
},
{
"task": "Gather evidences, and add them to the case.",
"isCompleted": false
},
{
"task": "Confirm if entities are same and why there's a mismatch",
"isCompleted": false
}
],
"_id": "68945a37a52eb93b87f827fa"
}
],
"activities": [
{
"event": "Case Created",
"activity": "Case created by Jaymee Bottomore",
"createdBy": "Jaymee Bottomore",
"userId": "681d7b30cd275833cb856ff8",
"eventDateTime": "2025-08-07T07:48:07.145Z",
"_id": "68945a37a52eb93b87f827fb"
}
],
"isDeleted": false,
"comments": [],
"createdAt": "2025-08-07T07:48:07.165Z",
"lastModifiedAt": "2025-08-07T07:48:07.165Z",
"_createdAt": "2025-08-07T08:48:077+01:00",
"_lastModifiedAt": "2025-08-07T08:48:077+01:00",
"id": "cas_68945a37a52eb93b87f827f9"
}
],
"pagination": {
"type": "cursor",
"perPage": 20,
"nextPage": null,
"prevPage": null,
"hasNextPage": false,
"hasPrevPage": false
},
"searchTerms": {}
},
"links": []
}{
"success": false,
"statusCode": 401,
"message": "Permission denied",
"name": "UnauthorizedError",
"data": {}
}{
"success": false,
"statusCode": 404,
"message": "You have attempted to get a resource that does not exist.",
"name": "ResourceNotFoundError",
"data": {}
}{
"success": false,
"statusCode": 429,
"message": "Too many requests",
"name": "RateLimitError",
"data": {}
}{
"success": false,
"statusCode": 500,
"message": "Internal Server Error",
"name": "Error",
"data": {}
}