Browse endpoints

Person Report Result

GET /api/v2/person_report/{uuid} operationId: person_report_result

Live: https://gdapi.globaldata.net.au/api/v2/person_report/{uuid} · Sandbox: https://sandbox-gdapi.globaldata.net.au/api/v2/person_report/{uuid}

Experimental

The Person Report API is still in the experimental stage and is subject to change.

Polls for the result of a Person Report request. Free of charge - only the originating POST /person_report is billed.

Poll until status is complete or error. Every poll returns HTTP 200 with the JSON status field - including while the request is still pending or processing (this endpoint never returns 202). An unknown or foreign request_uuid returns 400. Typical turnaround is a few seconds; allow up to a minute when court and social sections are included. Results are retained for 24 hours.

status Meaning
pending Queued, not yet started.
processing Running; status_message describes the current step.
complete Finished - the body carries resolution and, when resolved, report and provenance.
error The report could not be produced; status_message explains. Nothing is billed.

When complete, the body is the full report response described on POST /person_report: resolution.outcome (resolved | low_confidence | ambiguous | too_many | not_found), report (resolved only), and provenance (sources, inferences, research notes). request_reference is the api_reference of the originating request - the billing correlation id.

PDF

Append ?pdf=true to receive the completed report as a formatted PDF (application/pdf) instead of JSON - the resolution summary, every section, and the research notes, inferences and sources as an appendix. A PDF is produced for every complete outcome, not only resolved: an unresolved outcome renders the resolution summary with the redacted candidate list and narrowing hints. While the request is still pending or processing the JSON status is returned regardless of the flag. Candidate tokens are only available in the JSON form.

The appendix always carries the full provenance: the research notes with per-fact references, the inference evidence and the exact source queries.

Sandbox

The sandbox queue runs synchronously, so the result is normally complete on the first poll.

Path parameters

FieldDescription
uuidrequired string (uuid)

The request_uuid returned by POST /person_report.

Query parameters

FieldDescription
pdf boolean

When true, return the completed report as a PDF document instead of JSON.

Default: false

Responses

200

Current state of the request and, when complete, the report (JSON by default, or a PDF when pdf=true).

application/json application/pdf
FieldDescription
message string

Example: Ok

api_reference string (uuid)

Reference for this poll call.

request_uuid string (uuid)
request_reference string (uuid)

The api_reference of the originating request (billing correlation id).

status string

Enum: pending, processing, complete, error

status_message string or null
search_criteria object

Present when status is complete. Echo of the supplied identifiers, normalised as searched. Fields not supplied are omitted.

summary object

Present on a resolved report. A front-page summary in five fixed parts: who was resolved and on what evidence, what was found, which findings are name-only leads, and what to verify next. On live reports it is written by an AI language model from a redacted digest of the finished report - no phone, email, street address, full date of birth or relative's name leaves the report - and is marked ai_assisted. When the model is unavailable, and always in the sandbox, a templated summary with the same parts is produced instead (generated_by: template). The summary adds nothing to the report; where they differ, the report is correct.

summary.status string

Enum: ok

summary.generated_by string

Enum: ai, template

summary.ai_assisted boolean
summary.reason string or null

Why a templated summary was produced on a live report, when it was.

summary.headline string

Example: John Andrew Smith resolved at high confidence; findings in court and adverse media.

summary.subject string

Who was resolved, from how many records and candidates, what matched and corroborated, and the deceased check outcome.

summary.findings string

What is attributed to the subject - addresses, contacts, business and registers, household, watchlists, social profile.

summary.unverified string

Every name-only lead with its count, each marked as not verified as the subject.

summary.next_steps string
summary.warning string or null

Conditions of use for an AI-written summary. Present when ai_assisted is true.

summary.sources array of strings
resolution object

Present when status is complete.

resolution.outcome string

Enum: resolved, low_confidence, ambiguous, too_many, not_found

resolution.confidence string

Enum: high, medium, low

resolution.candidate_count integer
resolution.rounds integer
resolution.input_matches object (dynamic)

Per-field comparison of the supplied details with the resolved subject.

