NAV
shell

Introduction

To authorize request with api key use next pattern:

curl -H "ds-api-token: <api_key>" "https://<endpoint>/<api_path>"

Welcome to the Dataspike API! You can use our API to access Dataspike API endpoints.

Production API endpoint: api.dataspike.io

Sandbox API endpoint: sandboxapi.dataspike.io

  1. All API requests must contain header Content-Type: application/json

  2. For both endpoints API Key is required and can be generated at dataspike.io Developer section

  3. You have to include API Key in each request using ds-api-token Header name

Screening API v2

To search for name:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X POST "https://api.dataspike.io/api/v2/sealed/universal/search" \
 --data '{"name": "Angela merkel"}' 

Response:

{
  "requested_name": "Angela merkel",
  "search_uuid": "f4f4f528-a010-490e-971d-e53ff8d56f1c",
  "data": [
    {
      "uuid": "34e270e5-1306-3197-bf70-4d8eedf60c98",
      "category": "person",
      "main_name": "Angela Merkel",
      "lookup_name": "Angela Merkel",
      "fields": {
        "Alias": {
          "type": "StringField",
          "title": "Alias",
          "values": [
            "Angela Merkel",
            "Меркель, Ангела"
          ]
        },
        "Links": {
          "type": "URLField",
          "title": "Links",
          "values": [
            {
              "name": "Presidente at Bundestag",
              "url": "https://linkedin.com/in/angela-merkel-7a049613"
            }
          ]
        },
        "Politician role": {
          "type": "StringField",
          "title": "Politician role",
          "values": [
            "Participant of 'bundestag' (germany)",
            "Federal chancellor of germany since 2005-11-22",
            "Minister for the environment",
            "Da, cdud, cdu"
          ]
        },
        "Sanctions": {
          "type": "URLField",
          "title": "Sanctions",
          "values": []
        },
        "Legal Cases": {
          "type": "URLField",
          "title": "Legal Cases",
          "values": []
        },
        "Tags": {
          "type": "StringField",
          "title": "Tags",
          "values": [
            "PEP",
            "Media",
            "Social"
          ]
        },
        "Citizenship": {
          "type": "StringField",
          "title": "Citizenship",
          "values": [
            "Germany"
          ]
        },
        "Gender": {
          "type": "StringField",
          "title": "Gender",
          "values": [
            "female"
          ]
        },
        "Occupations": {
          "type": "StringField",
          "title": "Occupations",
          "values": [
            "Presidente at Bundestag",
            "Politician at leader of the European Union"
          ]
        },
        "Related news": {
          "type": "URLField",
          "title": "Related news",
          "values": [
            {
              "name": "German lawmaker resigns over face mask scandal",
              "url": "https://www.dw.com/en/german-lawmaker-resigns-over-face-mask-scandal/a-56798497"
            }
          ]
        },
        "Primary date of birth": {
          "type": "StringField",
          "title": "Primary date of birth",
          "values": [
            "1954-07-17"
          ]
        },
        "Possible dates of birth": {
          "type": "StringField",
          "title": "Possible dates of birth",
          "values": [
            "1954-07-17"
          ]
        }
      },
      "similarity": 0.9230769230769231
    }
  ],
  "current_page": 0,
  "has_next": false
}

Performs person or organization search in Sanctions and PEPs lists

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/universal/search

JSON Request Fields

Field Type Optional Description
name string false Full name you want to lookup in Sanctions, e.g. Angela Merkel
category string true Type of Entity you are looking for, one of [Person, Organization]
country string true Two-letter ISO 3166-1 ALPHA-2 code, e.g. DE, reference https://www.iban.com/country-codes
exact_birth_day string true Allowed formats yyyy, yyyy-MM, yyyy-MM-dd, if not sure about the exact date consider to use range fields min_date_of_birth and max_date_of_birth
min_date_of_birth string true Allowed formats yyyy, yyyy-MM, yyyy-MM-dd
max_date_of_birth string true Allowed formats yyyy, yyyy-MM, yyyy-MM-dd
tags string or array true Allowed tags Sanctions
sources string or array true More international information here Link names

JSON Response Fields

Field Optional Type Description
requested_name false string Requested name
search_uuid false string Id of your search request in the system
data false Array of Entity Object Array of found entities

