TIC

A search response has one entry per subject, and each entry carries the list entries that matched it. This page describes every property so hits can be interpreted correctly. Property names are camelCase and properties with a null value are omitted.

Company and person screenings return a compact form with a short line per hit, described in Company and person screening; the full entry of one of their hits has the Hit properties below.

Top level

Property Type Description
screeningId guid The stored screening. See Reviewing hits.
reused boolean true when the same search ran within the last 24 hours and that result is returned, without a new order.
requestedAtUtc date-time When the screening was performed. For a reused search, when it first ran.
source string The engine the screening ran on: trapets or tic.
testMode boolean true when the screening ran against the test environment. See Test mode.
order Order The order this screening was placed as.
summary Summary Counts and the lists that were actually screened.
results array of SubjectResult One entry per subject, in the order submitted.
warnings array of string Warnings about individual subjects, if any. Absent when there are none.
errors array of string Errors for individual subjects, which were not screened. Absent when there are none.

Order

Property Type Description
documentOrderGuid guid Use this to look the screening up again through the orders API.
orderedAtUtc date-time When the order was placed.
price number Price of the screening according to your agreement. 0 in test mode.
currency string Always SEK.

Summary

Property Type Description
subjectCount integer Number of subjects in the request.
individualHitCount integer Number of person entries returned across all subjects.
entityHitCount integer Number of organisation entries returned across all subjects.
totalHitCount integer individualHitCount plus entityHitCount.
servicesQueried array of string The lists that were screened against. Compare this with what you expect; a misspelled serviceScope or a list missing from your account shows up here.

SubjectResult

Property Type Description
reference string The reference you supplied for the subject.
subjectId integer The subject in the stored screening.
name string The name you supplied.
identityNumber string The identityNumber you supplied.
notScreenedReason string screeningError when the lists could not be searched for the subject. It was not screened, whatever hitCount says. Absent for a screened subject.
hitCount integer Number of hits for this subject.
hits array of Hit The matching list entries, strongest hitRating first.

Hit

One list entry that matched a subject. A person entry and an organisation entry share the same shape; properties that only apply to one of them are marked.

Property Type Description
type string individual for a person, entity for an organisation.
hitId integer The hit in the stored screening, for details and decisions.
isNew boolean true when your team has not seen this entry for the same person or organisation before.
resolution string The team’s decision on the hit: pending, truePositive, falsePositive, escalated or noMatch, carried over from an earlier screening when there is one.
name string The name of the list entry.
identityNumber string Personal identity number of a person or organisation number of an organisation, when the list holds one. Always absent when isProtectedIdentity is true. On the tic engine only the screened subject’s own number, when the entry lists it.
birthDate string Person only. yyyy-MM-dd, yyyy-MM or yyyy. If the list reports more than one birth date this is a comma-separated list, for example 1957-01-01, 1956-12-31. If the source only has an approximate year, such as “circa 1966”, the list holds every year in a span of plus or minus three years.
hitRating integer What the entry matched on, 1 to 5. See Hit rating.
hitRatingDescription string The hit rating in words.
nameMatchScore number Name similarity between 0 and 1. Only present when minimumNameMatchScore was set; always present on the tic engine.
listType string The group the list belongs to: SANCTION or PEP.
listItemDataType string Individual or Entity, as reported by the list.
sourceName string The list that produced the hit, for example EU_GLOBAL. See Lists.
externalId string The list’s own identifier for the entry. Stable across screenings and useful for de-duplicating hits over time.
lastUpdatedUtc date-time When the entry was last updated on the list.
tier integer Person only. PEP seniority tier where 1 is the most senior. Only populated by the default engine’s global PEP list.
isProtectedIdentity boolean Person only. The person has a protected identity. The identity number is then never returned.
isMale boolean Person only. Absent when the sex is not known.
title string Person only. Title of the person.
comment string Free-text comment from the list, when there is one.
legalForm string Organisation only. See Legal forms.
operationalStatus string Organisation only. See Operational status.
countries array of string Every country registered to the entry, as ISO 3166-1 alpha-3 codes. Includes citizenship, residence, jurisdiction and registration countries, and countries taken from roles and addresses.
citizenships array of string Person only. The subset of countries registered as citizenships.
aliases array of string Every name the entry is known by. For organisations this is usually just the name.
externalUrls array of string Links to source documents, when the list provides them.
roles array of Role Person only. Political or public roles. This is what makes a person a PEP.
engagements array of Engagement Reserved for company engagements such as board positions and ownership. Not populated by the lists today.
relationships array of Relationship Family members and close associates, mainly on PEP entries.

Role

A public or political function held by a person. Present on PEP entries.

Property Type Description
roleType string Category of the role. See Role types.
roleTypeDescription string The role type in words.
title string Title of the role, for example the position held.
organization string The organisation the role belongs to, when known.
countryCode string ISO 3166-1 alpha-3 country the role applies to. Usually absent, since the relevant country is on the entry itself.
from string Date the role became active, as yyyyMMdd.
to string Date the role ended, as yyyyMMdd. Absent while the role is active.
comment string Description of the role.

Relationship

A connection between the list entry and another person or organisation. relationshipType is what the named person is to the entry: on a PEP, Spouse names the PEP’s spouse. On the tic engine family members and close associates are on the list as persons: a hit for a PEP’s spouse names the PEP under relationships, see Hits with tic.

Property Type Description
name string Name of the related person or organisation.
relationshipType string Child, ChildsSpouse, CloseAssociate, FamilyMember, Parent, Sibling, Spouse or Other.
title string The nature of the connection.
comment string Description of the relationship.

Engagement

Reserved for a role or ownership in a company. The lists do not populate this data today, so the array is empty or absent.