resolution.corroborations array of strings
resolution.flags array of strings
resolution.candidates array of objects

Redacted candidates (ambiguous / low_confidence only).

resolution.candidates[].candidate_token string

Re-submit this to POST /person_report to select the candidate. Valid for one hour, same environment only.

resolution.candidates[].name string
resolution.candidates[].name_variants array of strings
resolution.candidates[].birth_year integer or null
resolution.candidates[].localities array of strings
resolution.candidates[].tenure array of integers

First and last year the candidate is seen.

resolution.candidates[].score integer
resolution.candidates[].confidence string

Enum: high, medium, low

resolution.candidates[].evidence_for array of strings
resolution.candidates[].evidence_against array of strings
resolution.also_considered array of objects [max 5 items]

On a resolved outcome with more than one surviving candidate - the same-name records that were examined and set aside, with the reason. No selection tokens; re-submit with narrower details (a date of birth, a state, a phone) to reach one of these instead.

resolution.also_considered[].name string
resolution.also_considered[].birth_year integer or null
resolution.also_considered[].localities array of strings
resolution.also_considered[].record_count integer
resolution.also_considered[].score integer
resolution.also_considered[].evidence_for array of strings
resolution.also_considered[].evidence_against array of strings
resolution.also_considered[].not_selected_because string

Example: scored 30 against the resolved subject's 45, and nothing corroborated it

resolution.hints object

Narrowing hints (too_many / ambiguous / not_found).

resolution.hints.suggested_fields array of strings
resolution.hints.by_state object (dynamic)
resolution.hints.by_birth_decade object (dynamic)
report object

Present when status is complete and resolution.outcome is resolved.

report.identity object
report.identity.first_name string
report.identity.middle_name string or null
report.identity.last_name string
report.identity.name_variants array of strings
report.identity.gender string or null
report.identity.birth_date string (date) or null
report.identity.birth_date_source string or null

Example: asic+global_data

report.identity.birth_date_candidates array of objects

Every date of birth seen, with its supporting votes.

report.identity.birth_date_input_match string

Enum: match, near_miss, same_year, no_match, no_data, not_provided

report.identity.age integer or null
report.identity.deceased boolean or null

True when the death register confirmed a record, false when the check found no match, null when no check could be performed.

report.identity.deceased_check object

Custodian deceased check against the Australian Death Check registry, on name and date of birth.

report.identity.deceased_check.status string

Enum: confirmed, no_match, not_performed, error

report.identity.deceased_check.label string

Example: No, ADC check found no match

report.identity.deceased_check.sources array of strings
report.identity.deceased_source_flag boolean

Whether the subject's own Global Data record carries a deceased flag, independent of the registry check.

report.identity.deceased_date string (date) or null

Date of death from the Global Data record, when flagged.

report.identity.first_seen string or null
report.identity.last_seen string or null
report.identity.record_count integer
report.identity.asic_record_count integer
report.identity.flags array of strings
report.identity.sources array of strings
report.addresses object

Address timeline, most recent first.

report.addresses.status string
report.addresses.note string
report.addresses.records array of objects
report.addresses.records[].gnaf_id string or null
report.addresses.records[].street_address string
report.addresses.records[].suburb string
report.addresses.records[].state string
report.addresses.records[].postcode string
report.addresses.records[].address_type string

Example: residential

report.addresses.records[].date_start string (date) or null
report.addresses.records[].date_end string (date) or null
report.addresses.records[].current boolean
report.addresses.records[].occupant_count integer or null
report.addresses.records[].shared_address boolean

True for postal or high-occupancy addresses, which are excluded from household inference.

report.addresses.records[].flags array of strings
report.addresses.records[].co_residents array of objects
report.addresses.records[].co_residents[].name string
report.addresses.records[].co_residents[].birth_date string (date) or null
report.addresses.records[].co_residents[].relationship_hint string or null

Example: same_surname

report.addresses.records[].co_residents[].tenure array of strings

Date the co-resident was first and last seen at the address.

report.addresses.records[].co_residents[].overlap_with_subject array of strings or null

The window both were at the address, when the tenures overlap.

