Skip to main content
Unit API lets you pick and call identity verification features one at a time, such as ID OCR, face comparison, and government record checks. You can add only the checks you need to your service, without going through the Liveform submission flow.
  • One call returns one result. No submission is created.
  • Every call is synchronous. You get the result in the response, and there are no webhooks.
  • Only calls that return a result are billed. Calls that end in an error are not billed.

Unit API Reference

Check the request and response specs for every API, copy call code for your language, and download the OpenAPI document.
To see results before writing any code, run a call from Unit API > API Test in the dashboard. The endpoint and a cURL example are shown before you run, so you can copy them and start integrating. Dashboard Unit API guide

Available APIs

Image and text analysis

Government and bank record checks

Record checks summarize the source’s answer as verdict and verdictReason. See Reading verdicts.

Getting started

1

Copy your Unit API key

Copy the key from Unit API > Unit API Key in the dashboard. A key is issued automatically when a project is created, so there is nothing to request. Member role or higher is required.
2

Try it in the dashboard

In API Test, pick an API, enter values, and run it. Check the response, TX ID, endpoint, and cURL example.
3

Call from your server

Send the same request as the cURL example from your server. Use the key only on your server.
4

Store the result and TX ID

Store the result and txId in your system as soon as you receive the response. ARGOS does not store request or response bodies.

Endpoints

Every Unit API is a POST request. Call the host of the region your project belongs to.
  • {api} is the path on each API page. Example: /v1/units/id-ocr
  • All 14 APIs are available in every region.
  • A key works only in its project’s region. Calling another region’s host returns 401. Check your project’s region in Regions.

Authentication

Put your project’s Unit API key in the x-api-key request header.
The Unit API key is different from the Liveform API key and the add-on API key. Each project has one. Send the key only in the header, never in the query string.

Reissuing the key

  • If the key is exposed or misuse is suspected, an Owner or Leader reissues it in the dashboard.
  • Reissuing revokes the previous key immediately. Calls with the previous key are rejected with 401 INVALID_API_KEY and are not billed.
  • Who reissued the key and when is recorded in the key history and the Event Log.
The emergency stop in project settings does not apply to Unit API calls. To block Unit API calls, reissue the key.

Request rules

  • Send a JSON body with Content-Type: application/json. Other types are rejected with 415 UNSUPPORTED_MEDIA_TYPE.
  • Fields that are not in the contract are rejected with 400 UNKNOWN_PARAMETER. This prevents a typo from being silently ignored and billed with an unexpected result.
  • An empty string ("") or null is not treated as “not sent” and is rejected with 400 INVALID_PARAMETER_FORMAT. If an optional field has no value, leave the key out.
  • Dates use the YYYY-MM-DD format. Example: 2019-03-14

Images

  • Send images as Base64 strings. A prefix such as data:image/jpeg;base64, is optional.
  • Only JPEG and PNG are accepted. Convert iPhone HEIC, GIF, BMP, and other formats to JPEG before sending.
  • Each image can be up to about 3 MB in original size (4,000,064 Base64 characters without the prefix). Larger images return 400 PARAMETER_OUT_OF_RANGE. Most ID photos taken with a phone can be sent as is.

referenceId

Every API accepts an optional referenceId field. If you send a different value for each call, you can find a call later even if you never received its response. See Duplicate calls and retries.

Common response

A successful (200) response has the same shape for every API. Fields that describe the call are at the top level, and the result the API produced is inside data.
string
required
The TX ID of this call. Use it to search the dashboard call history and when contacting support. Same value as the X-Tx-Id response header.
string
required
The code of the API you called. Examples: ID_OCR, GC_KOR_NID
string
required
When the request was received, in UTC (RFC 3339) with millisecond precision.
integer
required
Time from receiving the request to responding, in milliseconds.
object
required
Billing details for this call.
string | null
required
The referenceId you sent, or null if you did not send one.
object
required
The result the API produced. See each API page for its structure.
Defined response fields are never omitted; they come as null when there is no value. On the other hand, new response fields and enum values can be added within v1, so make sure unknown fields or values do not break your code. Versioning policy

Reading verdicts

Record check APIs return the following fields inside data. GC-MEX-CURP is the only exception: it returns the registry status as is, without a verdict.
  • MATCH: Matches the source’s records.
  • MISMATCH: The source answered that it does not match. A lookup was made, so it is billed.
  • REJECTED: Genuine, but no longer valid (a passport that lost its validity, or a suspended or closed business).
Image and text analysis APIs return only scores and measurements. You decide the pass threshold.

Billing

Credits are deducted only for calls that return a result. You can see the deducted credits in billing.credit and in the dashboard call history.
  • Calls that return a result are billed. A low face similarity or a MISMATCH from the source is still a result, so it is billed.
  • Calls that end in an error are not billed. This covers every response whose HTTP status is not 200.
  • Calls run from the dashboard API Test are billed the same way.
  • Trial projects are not billed. Instead, the number of calls per month is limited. Usage by project status
  • Sending the same request twice is processed and billed as two calls.

Prices by API

Projects on the v3.1_USA plan use USA prices; all other plans use KOR prices. Prices are in credits. You can also check your project’s prices in Unit API > API Test in the dashboard.

Usage by project status

  • The trial limit counts all calls, including errors. Unbilled error calls and calls rejected for exceeding the limit are included.
  • The limit resets at 00:00 UTC on the first day of each month.
  • Once the limit is reached, calls return 429 TRIAL_LIMIT_EXCEEDED, and the Retry-After header holds the seconds until the reset.

Data retention and privacy

  • Request and response bodies are not stored. Store the result with its txId in your system as soon as you receive the response. You cannot retrieve results from ARGOS later.
  • Call records are kept for 3 years. They include the call time, API, result, error code, processing time, count, credits, source (live or API test), the user who ran it, and referenceId.
  • Even for testing, you need a lawful basis, such as the data subject’s consent, to use real personal information.

Next steps

Error codes and retries

Error response format, what to do for each code, and retry rules

Unit API in the dashboard

API Test, call history, and key management