Property Type Description
engagementType string See Engagement types.
name string Name of the engagement holder.
corporateId string Organisation number of the company.
ownershipStake number Ownership share in percent, for ownership engagements.
from date-time Date the engagement was registered.
to date-time Date the engagement ended, if it is no longer active.

Example response

Two subjects were screened. The first produced one PEP hit, the second produced nothing.

{
  "requestedAtUtc": "2026-09-03T09:14:22.318Z",
  "testMode": false,
  "order": {
    "documentOrderGuid": "3f1c9b2e-7d44-4a1b-9c0e-2b6f0a8d5e71",
    "orderedAtUtc": "2026-09-03T09:14:22.301Z",
    "price": 5.00,
    "currency": "SEK"
  },
  "summary": {
    "subjectCount": 2,
    "individualHitCount": 1,
    "entityHitCount": 0,
    "totalHitCount": 1,
    "servicesQueried": ["EU_GLOBAL", "UN_CONSOLIDATED", "OFAC", "PEP_Edge"]
  },
  "results": [
    {
      "reference": "cust-1001",
      "name": "Anna Exempelsson",
      "hitCount": 1,
      "hits": [
        {
          "type": "individual",
          "name": "Anna Exempelsson",
          "birthDate": "1975-04-12",
          "hitRating": 4,
          "hitRatingDescription": "Träff på namn och födelseår eller födelsedatum",
          "listType": "PEP",
          "listItemDataType": "Individual",
          "sourceName": "PEP_Edge",
          "externalId": "SE-113942",
          "lastUpdatedUtc": "2026-08-30T02:15:07",
          "isMale": false,
          "countries": ["SWE"],
          "citizenships": ["SWE"],
          "aliases": ["Anna Exempelsson", "Anna Maria Exempelsson"],
          "roles": [
            {
              "roleType": "NationalLegislature",
              "roleTypeDescription": "Nationalförsamling",
              "title": "Riksdagsledamot",
              "organization": "National Parliament",
              "from": "20220926"
            }
          ],
          "relationships": [
            {
              "name": "Karl Exempelsson",
              "relationshipType": "Spouse"
            }
          ]
        }
      ]
    },
    {
      "reference": "cust-1002",
      "identityNumber": "5560000000",
      "hitCount": 0,
      "hits": []
    }
  ]
}

Warnings and errors

A 200 OK response can still carry warnings and errors about individual subjects. Both are arrays of strings. Each message starts with the subject’s reference (or its name or identity number if no reference was given) so it can be tied back to a subject.

  • Warning - the subject was screened, but part of its data was ignored. An invalid country code such as SWD produces a warning and the code is disregarded.
  • Error - the subject was not screened. The other subjects in the call were. Its result has notScreenedReason screeningError, also when the screening is fetched again.

When no subject could be screened, the call fails with 502 and code screening_failed instead: nothing is stored or billed, and you can try again.

HTTP status codes

Status Meaning
200 OK The screening ran. Check warnings and errors.
400 Bad Request The request failed validation. The code property of the problem document is no_subjects, too_many_subjects, subject_not_identifiable, invalid_service_scope (a serviceScope naming only lists that are not screened) or invalid_engine (an engine other than trapets or tic).
401 Unauthorized Missing or invalid API key.
403 Forbidden The API key’s plan does not include screening.
429 Too Many Requests Rate limit exceeded. See Rate limits.
502 Bad Gateway Code screening_failed: the lists could not be searched for any subject. Nothing was stored or billed; try again.

Reference values

Role types

Values of roleType on a Role. roleTypeDescription carries it in words.

roleType Description
Government Government or ministry
NationalLegislature National parliament
CivilServant Senior civil servant
EmbassyAndConsular Diplomatic or consular post
ArmedForces Armed forces
Judiciary Courts and judiciary
StateCorporation State-owned company
StateAgency State agency
Political Political office
PoliticalParty Political party
Organization International or other organisation
Other Other

Values of legalForm on an organisation hit.

LimitedCompany, PrivateBusinessGovCtrl, ForeignCompany, Bank, SoleProprietorship, GeneralPartnership, Society, Foundation, HousingCompany, StateCountyCompany, ReligiousOrganization, InsuranceCompany, Collaborations

Operational status

Values of operationalStatus on an organisation hit.

Active, InactiveSleeping, UnderLiquidation, Liquidated, UnderBankruptcy, Bankrupt, Dissolved, Merged, Unregistered, Unknown, Dissolving, DissolvingByForce, DissolvedByForce, UnderReconstruction, CompanyDataOutOfDate

Engagement types

Values of engagementType on an Engagement, for when the lists start populating engagements.

Accountant, AssistantStatistician, Associate, Bearer, BeneficialOwner, BoardMember, CEO, Chairman, Commissioner, CompanyStructureOwner, Deputy, DeputyAccountant, DeputyBoardMember, DeputyCEO, DeputyChairman, DeputyCommissioner, DeputyLaymanAccountant, DeputyLiquidator, EmployeeRepresentative, ExternalCEO, ExternalCompanySignatory, ExternalDeputyCEO, GeneralPartner, InsuranceRepresentative, KeyPerson, LaymanAccountant, LiableAccountant, LimitedPartner, Liquidator, Manager, ManagingClerk, NotificationRecipient, NotKnown, Owner, Procurator

Country types

The countries array on a hit merges every country registered to the entry. The underlying registrations are typed as Citizenship, Jurisdiction, Registration, Residential or Other. Only the Citizenship type is broken out separately, as citizenships.

Data not returned

The list entries hold more data than the API returns today. The following is available on the underlying entries but not exposed: postal addresses, additional identity documents such as passport numbers, images, the original list an entry was consolidated from, and for organisations the registered owners, representatives, beneficial owners, industry codes, foundation date and signatory rules. Contact support if your use case needs any of it.