report.addresses.records[].co_residents[].sources array of strings
report.addresses.records[].listings array of objects
report.addresses.records[].listings[].listing_type string

Example: sold

report.addresses.records[].listings[].property_type string
report.addresses.records[].listings[].bedrooms integer or null
report.addresses.records[].listings[].bathrooms integer or null
report.addresses.records[].listings[].car_spaces integer or null
report.addresses.records[].listings[].date string (date) or null
report.addresses.records[].listings[].price string or null
report.addresses.records[].listings[].agent string or null
report.addresses.records[].listings[].during_subject_tenure boolean
report.addresses.records[].listings[].sources array of strings
report.addresses.records[].sources array of strings
report.contacts object
report.contacts.status string
report.contacts.phones array of objects
report.contacts.phones[].phone string

E.164 format.

report.contacts.phones[].type string

Example: mobile

report.contacts.phones[].carrier string or null
report.contacts.phones[].date_start string (date) or null
report.contacts.phones[].date_end string (date) or null
report.contacts.phones[].input_match boolean

True when this contact was one of the supplied identifiers.

report.contacts.phones[].connectivity object

Live presence check at report time. The most recent contacts are checked, up to a per-request cap; the rest are not_checked. A contact that did not answer in time is undetermined.

report.contacts.phones[].connectivity.status string

Enum: connected, disconnected, undetermined, invalid, not_checked

report.contacts.phones[].connectivity.detail string or null

Example: Network confirmed connection

report.contacts.phones[].connectivity.location string

Approximate location for the number, when the check reports one.

report.contacts.phones[].connectivity.checked_at string (date)
report.contacts.phones[].connectivity.sources array of strings
report.contacts.phones[].sources array of strings
report.contacts.emails array of objects
report.contacts.emails[].email string
report.contacts.emails[].date_start string (date) or null
report.contacts.emails[].date_end string (date) or null
report.contacts.emails[].input_match boolean
report.contacts.emails[].connectivity object

Live deliverability check at report time; see the phone connectivity for the cap and timing rules.

report.contacts.emails[].connectivity.status string

Enum: deliverable, undeliverable, undetermined, invalid, not_checked

report.contacts.emails[].connectivity.ok_to_send boolean or null

False when the mailbox accepts mail but should not be sent to (for example a spam trap or role account).

report.contacts.emails[].connectivity.detail string or null

Example: Mailbox not found

report.contacts.emails[].connectivity.checked_at string (date)
report.contacts.emails[].connectivity.sources array of strings
report.contacts.emails[].sources array of strings
report.household object
report.household.status string
report.household.possible_relatives array of objects
report.household.possible_relatives[].name string
report.household.possible_relatives[].birth_date string (date) or null
report.household.possible_relatives[].address string or null
report.household.possible_relatives[].basis string

Why this person is suggested - co-resident with the same surname, or a rare-surname match graded by proximity.

report.judgements object
report.judgements.status string
report.judgements.records array of objects
report.judgements.records[].date string (date) or null
report.judgements.records[].creditor string
report.judgements.records[].event string
report.judgements.records[].name string
report.business object
report.business.status string
report.business.abn_links array of objects

ABN registrations linked to the subject by locality.

report.business.abn_links[].abn string
report.business.abn_links[].entity_name string or null
report.business.abn_links[].legal_name string or null
report.business.abn_links[].entity_type string
report.business.abn_links[].status string
report.business.abn_links[].effective_from string (date) or null
report.business.abn_links[].effective_to string (date) or null
report.business.abn_links[].state string or null
report.business.abn_links[].postcode string or null
report.business.abn_links[].link_basis string

Example: name_and_postcode

report.business.abn_links[].sources array of strings
report.business.associated_businesses array of objects

Businesses associated through the subject's identifiers (e.g. an email domain) - unverified.

report.business.associated_businesses[].name string
report.business.associated_businesses[].abn string or null
report.business.associated_businesses[].acn string or null
report.business.associated_businesses[].state string or null
report.business.associated_businesses[].postcode string or null
report.business.associated_businesses[].link_basis string