To search for name:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X POST "https://api.dataspike.io/api/v2/sealed/universal/multisearch" \
 --data '[{"name": "Angela merkel"}]' 

Response:

[{
  "requested_name": "Angela merkel",
  "search_uuid": "f4f4f528-a010-490e-971d-e53ff8d56f1c",
  "data": [
    {
      "uuid": "34e270e5-1306-3197-bf70-4d8eedf60c98",
      "category": "person",
      "main_name": "Angela Merkel",
      "lookup_name": "Angela Merkel",
      "fields": {
        "Alias": {
          "type": "StringField",
          "title": "Alias",
          "values": [
            "Angela Merkel",
            "Меркель, Ангела"
          ]
        },
        "Links": {
          "type": "URLField",
          "title": "Links",
          "values": [
            {
              "name": "Presidente at Bundestag",
              "url": "https://linkedin.com/in/angela-merkel-7a049613"
            }
          ]
        },
        "Politician role": {
          "type": "StringField",
          "title": "Politician role",
          "values": [
            "Participant of 'bundestag' (germany)",
            "Federal chancellor of germany since 2005-11-22",
            "Minister for the environment",
            "Da, cdud, cdu"
          ]
        },
        "Sanctions": {
          "type": "URLField",
          "title": "Sanctions",
          "values": []
        },
        "Legal Cases": {
          "type": "URLField",
          "title": "Legal Cases",
          "values": []
        },
        "Tags": {
          "type": "StringField",
          "title": "Tags",
          "values": [
            "PEP",
            "Media",
            "Social"
          ]
        },
        "Citizenship": {
          "type": "StringField",
          "title": "Citizenship",
          "values": [
            "Germany"
          ]
        },
        "Gender": {
          "type": "StringField",
          "title": "Gender",
          "values": [
            "female"
          ]
        },
        "Occupations": {
          "type": "StringField",
          "title": "Occupations",
          "values": [
            "Presidente at Bundestag",
            "Politician at leader of the European Union"
          ]
        },
        "Related news": {
          "type": "URLField",
          "title": "Related news",
          "values": [
            {
              "name": "German lawmaker resigns over face mask scandal",
              "url": "https://www.dw.com/en/german-lawmaker-resigns-over-face-mask-scandal/a-56798497"
            }
          ]
        },
        "Primary date of birth": {
          "type": "StringField",
          "title": "Primary date of birth",
          "values": [
            "1954-07-17"
          ]
        },
        "Possible dates of birth": {
          "type": "StringField",
          "title": "Possible dates of birth",
          "values": [
            "1954-07-17"
          ]
        }
      },
      "similarity": 0.9230769230769231
    }
  ],
  "current_page": 0,
  "has_next": false
}]

Performs search for multiple names, same API as Search but accepts and return arrays of values

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/universal/multisearch

JSON Request Fields

Array of Search requests

JSON Response Fields

Array of Search responses

Create Watchlist

To create watch list:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X POST "https://api.dataspike.io/api/v2/sealed/watch/lists/create" \
 --data '{"name": "My Sanctions Watchlist"}' 

Response:

{
  "id": "f4f4f528-a010-490e-971d-e53ff8d56f1c"
}

Creates a watch list, after it is created you will be able to monitor the desired names daily

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/watch/lists/create

JSON Request Fields

Field Optional Description
name false Name of new Watchlist

JSON Response Fields

Field Optional Description
id false ID of created Watchlist, you will need it later

Delete Watchlist

To delete watch list:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X POST "https://api.dataspike.io/api/v2/sealed/watch/lists/remove" \
 --data '{"id": "f4f4f528-a010-490e-971d-e53ff8d56f1c"}' 

Response:

{
  "id": "f4f4f528-a010-490e-971d-e53ff8d56f1c"
}

Removes a watch list from your account

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/watch/lists/remove

JSON Request Fields

Field Optional Description
id false ID of existing Watchlist

JSON Response Fields

Field Optional Description
id false ID of removed Watchlist

Rename Watchlist

To rename watch list:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X POST "https://api.dataspike.io/api/v2/sealed/watch/lists/rename" \
 --data '{"id": "f4f4f528-a010-490e-971d-e53ff8d56f1c", "new_name": "My WatchList 2"}' 

