Skip to content

Quickstart

Verify your API key, then inspect a subject-creation example. Ferretly does not provide a separate integration test environment: requests use your organization’s data. Coordinate real test work with your Ferretly contact.

  1. An existing Ferretly organization and a private API key from Request access (or your Ferretly contact). Confirm whether the organization has Analyst Assistance.
  2. A terminal with curl, or a server-side environment for the example language. The Python examples use the requests package; the C# examples use .NET HTTP and JSON namespaces.

Base URL: https://api.ferretly.com

Use GET /api/ApiClient as your first authenticated call. It returns client configuration such as permissions and the configured webhook URL.

Terminal window
curl --fail -sS https://api.ferretly.com/api/ApiClient \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Accept: application/json"

A successful response means your key is valid and associated with an organization.

Replace the example name, external ID, and API key with your own test values.

POST /api/Subjects requires subjectData. Identity is a single name field (not firstName / lastName).

Terminal window
curl --fail -sS -X POST https://api.ferretly.com/api/Subjects \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"subjectData": {
"name": "Ada Lovelace"
},
"externalSystemId": "candidate-001",
"assignToFerretlyAnalyst": false,
"isDebug": true
}'

The C# create example reuses the http client from step 1. The Python example reuses its imports. A successful non-debug create returns a Subject with HTTP 200; debug returns a constructed subject without inserting it.

Follow the workflow already configured for your organization when moving from this debug example to a saved subject. For Analyst Assistance, use the analyst-managed guide; do not call initiateBackgroundCheck. For an organization without Analyst Assistance, follow the separate lifecycle, including its verified-handle prerequisites. A start request using a debug response’s ID returns an error because no subject was saved.

GoalGuide
Integrate with Analyst AssistanceAdd and assign a subject
Integrate without Analyst AssistanceScreening lifecycle
Map your system IDsIdentity & IDs
Receive status callbacksWebhook setup
Explore every endpointAPI Reference
  • Using firstName / lastName instead of name
  • Omitting Content-Type: application/json on POST/PUT
  • Calling initiateBackgroundCheck if your org uses Analyst Assistance (analysts run the screen)
  • Sending an invalid body. The examples use application/json; consult each endpoint’s documented media types.