Example: email_domain

report.business.associated_businesses[].sources array of strings
report.business.unlinked_namesakes integer

Count of same-name ABN holders elsewhere that were not linked.

report.asic object
report.asic.asic_record string

Enum: found, not_found, indeterminate

report.asic.record_type string
report.asic.record_count integer
report.asic.linked_record_count integer
report.asic.place_of_birth object or null
report.asic.dob_variants array of strings

Dates of birth on ASIC records that differ from the confirmed date (data-entry variants).

report.asic.summary string
report.companies_house object

UK Companies House officer search for the subject: current and resigned officers of UK companies plus disqualified directors. One search on the subject's name, filtered to the subject's birth month when a date of birth is known (the register publishes year and month of birth only, never the day). found means name and birth month agree; name_only means no date of birth was available to check and the records are leads. Appointments are listed for up to three matching officers, birth-month agreement first.

report.companies_house.companies_house_record string

Enum: found, name_only, not_found, indeterminate

report.companies_house.search_name string

Example: John Andrew Smith

report.companies_house.birth_month_checked boolean

Whether the subject's birth month was applied to the search.

report.companies_house.record_count integer
report.companies_house.disqualified_count integer

How many matching officers are disqualified directors.

report.companies_house.address_match_count integer

How many matching officers have a service address in the subject's address history.

report.companies_house.more_results boolean

The register held more same-name officers than were retrieved.

report.companies_house.officers array of objects
report.companies_house.officers[].officer_id string

The register's officer id, usable with company_house_officer_report.

report.companies_house.officers[].name string

The name as the register writes it (given names then SURNAME).

Example: John Andrew SMITH

report.companies_house.officers[].date_of_birth string or null

Year and month of birth as published, YYYY-MM.

Example: 1998-03

report.companies_house.officers[].birth_month_match string

Enum: agrees, not_on_record, not_checked

report.companies_house.officers[].address string or null

The officer's service address as a single line.

report.companies_house.officers[].address_match string

Whether the service address is one of the subject's own addresses.

Enum: address_history, no_match, not_checked

report.companies_house.officers[].matched_address string or null

The subject's address the service address agrees with.

report.companies_house.officers[].appointment_count integer
report.companies_house.officers[].disqualified boolean
report.companies_house.officers[].appointments array of objects

Current appointments first, then by appointment date, newest first. Empty when the officer report was not retrieved.

report.companies_house.officers[].appointments[].company_name string
report.companies_house.officers[].appointments[].company_number string
report.companies_house.officers[].appointments[].company_status string

Example: active

report.companies_house.officers[].appointments[].role string

Example: director

report.companies_house.officers[].appointments[].appointed_on string or null
report.companies_house.officers[].appointments[].resigned_on string or null
report.companies_house.officers[].appointments[].address string or null

The service address recorded on this appointment.

report.companies_house.officers[].appointments[].occupation string or null
report.companies_house.officers[].appointments[].nationality string or null
report.companies_house.officers[].appointments[].country_of_residence string or null
report.companies_house.officers[].disqualifications array of objects

Disqualification orders, for a disqualified director.

report.companies_house.officers[].disqualifications[].case_identifier string or null
report.companies_house.officers[].disqualifications[].type string or null

Example: court-order

report.companies_house.officers[].disqualifications[].from string or null
report.companies_house.officers[].disqualifications[].until string or null
report.companies_house.officers[].disqualifications[].reason string or null
report.companies_house.officers[].disqualifications[].act string or null
report.companies_house.officers[].disqualifications[].section string or null
report.companies_house.officers[].disqualifications[].court string or null
report.companies_house.officers[].disqualifications[].heard_on string or null
report.companies_house.officers[].disqualifications[].company_names array of strings
report.companies_house.officers[].sources array of strings
report.companies_house.summary string
report.watchlists object
report.watchlists.pep_sanctions object

PEP, sanctions and debarment matches for the subject's name (and date of birth where the record holds one), most credible first: matches whose date of birth agrees with the subject, then those with no date of birth on record, then by name similarity. Never verified as the subject.

report.watchlists.pep_sanctions.status string