Response:

{
  "id": "f4f4f528-a010-490e-971d-e53ff8d56f1c"
}

Rename a watchlist

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/watch/lists/rename

JSON Request Fields

Field Optional Description
id false ID of existing Watchlist
new_name false New name of watchlist

JSON Response Fields

Field Optional Description
id false ID of renamed Watchlist

List all Watchlists

To list watchlists:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X GET "https://api.dataspike.io/api/v2/sealed/watch/lists"

Response:

{
  "data": [{
    "id": "f4f4f528-a010-490e-971d-e53ff8d56f1c",
    "name": "My watchlist",
    "last_viewed": "2011-12-03T10:15:30Z",
    "cretaed_at": "2011-12-03T10:15:30Z",
    "updated_at": "2011-12-03T10:15:30Z"
  }],
  "has_next": false
}

Check all watchlists in your account

HTTP Request

GET https://api.dataspike.io/api/v2/sealed/watch/lists

JSON Response Fields

Field Optional Description
data.id false ID of existing Watchlist
data.name false Name of watchlist
data.last_viewed false Last time, user checked changes, UTC, such as 2011-12-03T10:15:30Z
data.created_at false UTC, such as 2011-12-03T10:15:30Z
data.updated_at false Last time, watch list was updated by system, UTC, such as 2011-12-03T10:15:30Z
has_next true Equals true if you can get next page of founded items list

Get Watchlist Info

To get watchlist info:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X GET "https://api.dataspike.io/api/v2/sealed/watch/list/<id>/info"

Response:

{
    "id": "f4f4f528-a010-490e-971d-e53ff8d56f1c",
    "user_id": 2234,
    "name": "Angela Merkel",
    "last_viewed": "2011-12-03T10:15:30Z",
    "cretaed_at": "2011-12-03T10:15:30Z",
    "updated_at": "2011-12-03T10:15:30Z"
}

Returns info about existing watch list

HTTP Request

GET https://api.dataspike.io/api/v2/sealed/watch/list/<id>/info

JSON Response Fields

Field Optional Description
data.id false ID of existing Watchlist
data.user_id false Belongs to account
data.name false Name of watchlist
data.last_viewed false Last time, user checked changes, UTC, such as 2011-12-03T10:15:30Z
data.created_at false UTC, such as 2011-12-03T10:15:30Z
data.updated_at false Last time, watch list was updated by system, UTC, such as 2011-12-03T10:15:30Z

Get Watchlist Items

To get watchlist:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json"  -X GET "https://api.dataspike.io/api/v2/sealed/watch/list/<id>"

Response:

{
  "data": [{
    "row_id" : 1,
    "id": "f4f4f528-a010-490e-971d-e53ff8d56f1c",
    "uuid": "f4f4f528-a010-490e-971d-e53ff8d56f1c",
    "name": "Angela Merkel",
    "item": {
       // ... Check example from Search
    }
    "cretaed_at": "2011-12-03T10:15:30Z",
    "updated_at": "2011-12-03T10:15:30Z"
  }],
  "has_next": false
}

Returns watchlist items

HTTP Request

GET https://api.dataspike.io/api/v2/sealed/watch/list/<id>

JSON Response Fields

Field Optional Description
data.row_id false row id in database
data.id false ID of existing Watchlist
data.uuid false ID of existing Entity
data.name false Name of watchlist
data.item false Entity Object

Add Item to Watchlist

To add item to watchlist:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json" \
 -X POST "https://api.dataspike.io/api/v2/sealed/watch/list/<id>/add" \
 --data '{"uuid": "<uuid>", "name": "Angela Merkel"}' 

Add new item to watchlist

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/watch/list/<id>/add

JSON Request Fields

Field Optional Description
uuid true ID of existing record in the system
name true Name to monitor

Remove Item from Watchlist

To remove item from watchlist:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json" \
 -X POST "https://api.dataspike.io/api/v2/sealed/watch/list/<id>/remove" \
 --data '{"row_id": 1}' 

Remove existing item from watchlist

HTTP Request

POST https://api.dataspike.io/api/v2/sealed/watch/list/<id>/remove

JSON Request Fields

Field Optional Description
row_id false Row ID of existing record in watchlist

EntityObject

Example:

{
    "uuid": "34e270e5-1306-3197-bf70-4d8eedf60c98",
    "category": "person",
    "main_name": "Angela Merkel",
    "fields": {
        "Alias": {
            "type": "StringField",
            "title": "Alias",
            "values": [
            "Angela Merkel",
            "Меркель, Ангела"
            ]
        },
        "Links": {
            "type": "URLField",
            "title": "Links",
            "values": [
            {
                "name": "Presidente at Bundestag",
                "url": "https://linkedin.com/in/angela-merkel-7a049613"
            }
            ]
        },
        "Politician role": {
            "type": "StringField",
            "title": "Politician role",
            "values": [
            "Participant of 'bundestag' (germany)",
            "Federal chancellor of germany since 2005-11-22",
            "Minister for the environment",
            "Da, cdud, cdu"
            ]
        },
        "Sanctions": {
            "type": "URLField",
            "title": "Sanctions",
            "values": []
        },
        "Legal Cases": {
            "type": "URLField",
            "title": "Legal Cases",
            "values": []
        },
        "Tags": {
            "type": "StringField",
            "title": "Tags",
            "values": [
            "PEP",
            "Media",
            "Social"
            ]
        },
        "Citizenship": {
            "type": "StringField",
            "title": "Citizenship",
            "values": [
            "Germany"
            ]
        },
        "Gender": {
            "type": "StringField",
            "title": "Gender",
            "values": [
            "female"
            ]
        },
        "Occupations": {
            "type": "StringField",
            "title": "Occupations",
            "values": [
            "Presidente at Bundestag",
            "Politician at leader of the European Union"
            ]
        },
        "Related news": {
            "type": "URLField",
            "title": "Related news",
            "values": [
            {
                "name": "German lawmaker resigns over face mask scandal",
                "url": "https://www.dw.com/en/german-lawmaker-resigns-over-face-mask-scandal/a-56798497"
            }
            ]
        },
        "Primary date of birth": {
            "type": "StringField",
            "title": "Primary date of birth",
            "values": [
            "1954-07-17"
            ]
        },
        "Possible dates of birth": {
            "type": "StringField",
            "title": "Possible dates of birth",
            "values": [
            "1954-07-17"
            ]
        }
    }
}
Field Optional Type Description
category false string Entity Type, on of [person, organization]
main_name false string Main entity name
lookup_name true string Requested name, used for search
fields.Alias false StringField Known entity aliases, check Field Object reference below StringField
fields.Links false URLField Known entity links, check Field Object reference below URLField
fields."Politician role" false StringField Known entity politician roles, check Field Object reference below StringField
fields.Sanctions false StringField Known entity snactions, check Field Object reference below URLField
fields."Legal Cases" false StringField Known entity legal cases, check Field Object reference below URLField
fields.Tags false StringField Known entity tags, check Field Object reference below StringField
fields.Citizenship false StringField Known entity citizenship, check Field Object reference below StringField
fields.Gender false StringField Known entity gender, check Field Object reference below StringField
fields."Primary date of birth" false StringField Known entity primary date of birth, check Field Object reference below StringField
fields."Possible dates of birth" false StringField Known entity possbile dates of birth, check Field Object reference below StringField
fields."Related News" false StringField Known entity related news, check Field Object reference below URLField
similarity true string The distance between requested name and found entity

StringField

Field Optional Description
title false Name of the field
type false StringField
values false Array of string

URLField

Field Optional Description
title false Name of the field
type false URLField
values.name false URL description
values.url false URL path

Applicant

Create applicant

To create applicant:

# With shell, you can just pass the correct header with each request
curl -X POST "https://api.dataspike.io/api/v3/applicants" \
 --data {"external_id": "12345678"} 

Response:

{
    "id":"01827ed4-c928-7a3c-9a30-7ab7cc169d11"
}

Create new applicant

HTTP Request

POST https://api.dataspike.io/api/v3/applicants

JSON Request Fields

Field Type Optional Description
external_id string false Unique external id of applicant
email string true Applicant email
phone string true Applicant phone
info ApplicantExternalInfo true Applicant info

ApplicantExternalInfo

Field Type Optional Description
first_name string true first name of applicant
last_name string true first name of applicant
dob date true date of birth ISO-8601
gender Gender true Male or Female
citizenship string true citizenship

