Estonia Personal Code Validator

Estonia Personal Code Validator

Data Validation Personal Code Validator Credits / request: 1

Validates Estonian personal identification code (Isikukood).

GET https://api.apikodu.com/api/v1/isikukoodvalidator
Documentation
Overview

Validates Estonian personal code (isikukood) and, when possible, returns birth date / gender / check digit. Invalid codes return isValid=false with HTTP 200.

Authentication

Every request requires the x-api-key header. Credits used and remaining quota are returned in response headers (x-api-credits-used, x-api-remaining-credits, x-rate-limit-*).

Request
GET https://api.apikodu.com/api/v1/isikukoodvalidator?code=39008020027
Parameters are sent as a query string.
Parameters
Name Type Required Default Options Description
code string * Required — — Identity code to validate.
Response
Name Type Description
isValid boolean true when the code matches checksum and format rules. Invalid codes still return HTTP 200.
gender integer Gender code. 1=male, 0=female. Derived from the first digit.
genderText string Gender text: Male or Female.
birthDate string Birth date YYYY-MM-DD. May be empty when the code is invalid.
age integer Age in whole years as of today.
securityDigit integer Check digit (last digit).
maskedCode string Code with middle digits masked.
Errors
HTTP code Description
400 -188 `code` is empty or whitespace. Invalid checksum/format returns HTTP 200 with data.isValid=false, not 400.
401 -100 x-api-key is missing, empty, malformed, inactive, banned, expired, IP-restricted, or not allowed for this API.
429 -221 Per-minute request limit exceeded. Response headers: x-rate-limit-limit, x-rate-limit-remaining, x-rate-limit-reset.
429 — Package credit quota cannot cover this request. Body may be { error, limit, currentUsage, requestCost } (no code field).
500 -1 Unexpected server error. message is a generic error text without technical details.
Notes
  • Success body is { data: { ... } }. Error body is { code, message }. code is an ApiResponseCode enum value (negative integer).

Sample response

{
  "data": {
    "isValid": true,
    "gender": 1,
    "genderText": "Male",
    "birthDate": "1990-08-02",
    "age": 35,
    "securityDigit": 7,
    "maskedCode": "3900*****27"
  }
}

Code samples

  
      const response = await fetch('https://api.apikodu.com/api/v1/isikukoodvalidator', {
        method: 'GET',
        headers: {
          'x-api-key': 'YOUR_API_KEY'
        }
      });

      const data = await response.json();
      console.log(data);
  
  
      import requests

      headers = {
          'x-api-key': 'YOUR_API_KEY'
      }

      response = requests.get('https://api.apikodu.com/api/v1/isikukoodvalidator', headers=headers)
      print(response.json())
  
  
      using var client = new HttpClient();
      client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");

      var response = await client.GetStringAsync("https://api.apikodu.com/api/v1/isikukoodvalidator");
      Console.WriteLine(response);
  
  
      $response = file_get_contents('https://api.apikodu.com/api/v1/isikukoodvalidator', false, stream_context_create([
          'http' => [
              'header' => "x-api-key: YOUR_API_KEY"
          ]
      ]));

      print_r(json_decode($response, true));
  
  
      curl -X GET 'https://api.apikodu.com/api/v1/isikukoodvalidator' \
        -H 'x-api-key: YOUR_API_KEY'
  

Start building in minutes

Create a free account, get your API key and send your first request in minutes.

Get started free