Enum: clear, matches, error

report.watchlists.pep_sanctions.matches array of objects
report.watchlists.pep_sanctions.matches[].name string

The record's display name.

Example: Penny Wong

report.watchlists.pep_sanctions.matches[].matched_name string or null

The name form that matched the search.

report.watchlists.pep_sanctions.matches[].similarity number

Name similarity, 0-100.

report.watchlists.pep_sanctions.matches[].is_pep boolean
report.watchlists.pep_sanctions.matches[].is_sanctioned boolean
report.watchlists.pep_sanctions.matches[].has_debarment boolean
report.watchlists.pep_sanctions.matches[].birth_date_match string

How the subject's date of birth compares with the record's.

Enum: agrees, year_agrees, not_on_record, differs, not_checked

report.watchlists.pep_sanctions.matches[].lists array of objects

Every list the record appears on.

report.watchlists.pep_sanctions.matches[].lists[].key string

Example: au_parliament

report.watchlists.pep_sanctions.matches[].lists[].name string

Example: Australian Parliament Members

report.watchlists.pep_sanctions.matches[].lists[].type string

Enum: pep, sanction, debarment

report.watchlists.pep_sanctions.matches[].record object
report.watchlists.pep_sanctions.matches[].record.id string
report.watchlists.pep_sanctions.matches[].record.schema string

Example: Person

report.watchlists.pep_sanctions.matches[].record.topics array of strings
report.watchlists.pep_sanctions.matches[].record.wikidata_id string
report.watchlists.pep_sanctions.matches[].record.first_seen string (date)
report.watchlists.pep_sanctions.matches[].record.last_seen string (date)
report.watchlists.pep_sanctions.matches[].record.last_change string (date)
report.watchlists.pep_sanctions.matches[].positions array of objects

Positions held, current first then most recent. Keys present only when known.

report.watchlists.pep_sanctions.matches[].positions[].position string

Example: Minister for Foreign Affairs

report.watchlists.pep_sanctions.matches[].positions[].country string

ISO 3166-1 alpha-2, lower case.

Example: au

report.watchlists.pep_sanctions.matches[].positions[].start_date string
report.watchlists.pep_sanctions.matches[].positions[].end_date string
report.watchlists.pep_sanctions.matches[].positions[].current boolean
report.watchlists.pep_sanctions.matches[].positions[].source_url string
report.watchlists.pep_sanctions.matches[].properties object (dynamic)

The record's properties by name, each a list of strings; only non-empty ones are present. Keys: names, aliases, weak_aliases, title, gender, birth_dates, death_dates, birth_place, birth_country, nationality, citizenship, country, political_party, education, religion, professions, classification, keywords, notes, addresses, phones, emails, websites, source_urls, wikipedia_url. Names include every script the record holds.

report.watchlists.banned_disqualified object
report.watchlists.banned_disqualified.status string

Enum: clear, matches, error

report.watchlists.banned_disqualified.matches array of objects
report.watchlists.banned_disqualified.matches[].first_name string
report.watchlists.banned_disqualified.matches[].middle_name string or null
report.watchlists.banned_disqualified.matches[].last_name string
report.watchlists.banned_disqualified.matches[].banned_type string

Example: ato_disqualified_trustee

report.watchlists.banned_disqualified.matches[].address_suburb string or null
report.watchlists.banned_disqualified.matches[].address_state string or null
report.watchlists.banned_disqualified.matches[].address_postcode string or null
report.watchlists.banned_disqualified.matches[].address_country string or null
report.watchlists.banned_disqualified.matches[].document_number string or null
report.watchlists.banned_disqualified.matches[].start_date string or null
report.watchlists.banned_disqualified.matches[].end_date string or null
report.watchlists.banned_disqualified.matches[].comments string or null
report.watchlists.banned_disqualified.matches[].source_url string or null
report.watchlists.banned_disqualified.matches[].name_similarity number
report.court object
report.court.status string

Enum: clear, matches, error, skipped

report.court.search_name string
report.court.total_records_available integer
report.court.by_listing object (dynamic)
report.court.summaries array of objects
report.court.summaries[].name_on_record string
report.court.summaries[].listing string