JSON Response Fields

Field Optional Description
id false Id of applicant, uuid

Get applicant

Get Applicant

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/applicants/$APPLICANT_ID"

Response:

{
    "applicant_id":"01827edd-bd37-77c8-93ea-8bf62830d1a9",
    "external_id":"2",
    "provided_info":{"gender":"Male"},
    "verification_status":"Initial"
}

HTTP Request

GET https://api.dataspike.io/api/v3/applicants/$applicant_id

Applicant Response

Field Optional Description
applicant_id false Id of applicant, uuid
external_id string false
email string true
phone string true
provided_info ApplicantExternalInfo External data provided in applicant creation
verification_status VerificationStatus oneOf Initial or Passed or Queued or Failed

List applicants

List applicants

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/applicants"

Response:

{
    "data": [{
        "applicant_id":"01827edd-bd37-77c8-93ea-8bf62830d1a9",
        "external_id":"2",
        "provided_info":{"gender":"Male"},
        "verification_status":"Initial"
    }],
    "has_next": false
}

HTTP Request

GET https://api.dataspike.io/api/v3/applicants/

Query Parameters

Field Optional Default Description
page true 0 Page number, starts from 0
limit true 10 Limit per page

JSON Response

Paged Response of ApplicantResponse

Delete applicant

To delete applicant:

# With shell, you can just pass the correct header with each request
curl -X DELETE "https://api.dataspike.io/api/v3/applicants/$APPLICANT_ID"

Response:

HTTP/1.1 200 OK

Delete applicant

HTTP Request

DELETE https://api.dataspike.io/api/v3/applicants/$applicant_id

Delete response

Http status code 200 OK or 404 Not Found

Verification

Create verification

To create verification:

# With shell, you can just pass the correct header with each request
curl -X POST "https://api.dataspike.io/api/v3/verifications" \
 --data {"applicant_id": "01827ed4-c928-7a3c-9a30-7ab7cc169d11", "checks_required": ["passport"]} 

Response:

{
    "id":"01827ed4-c928-7a3c-9a30-7ab7cc169d11",
    "applicant_id":"01827ed4-c928-7adc-ea30-7ab7cc169d11",
    "status": "in_progress",
    "checks": {
        "document_mrz": {
            "errors": [],
            "warnings": [],
            "status": "in_progress",
            "pending_documents": ["passport"],
            "data": null
        },
        "face_comparison": {
          "errors": [],
          "warnings": [],
          "status": "in_progress",
          "pending_documents": ["passport", "selfie"],
          "data": null  
        }
    },
    "created_at": "2022-08-31T11:51:04.661Z",
    "updated_at": "2022-08-31T11:51:04.661Z",

}

Create new verification

HTTP Request

POST https://api.dataspike.io/api/v3/verifications

JSON Request Fields

Field Type Optional Description
applicant_id string false ID of applicant
checks_required array of check enum false enum of: "passport", "id_card", "driver_license", "residence_permit", selfie"

VerificationInfo

Field Optional Description
id false Id of verification, uuid
applicant_id false Id of applicant, uuid
status false status of verification, enum of: "initial", "pending", "in_progress", "verified", "failed"
documents true list of documents with type, format: [{"document_id": UUID, "document_type": "passport"}]
checks true list of checks statuses, see CheckEntity
created_at false Date of creation
updated_at false Date of modification

CheckEntity

Field Optional Description
warnings true list of warnings
errors true list of errors
status false enum of: "verified", "failed", "in_progress", "pending"
pending_documents true list of required but not uploaded document types for this check
data true detail information with results of check. enum of: MRZ

MRZ

Recognized MRZ data of document.

All fields are mandatory and have string type.

Can have misdetected data.

Field Description
document_type MRZ document type
country country of document
name detected name
surname detected surname
doc_number document number
nationality nationality from document
birth_date birth date of document, format YYMMDD
sex usually M or F
expiry_date expiration date of document, format YYMMDD

Get verification

Get Verification

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/verifications/$VERIFICATION_ID"

Response:

{
    "id":"01827ed4-c928-7a3c-9a30-7ab7cc169d11",
    "applicant_id":"01827ed4-c928-7adc-ea30-7ab7cc169d11",
    "status": "pending",
    "checks": {
        "document_mrz": {
            "errors": [],
            "warnings": [],
            "status": "pending",
            "pending_documents": ["passport"],
            "data": null
        },
        "face_comparison": {
          "errors": [],
          "warnings": [],
          "pending_documents": ["passport", "selfie"],
          "status": "pending",
          "data": null  
        }
    },
    "document_ids": ["01827ed4-c928-7a3c-9a30-7ab7cc169d11"],
    "documents": [
        {"document_id": "01827ed4-c928-7a3c-9a30-7ab7cc169d11", "document_type": "passport"}
    ],
    "created_at": "2022-08-31T11:51:04.661Z",
    "updated_at": "2022-08-31T11:51:04.661Z",
}

HTTP Request

GET https://api.dataspike.io/api/v3/verifications/$verification_id

Applicant Response

Verification info

List verifications

List verifications

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/verifications?page=0&limit=10"

Response:

{"data": [{
    "id":"01827ed4-c928-7a3c-9a30-7ab7cc169d11",
    "applicant_id":"01827ed4-c928-7adc-ea30-7ab7cc169d11",
    "status": "in_progress",
    "checks": {
        "document_mrz": {
            "errors": [],
            "warnings": [],
            "status": "in_progress",
            "data": null
        },
        "face_comparison": {
          "errors": [],
          "warnings": [],
          "status": "in_progress",
          "data": null  
        }
    },
    "document_ids": ["01827ed4-c928-7a3c-9a30-7ab7cc169d11"],
    "created_at": "2022-08-31T11:51:04.661Z",
    "updated_at": "2022-08-31T11:51:04.661Z",

}],
"has_next": false

HTTP Request

GET https://api.dataspike.io/api/v3/verifications

Query Parameters

Field Optional Default Description
page true 0 Page number, starts from 0
limit true 10 Limit per page

JSON Response

Paged Response of Verification Info

Get verifications for applicant

Get verifications for applicant

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/applicant/$APPLICANT_ID/verifications?page=0&limit=10"

Response:

{"data": [{
    "id":"01827ed4-c928-7a3c-9a30-7ab7cc169d11",
    "applicant_id":"01827ed4-c928-7adc-ea30-7ab7cc169d11",
    "status": "passed",
    "checks": {
        "document_mrz": {
            "errors": [],
            "warnings": [],
            "status": "verified",
            "data": null
        },
        "face_comparison": {
          "errors": [],
          "warnings": [],
          "status": "failed",
          "data": null  
        }
    },
    "document_ids": ["01827ed4-c928-7a3c-9a30-7ab7cc169d11"],
    "details": {},
    "created_at": "2022-08-31T11:51:04.661Z",
    "updated_at": "2022-08-31T11:51:04.661Z",

}],
"has_next": false

HTTP Request

GET https://api.dataspike.io/api/v3/applicant/$APPLICANT_ID/verifications?page=0&limit=10

Query Parameters

Field Optional Default Description
page true 0 Page number, starts from 0
limit true 10 Limit per page

JSON Response

Paged Response of Verification Info

Files management

Upload document

To upload document client should use multipart/form-data upload:

# With shell, you can just pass the correct header with each request
curl -X POST "https://api.dataspike.io/api/v3/upload/$APPLICANT_ID" \
 -H 'Content-Type: multipart/form-data'  -F 'document_type=passport' -F'issued_country=AAA' -F 'side=front' -F '[email protected]_passport.jpeg'

Response:

{
    "document_id":"01827ed4-c928-7a3c-9a30-7ab7cc169d11"
}

Upload new document for applicant

HTTP Request

POST https://api.dataspike.io/api/v3/upload/$applicant_id

Form fields

Field Type Optional Description
file file false image file
document_type string false Enum of: 'passport', 'selfie', 'id_card', 'residence_permit', 'driver_license'
side string true Side of document: 'front' or 'back', may be required for some types of document
issued_country string true Country issued document in ISO_3166-1_alpha-3 format

Get Preview of uploaded document

Get preview of uploaded document

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/documents/$DOCUMENT_ID/preview" 

Response:

binary-data with document

HTTP Request

GET https://api.dataspike.io/api/v3/documents/$DOCUMENT_ID/preview

Get uploaded document

Get uploaded document

# With shell, you can just pass the correct header with each request
curl -X GET "https://api.dataspike.io/api/v3/documents/$DOCUMENT_ID" 

Response:

binary-data with document

HTTP Request

GET https://api.dataspike.io/api/v3/documents/$DOCUMENT_ID

Webhooks

Webhooks configuration right now avilable only on a dashboard

You can create and test webhooks for both sandbox and production environment at Webhook tab https://dash.dataspike.io/api

Webhook Event Common Fields

Field Optional Description
id false Event ID
webhook_id false Triggered webhook Id configuration
event_type false Webhook EventType, one of [DOCVER, APPLICANT, AML]
payload false Actual payload, all possible Payloads described below
timestamp false UTC timestamp of event

DocVer Notification Event

DocVer Notification Event:

{
  "id": "1ed2fb46-8271-6a33-a9ef-7553f473af46",
  "webhook_id": "1ed2f903-2d75-6b19-b6a5-29535bc3340e",
  "event_type": "DOCVER",
  "payload": {
    "id": "b86a3cbe-7880-4759-a4f3-9bcabac3cf3c",
    "checks": {
      "passport": {
        "data": [],
        "errors": [],
        "status": "in_progress",
        "warnings": []
      }
    },
    "status": "verified",
    "created_at": "2022-09-08T20:25:40.636471Z",
    "updated_at": "2022-09-08T20:25:40.636480Z",
    "applicant_id": "4da42a83-14db-4f19-9820-19cc10ad21cf",
    "document_ids": [
      "bd59f3da-b89d-4198-be1d-9b65477ddfb1"
    ],
    "document_type": "passport"
  },
  "timestamp": "2022-09-08T20:25:40.636658Z"
}

DocVer Notifications are fired when verification has been finished.

It contains the full information about the verification and extracted information for all requested documents.

DocVer Notification Fields

Field Optional Description
id false Event ID
webhook_id false Triggered webhook Id configuration
event_type false DOCVER
payload false Verification Object
timestamp false UTC timestamp of event

Verification Object

Field Optional Description
id false Verification ID
applicant_id false Applicant ID in the system
document_ids true Attached documents to this particular verification
status false Verification status, oneof [verified, failed, initial, in_progress]
created_at false Creation timestamp
updated_at false Timestamp of last update
document_type false Main document type for current verification
checks true Set of required checks, that would be performed and it statuses, one of [passport, id_card, residence_permit, driver_license, selfie, visa], see Check Object

Check Object

Field Optional Description
data true data relevant for current check
status false Current check status, one of [verified, failed, in_progress]
erros true List of errors
warnings true List of warnings

Webhook History

To retrieve webhook history use:

curl -H "ds-api-token: <api_key>" -H "Content-Type: application/json" \
 -X GET "https://api.dataspike.io/api/v3/notifications/webhook/history?after=<invocation_id>&webhook=<webhook_id>"

Response:

{
  "data": [
    {
      "id": "1ed2fb46-8271-6a33-a9ef-7553f473af46",
      "webhook_id": "1ed2f903-2d75-6b19-b6a5-29535bc3340e",
      "event_type": "DOCVER",
      "payload": {
          // Some payload
      },
      "timestamp": "2022-09-08T20:25:40.636658Z"
    }
  ],
  "has_next": true
}

You can paginate over the last webhooks in case you missed any, suing this API

Http Request

GET https://api.dataspike.io/api/v3/notifications/webhook/history?after=<invocation_id>&webhook=<webhook_id>

Query Parameters

Field Optional Description
after true Last webhook event ID, after which you want start to paginate
webhook true Filter by webhook ID, in case you want to fetch history for particular configured webhook

JSON Response Fields

Field Optional Description
data false List of Webhook invocation object
has_next true When set to true you haven't reached the end of history yet

Webhook Invocation Object

Field Optional Description
id false Event ID
webhook_id false Triggered webhook Id configuration
event_type false Webhook EventType, one of [DOCVER, APPLICANT, AML]
payload false Payload, depends on event_type
timestamp false UTC timestamp of event
is_sandbox false Environment of configured webhook
attempts true number of delivery attempts
response_code true Response code of last attempt, if empty, event is pending
last_attempt_at true timestamp of last delivery attempt