IRBIS API Quickstart (15 minutes)

This quickstart gets you from zero → first successful lookup with the IRBIS API:
  1. create an API key

  2. fetch your available lookupId values

  3. submit a lookup request (Phone example)

  4. retrieve results using the returned request id

  5. verify your credit status

Note: Many IRBIS lookups are asynchronous. The first response typically returns status: "progress" and a numeric id. You then retrieve the completed results using the api-usage/{id} endpoint.

1) Prerequisites

You need:

  • An IRBIS account
  • An API key (generated in the IRBIS portal)

2) Create your API key (Portal)

  1. Register: https://irbis.espysys.com/auth/register
  2. Open API Keys page: https://irbis.espysys.com/developer
  3. Click “Generate API key” (upper-left), then copy the key
Keep your key secret. Use it server-side.

3) Fetch your available lookup IDs (Required)

IRBIS endpoints require a lookupId that matches what’s enabled for your subscription. Call lookupid-list and choose the right ID for the service you want.

Endpoint

GET https://irbis.espysys.com/api/request-monitor/lookupid-list?key={API_KEY}

cURL

curl -X 'GET' \
  'https://irbis.espysys.com/api/request-monitor/lookupid-list?key=YOUR_API_KEY' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json'

What you get back

A JSON array with objects like:

  • lookupId (integer)
  • endPoint (string path)
  • lookupName (human-friendly name)

Pick the lookupId for

  • "/api/developer/combined_phone" → Phone Lookup (Combo)
  • "/api/developer/combined_email" → Email Lookup (Combo)
  • "/api/developer/combined_name" → Name SocialScan/WebScan (Combo)

4) Make your first API call (Phone Lookup example)

Endpoint

POST https://irbis.espysys.com/api/developer/combined_phone

Headers

Content-Type: application/json

Body

  • key: your API key
  • value: phone number (string)
  • lookupId: the lookupId you selected for Phone Lookup (integer)

cURL

curl -X 'POST' \
  'https://irbis.espysys.com/api/developer/combined_phone' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "key": "<API_Key>",
    "value": "+79017007397",
    "lookupId": <LOOKUPID_VALUE>
  }'

Typical response

You’ll receive an id and status: "progress". Save the numeric id and retrieve the completed data using the results endpoint.

{
  "requestId": "5d60f1b7-e614-4524-bce6-174a81a2fd90",
  "id": 1486,
  "status": "progress",
  "message": "Results will be available soon, Use API to retrieve Data"
}
✅ Save the numeric id — you’ll use it in the next step.

5) Retrieve the results (api-usage/{id})

Endpoint

GET https://irbis.espysys.com/api/request-monitor/api-usage/{id}?key={API key}

cURL

curl -X 'GET' \
  'https://irbis.espysys.com/api/request-monitor/api-usage/<RESPONSE_ID_VALUE>?key=<API_Key>' \
  -H 'accept: application/json'

Polling guidance

  • If the request is still processing, wait and try again.
  • Use a simple backoff (e.g., 2s → 5s → 10s) rather than tight loops.

6) Check your credits balance (credit-stat)

Endpoint

GET https://irbis.espysys.com/api/request-monitor/credit-stat?key=YOUR_API_KEY

cURL

curl -X 'GET' \
  'https://irbis.espysys.com/api/request-monitor/credit-stat?key=YOUR_API_KEY' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json'

Response fields include balance, currency, credits, expiratioDate, status.

7) Important limits and common errors

“Insufficient enrichment timeout”

IRBIS enforces a 30-second timeout between searches. If you call too fast, you may get an error like “Insufficient enrichment timeout”. Wait at least 30 seconds between searches (or consider a Custom package if you need a shorter timeout).

Wrong lookupId

If your request fails or returns unexpected behavior, confirm the lookupId via:

GET /api/request-monitor/lookupid-list?key=...

Still “progress”

That’s expected. Use:

GET /api/request-monitor/api-usage/{id}?key=...

Next steps

Try the same flow with Email Lookup (POST /api/developer/combined_email) and Name SocialScan/WebScan (POST /api/developer/combined_name).

If you’re building a platform integration, go to the Tutorial next: Build an async enrichment job (queue + polling + caching + normalized output).

Skip to content