Enum: criminal, civil

report.court.summaries[].record_count integer
report.court.summaries[].state string or null
report.court.summaries[].verified_subject boolean

Example: false

report.court.records array of objects

The most recent individual court records held under the names in summaries, newest first, capped at records_limit. Matched on name (and state) only - never verified as the subject.

report.court.records[].name_on_record string

Example: SMITH, John Andrew

report.court.records[].listing string

Enum: criminal, civil

report.court.records[].date string (date) or null

Example: 2023-02-21

report.court.records[].court string or null

Example: Melbourne Magistrates' Court

report.court.records[].location string or null
report.court.records[].state string or null

Example: VIC

report.court.records[].case_number string or null
report.court.records[].case_title string or null
report.court.records[].listing_type string or null

Example: Mention

report.court.records[].details array of strings

Any further descriptive lines the court record carries (charge, matter type, informant).

report.court.records[].verified_subject boolean

Example: false

report.court.records[].sources array of strings
report.court.records_limit integer

Maximum number of records returned in records.

Example: 10

report.court.warning string

Conditions of use for court records. Present whenever the section ran.

Example: Court records must only be used in accordance with the Global Data Terms of Use. Records are provided based on the searched name and state only. Organisations must make further enquiries to ascertain that the subject being searched is associated with the displayed records.

report.adverse_media object

Adverse media on the subject's name, via the same research as adverse_media_check: a news and regulator search, then an AI-assisted web research pass that writes a summary, cites the articles it drew on and classifies what it found. This is the one AI-assisted section of the report and is marked as such (ai_assisted). The research is keyed on name and country only, so matches means adverse media exists for someone carrying the subject's name - it is a lead, not a verified finding. The only corroboration available is the age the media reports, compared with the subject's date of birth (age_match). Results are cached for 14 days.

report.adverse_media.status string

Enum: clear, matches, error, skipped

report.adverse_media.search_name string

Example: John Andrew Smith

report.adverse_media.country string

Country the research was scoped to (ISO 3166-1 alpha-2).

Example: AU

report.adverse_media.ai_assisted boolean

Always true. The summary is machine written from the linked sources.

Example: true

report.adverse_media.name_in_media string or null

The subject's name as the media writes it.

report.adverse_media.age_in_media integer or null

The age the media reports, where an article states one.

report.adverse_media.age_match string

agrees when the reported age is within a year of the subject's current age, differs when it is not, not_reported when no article states an age, not_checked when the subject has no date of birth.

Enum: agrees, differs, not_reported, not_checked

report.adverse_media.location_in_media string or null

The subject's location as the media reports it.

report.adverse_media.summary string or null

AI-written summary of the adverse media found, highlighting the nature of the issues and when they occurred.

report.adverse_media.categories array of strings

Categories of misconduct the media describes.

Enum: financial_crime, violent_crime, organised_crime, drug_offences, sexual_offences, regulatory_action, terrorism, scams_and_fraud, environmental_violations, employment_violations, corruption_and_abuse_of_office

report.adverse_media.links array of strings

The articles and pages the summary was written from.

report.adverse_media.warning string

Conditions of use for adverse media findings. Present whenever the section ran.

report.adverse_media.reason string

Why the section is error or skipped.

report.adverse_media.sources array of strings
report.adverse_media.basis string

The inference id (adverse_media.name_match_unverified) the finding rests on. Present when status is matches.

Example: I4

report.social object

Professional profile matched on one of the subject's phones or emails. When the profile's name agrees with the subject the status is ok and the profile is attributed to them. When it does not (a different name, a different first name, or no name at all) the profile is still returned with status unverified, a name_match value and a warning: it may be the subject under another name, or whoever shares or previously held the contact, and must not be relied on without further enquiry.

report.social.status string

Enum: ok, unverified, empty, skipped

report.social.name_match string

How the profile's name compares with the subject's.

Enum: match, partial, mismatch, unknown

report.social.warning string

Present when status is unverified.

report.social.matched_on object
report.social.matched_on.type string

Enum: phone, email

report.social.matched_on.value string
report.social.match_likelihood integer or null

Provider match likelihood, 1-10.

report.social.name string or null
report.social.middle_name string or null
report.social.sex string or null
report.social.birth_date string (date) or null

Full date of birth when the profile holds one.

report.social.birth_year integer or null
report.social.industry string or null
report.social.location object

The profile's current location; keys present only when known.

report.social.location.street_address string
report.social.location.locality string
report.social.location.region string
report.social.location.postal_code string
report.social.location.country string
report.social.previous_locations array of strings

Other locations the profile has been seen at, most recent first.

report.social.addresses array of objects

Street addresses held on the profile. Leads only - not verified against the subject's address history.

report.social.addresses[].street_address string
report.social.addresses[].address_line_2 string
report.social.addresses[].locality string
report.social.addresses[].region string
report.social.addresses[].postal_code string
report.social.addresses[].country string
report.social.current_role object
report.social.current_role.title string or null
report.social.current_role.company string or null
report.social.current_role.role string

Job function, e.g. finance.

report.social.current_role.sub_role string
report.social.current_role.seniority string
report.social.current_role.company_website string
report.social.current_role.company_size string
report.social.current_role.company_founded string
report.social.current_role.company_location string
report.social.current_role.company_linkedin_url string
report.social.current_role.industry string
report.social.current_role.start_date string or null
report.social.current_role.last_changed string (date)
report.social.current_role.last_verified string (date)
report.social.experience array of objects

Employment history, most recent first. Keys present only when known.

report.social.experience[].title string
report.social.experience[].company string
report.social.experience[].role string
report.social.experience[].sub_role string
report.social.experience[].seniority string
report.social.experience[].industry string
report.social.experience[].company_size string
report.social.experience[].company_website string
report.social.experience[].location string
report.social.experience[].start_date string
report.social.experience[].end_date string
report.social.experience[].current boolean
report.social.education array of objects

Most recent first. Keys present only when known.

report.social.education[].institution string
report.social.education[].type string
report.social.education[].website string
report.social.education[].studies array of strings

Majors, minors and degrees combined.

report.social.education[].degrees array of strings
report.social.education[].majors array of strings
report.social.education[].minors array of strings
report.social.education[].gpa string
report.social.education[].location string
report.social.education[].start_date string
report.social.education[].end_date string
report.social.emails array of objects
report.social.emails[].email string
report.social.emails[].type string or null

work, personal, current professional, etc. when the provider says.

report.social.emails[].recommended boolean

The provider's recommended personal email.

report.social.emails[].corroborates string or null

global_data when the same email is on the subject's Global Data record.

report.social.phones array of objects
report.social.phones[].phone string
report.social.phones[].type string or null

Enum: mobile, null

report.social.phones[].corroborates string or null
report.social.interests array of strings
report.social.record_quality object

The provider's own quality signals for the record.

report.social.record_quality.profile_score string
report.social.record_quality.activity_score string
report.social.record_quality.dataset_version string
report.social.record_quality.location_last_updated string (date)
report.social.record_date string (date) or null
report.social.profiles array of objects
report.social.profiles[].network string or null
report.social.profiles[].url string or null
report.social.profiles[].username string or null
report.social.skills array of strings
report.social.sources array of strings
report.section_status object (dynamic)

Per-section outcome, e.g. {"identity":"ok","watchlists":"clear","business":"empty","court":"error"}.

provenance object

Present when status is complete.

provenance.sources array of objects

Every lookup performed, with the exact query, dataset or provider, round and result count.

provenance.inferences array of objects

Every conclusion drawn, with the rule applied and the evidence it rests on.

provenance.research_notes array of objects

Chronological research log.

provenance.research_notes[].seq integer
provenance.research_notes[].round integer
provenance.research_notes[].phase string

Enum: input, lookup, finding, decision, rejected, not_attempted, outcome

provenance.research_notes[].text string
provenance.research_notes[].refs array of strings

Also available as a PDF (application/pdf)

Standard error responses: 400 401 403 429 5XX See common error responses