snake_case. Identifiers are UUIDs. Dates are ISO 8601, in UTC, to the second (2026-10-06T20:03:57Z). A field without a value is null and an empty list is []: a field is never missing, except the three post-event blocks of a post. Every object is sent as it is when the event is sent.
Never sent: the raw data TIKT reads, the names of the services it uses, the scoring model, costs, the people TIKT processed who did not become leads, secrets.
Lead
A person scored against your ICP, with their full profile and their company. It travels in every lead and list event, and inlead.matched.
| Field | Type | Description |
|---|---|---|
id | uuid | The lead’s identifier in TIKT. |
status | string | active, or bad_fit when discarded. client, snoozed and done are reserved. |
score | integer or null | How many ICP criteria the person meets, from 0 to 5. |
score_max | integer | Always 5. |
fit_band | string or null | strong, good, weak or excluded. |
criteria | array of objects | One entry per ICP criterion. |
criteria[].key | string | job_role, location, company_type, company_size or industry. |
criteria[].label | string | The criterion’s name, as on your ICP page. |
criteria[].mode | string | strict (required) or weighted. |
criteria[].verdict | string | yes, no or unknown. |
criteria[].justification | string or null | Why, in one sentence. In English; in French for leads scored before September 23, 2026. |
disqualifiers | array of strings | The exclusions that apply to this lead; empty when none. |
summary | string or null | The scoring summary, in a sentence or two. |
scored_at | date-time or null | When the lead was last scored. |
scoring_version | string or null | The version of the scoring rules, for example criteria-v2-en. |
icp_version_id | uuid or null | The ICP version the lead was scored against. |
engagement_count | integer | All the person’s reactions and comments on your tracked profiles’ posts, counted when the event is sent. Their comments on their own posts never count. |
reaction_count | integer | Of which reactions. |
comment_count | integer | Of which comments. |
signals | array of objects | The 20 most recent engagements, newest first: each a signal without its kol (its post carries it). |
first_seen_at | date-time or null | When TIKT first saw the person. |
last_engagement_at | date-time or null | The person’s most recent engagement, counted when the event is sent. |
status_changed_at | date-time or null | When the status last changed. |
lists | array of objects | The lists the lead is in. |
lists[].id | uuid | The list. |
lists[].name | string | Its name. |
lists[].added_at | date-time | When the lead was added to it. |
handled | boolean | true when the lead is in at least one list. |
console_url | string | The lead in the TIKT console. |
person | object | The person, below. |
person.id | uuid | The person’s identifier in TIKT. |
person.linkedin_url | string or null | Their LinkedIn profile. |
person.linkedin_member_id | string or null | LinkedIn’s member identifier (ACoAA…). |
person.full_name | string or null | Their full name. |
person.first_name | string or null | First name. |
person.last_name | string or null | Last name. |
person.headline | string or null | The headline under their name on LinkedIn. |
person.about | string or null | Their About section. |
person.picture_url | string or null | Their profile picture. The address expires after about 18 days: copy the image if you keep it. |
person.location | object | Where they are. |
person.location.country | string or null | Country. |
person.location.country_code | string or null | Two-letter country code. |
person.location.region | string or null | Region or state. |
person.location.city | string or null | City. |
person.current_position | object | Their current job. |
person.current_position.title | string or null | Job title. |
person.current_position.company_name | string or null | Company name. |
person.current_position.company_linkedin_url | string or null | The company’s LinkedIn page. |
person.seniority | string or null | Their seniority level. |
person.department | string or null | Their department. |
person.positions | array of objects | Their experience, current job first. |
person.positions[].title | string or null | Job title. |
person.positions[].company_name | string or null | Company. |
person.positions[].company_linkedin_url | string or null | The company’s LinkedIn page. |
person.positions[].company_linkedin_id | string or null | LinkedIn’s company identifier. |
person.positions[].start_date | string or null | YYYY-MM, or YYYY. |
person.positions[].end_date | string or null | null for a current job. |
person.positions[].is_current | boolean | true for a current job. |
person.positions[].duration | string or null | As LinkedIn writes it, for example 2 yrs 6 mos. |
person.positions[].location | string or null | Where. |
person.positions[].employment_type | string or null | Full-time, contract… |
person.positions[].workplace_type | string or null | On-site, hybrid or remote. |
person.positions[].description | string or null | The description they wrote. |
person.education | array of objects | Their education. Empty for people read before September 28, 2026. |
person.education[].school_name | string or null | School. |
person.education[].school_linkedin_url | string or null | The school’s LinkedIn page. |
person.education[].degree | string or null | Degree. |
person.education[].field_of_study | string or null | Field of study. |
person.education[].start_year | integer or null | First year. |
person.education[].end_year | integer or null | Last year. |
person.languages | array of objects | Languages. |
person.languages[].name | string | Language. |
person.languages[].proficiency | string or null | Proficiency, as LinkedIn writes it. |
person.skills | array of strings | Skills. |
person.followers_count | integer or null | LinkedIn followers. |
person.connections_count | integer or null | LinkedIn connections. |
person.flags | object | What their profile shows. |
person.flags.open_to_work | boolean | Open to work. |
person.flags.is_hiring | boolean | Hiring. |
person.flags.is_premium | boolean | LinkedIn Premium. |
person.flags.is_influencer | boolean | LinkedIn Top Voice. |
person.flags.is_verified | boolean | Verified identity. |
person.flags.is_creator | boolean | Creator mode. |
person.profile_language | string or null | The profile’s language, for example en. |
person.profile_country | string or null | The profile’s country, two letters. |
person.websites | array of strings | The websites on their profile. |
person.linkedin_member_since | date-time or null | When they joined LinkedIn. |
person.profile_read_at | date-time or null | When TIKT last read their profile. |
company | object or null | Their current company, below; null when unknown. |
company.id | uuid | The company’s identifier in TIKT. |
company.linkedin_company_id | string or null | LinkedIn’s company identifier. |
company.name | string or null | Name. |
company.universal_name | string or null | The company’s handle in its LinkedIn address. |
company.linkedin_url | string or null | Its LinkedIn page. |
company.website | string or null | Website. |
company.domain | string or null | Website domain. |
company.logo_url | string or null | Logo. The address can expire: copy the image if you keep it. |
company.tagline | string or null | Tagline. |
company.about | string or null | About section. |
company.industry | string or null | Industry, as LinkedIn names it. |
company.specialties | array of strings | Specialties. |
company.company_size | string or null | LinkedIn’s size range, for example 201-500 employees. |
company.employees_count | integer or null | Employees on LinkedIn. |
company.organization_type | string or null | Privately Held, Public Company, Partnership… |
company.founded_year | integer or null | Year founded. |
company.followers_count | integer or null | LinkedIn followers. |
company.headquarters | string or null | Headquarters. |
company.country_code | string or null | Country, two letters. |
company.locations | array of strings | Its addresses. |
company.enriched_at | date-time or null | When TIKT last read the company page. |
Example: lead
Example: lead
{
"id": "99ccbeee-4fe5-4bc4-8244-8a8c9ead0af7",
"status": "active",
"score": 4,
"score_max": 5,
"fit_band": "good",
"criteria": [
{
"key": "job_role",
"label": "Job title",
"mode": "weighted",
"verdict": "no",
"justification": "Chief Financial Officer is not one of the job roles this ICP targets."
},
{
"key": "location",
"label": "Location",
"mode": "strict",
"verdict": "yes",
"justification": "Boston, United States is inside the target locations."
},
{
"key": "company_type",
"label": "Company type",
"mode": "weighted",
"verdict": "yes",
"justification": "Northwind Analytics is privately held, a target company type."
},
{
"key": "company_size",
"label": "Company size",
"mode": "weighted",
"verdict": "yes",
"justification": "Northwind Analytics has 340 employees, inside the 50 to 1,000 range."
},
{
"key": "industry",
"label": "Industry",
"mode": "weighted",
"verdict": "yes",
"justification": "Northwind Analytics works in Software Development, a target industry."
}
],
"disqualifiers": [],
"summary": "The location, company type, company size, industry match; the job title does not.",
"scored_at": "2026-10-06T08:10:06Z",
"scoring_version": "criteria-v2-en",
"icp_version_id": "e18507fb-b82e-48a9-8616-dbe2793d98dc",
"engagement_count": 1,
"reaction_count": 0,
"comment_count": 1,
"signals": [
{
"id": "9cb30a4f-f1a9-4961-8601-dddcde91d304",
"kind": "comment",
"reaction_type": null,
"text": "PLAYBOOK, please. We are rebuilding our close this quarter.",
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7435354408163047384?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7435354408163047384%2C7412420975674115234%29",
"likes": 0,
"replies": 0,
"is_pinned": false,
"is_edited": false,
"occurred_at": "2026-10-06T06:46:51Z",
"captured_at": "2026-10-06T08:04:25Z",
"post": {
"id": "4e29e2ca-1f75-4d6f-8f23-692956d9c949",
"linkedin_post_id": "7435354408163047384",
"urn": "urn:li:activity:7435354408163047384",
"url": "https://www.linkedin.com/posts/avery-collins-example_the-finance-playbook-activity-7435354408163047384-Ab1c",
"author": {
"type": "profile",
"name": "Avery Collins",
"public_id": "avery-collins-example",
"linkedin_url": "https://www.linkedin.com/in/avery-collins-example",
"avatar_url": "https://media.licdn.com/dms/image/v2/EXAMPLE/profile-displayphoto-scale_400_400/0/avery-collins-example"
},
"text": "The finance playbook we wish we had on day one is finally public. Twenty templates across five stages: plan, operate, close, decide, report. Comment PLAYBOOK and I'll send it over 👇",
"hashtags": [],
"media_type": "image",
"media": {
"images": [
"https://media.licdn.com/dms/image/v2/EXAMPLE/feedshare-shrink_1280/0/the-finance-playbook-1-example"
],
"videos": []
},
"external_links": [
"https://www.example.com/the-finance-playbook"
],
"is_repost": false,
"posted_at": "2026-10-06T07:01:57Z",
"counters": {
"reactions": 214,
"comments": 187,
"checked_at": "2026-10-06T20:02:27Z"
},
"tracking_status": "hot",
"source": "auto",
"kol": {
"id": "b2905fad-ec45-4372-8785-cb41295dafb6",
"name": "Avery Collins",
"relationship": "competitor",
"linkedin_url": "https://www.linkedin.com/in/avery-collins-example/"
},
"console_url": "https://app.trytikt.com/posts?post=4e29e2ca-1f75-4d6f-8f23-692956d9c949"
}
}
],
"first_seen_at": "2026-10-06T08:10:06Z",
"last_engagement_at": "2026-10-06T06:46:51Z",
"status_changed_at": null,
"lists": [
{
"id": "61f45cf5-c72b-466c-8fcb-a9d39f5b80f5",
"name": "Hot CFOs",
"added_at": "2026-10-06T08:12:31Z"
}
],
"handled": true,
"console_url": "https://app.trytikt.com/leads?lead=99ccbeee-4fe5-4bc4-8244-8a8c9ead0af7",
"person": {
"id": "5e8dc4b8-ae54-4c26-8da7-733b0cea5d96",
"linkedin_url": "https://www.linkedin.com/in/jordan-rivera-example/",
"linkedin_member_id": "ACoAAExamplef83be5u9p2wy6lemxbrkkf9pj4zz",
"full_name": "Jordan Rivera",
"first_name": "Jordan",
"last_name": "Rivera",
"headline": "Chief Financial Officer at Northwind Analytics",
"about": "Finance leader for software companies. I help teams plan, close and report with fewer spreadsheets and better numbers.",
"picture_url": "https://media.licdn.com/dms/image/v2/EXAMPLE/profile-displayphoto-shrink_800_800/0/jordan-rivera-example",
"location": {
"country": "United States",
"country_code": "US",
"region": "Massachusetts",
"city": "Boston"
},
"current_position": {
"title": "Chief Financial Officer",
"company_name": "Northwind Analytics",
"company_linkedin_url": "https://www.linkedin.com/company/northwind-analytics-example/"
},
"seniority": "manager",
"department": null,
"positions": [
{
"title": "Chief Financial Officer",
"company_name": "Northwind Analytics",
"company_linkedin_url": "https://www.linkedin.com/company/northwind-analytics-example/",
"company_linkedin_id": "76485923",
"start_date": "2026-03",
"end_date": null,
"is_current": true,
"duration": "8 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "VP Finance",
"company_name": "Contoso Finance",
"company_linkedin_url": "https://www.linkedin.com/company/contoso-finance-example/",
"company_linkedin_id": "71047941",
"start_date": "2021-02",
"end_date": "2023-03",
"is_current": false,
"duration": "3 yrs 2 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "Head of FP&A",
"company_name": "Fabrikam Systems",
"company_linkedin_url": "https://www.linkedin.com/company/fabrikam-systems-example/",
"company_linkedin_id": "73802068",
"start_date": "2018-03",
"end_date": "2020-04",
"is_current": false,
"duration": "4 yrs 3 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "Finance Manager",
"company_name": "Adatum Corporation",
"company_linkedin_url": "https://www.linkedin.com/company/adatum-corporation-example/",
"company_linkedin_id": "77900417",
"start_date": "2015-04",
"end_date": "2017-05",
"is_current": false,
"duration": "2 yrs 4 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "Senior Financial Analyst",
"company_name": "Proseware",
"company_linkedin_url": "https://www.linkedin.com/company/proseware-example/",
"company_linkedin_id": "72023370",
"start_date": "2012-05",
"end_date": "2014-06",
"is_current": false,
"duration": "3 yrs 5 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "Financial Analyst",
"company_name": "Tailspin Data",
"company_linkedin_url": "https://www.linkedin.com/company/tailspin-data-example/",
"company_linkedin_id": "71525700",
"start_date": "2009-06",
"end_date": "2011-07",
"is_current": false,
"duration": "4 yrs 6 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "Audit Associate",
"company_name": "Woodgrove Consulting",
"company_linkedin_url": "https://www.linkedin.com/company/woodgrove-consulting-example/",
"company_linkedin_id": "75806787",
"start_date": "2006-07",
"end_date": "2008-08",
"is_current": false,
"duration": "2 yrs 7 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
},
{
"title": "Finance Intern",
"company_name": "Adatum Corporation",
"company_linkedin_url": "https://www.linkedin.com/company/adatum-corporation-example/",
"company_linkedin_id": "77900417",
"start_date": "2003-08",
"end_date": "2005-09",
"is_current": false,
"duration": "3 yrs 8 mos",
"location": null,
"employment_type": null,
"workplace_type": null,
"description": null
}
],
"education": [
{
"school_name": "Example State University",
"school_linkedin_url": null,
"degree": "Master of Science",
"field_of_study": "Finance",
"start_year": 2006,
"end_year": 2010
},
{
"school_name": "Riverside College",
"school_linkedin_url": null,
"degree": "Bachelor of Arts",
"field_of_study": "Economics",
"start_year": 2004,
"end_year": 2006
}
],
"languages": [
{
"name": "English",
"proficiency": "Native or bilingual proficiency"
},
{
"name": "Spanish",
"proficiency": "Elementary proficiency"
}
],
"skills": [
"Financial planning",
"Forecasting"
],
"followers_count": 582,
"connections_count": 574,
"flags": {
"open_to_work": false,
"is_hiring": false,
"is_premium": true,
"is_influencer": false,
"is_verified": true,
"is_creator": false
},
"profile_language": "en",
"profile_country": "US",
"websites": [],
"linkedin_member_since": "2009-05-14T00:00:00Z",
"profile_read_at": "2026-10-06T08:05:12Z"
},
"company": {
"id": "3c998b48-26a4-493c-804b-81d7e5e7a9ae",
"linkedin_company_id": "76485923",
"name": "Northwind Analytics",
"universal_name": "northwind-analytics",
"linkedin_url": "https://www.linkedin.com/company/northwind-analytics-example",
"website": "https://www.northwind-analytics.example/",
"domain": "northwind-analytics.example",
"logo_url": "https://media.licdn.com/dms/image/v2/EXAMPLE/company-logo_200_200/0/northwind-analytics-example",
"tagline": "Planning and forecasting software for finance teams.",
"about": "Northwind Analytics builds planning and forecasting software for mid-size finance teams. Customers close their books faster and plan with live numbers instead of spreadsheets.",
"industry": "Software Development",
"specialties": [],
"company_size": "201-500 employees",
"employees_count": 340,
"organization_type": "Privately Held",
"founded_year": 2014,
"followers_count": 12840,
"headquarters": "Boston, Massachusetts",
"country_code": "US",
"locations": [
"100 Example Street, Boston, Massachusetts 02110, US"
],
"enriched_at": "2026-10-01T21:43:10Z"
}
}
Signal
An engagement: what a person did on a post of a profile you track.| Field | Type | Description |
|---|---|---|
id | uuid | The engagement’s identifier in TIKT. |
kind | string | reaction or comment. |
reaction_type | string or null | LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION or ENTERTAINMENT; null for a comment. |
text | string or null | The comment; null for a reaction. |
url | string or null | The comment on LinkedIn; null for a reaction. |
likes | integer | Likes on the comment; 0 for a reaction. |
replies | integer | Replies to the comment; 0 for a reaction. |
is_pinned | boolean | The comment is pinned. |
is_edited | boolean | The comment was edited. |
occurred_at | date-time or null | When the comment was written. A reaction has none: LinkedIn doesn’t date reactions. |
captured_at | date-time | When TIKT saw it. |
post | object | The post, without its three post-event blocks. |
kol | object | The tracked profile who wrote the post: {id, name, relationship, linkedin_url}. Absent from lead.signals. |
Example: signal
Example: signal
{
"id": "9cb30a4f-f1a9-4961-8601-dddcde91d304",
"kind": "comment",
"reaction_type": null,
"text": "PLAYBOOK, please. We are rebuilding our close this quarter.",
"url": "https://www.linkedin.com/feed/update/urn:li:activity:7435354408163047384?commentUrn=urn%3Ali%3Acomment%3A%28activity%3A7435354408163047384%2C7412420975674115234%29",
"likes": 0,
"replies": 0,
"is_pinned": false,
"is_edited": false,
"occurred_at": "2026-10-06T06:46:51Z",
"captured_at": "2026-10-06T08:04:25Z",
"post": {
"id": "4e29e2ca-1f75-4d6f-8f23-692956d9c949",
"linkedin_post_id": "7435354408163047384",
"urn": "urn:li:activity:7435354408163047384",
"url": "https://www.linkedin.com/posts/avery-collins-example_the-finance-playbook-activity-7435354408163047384-Ab1c",
"author": {
"type": "profile",
"name": "Avery Collins",
"public_id": "avery-collins-example",
"linkedin_url": "https://www.linkedin.com/in/avery-collins-example",
"avatar_url": "https://media.licdn.com/dms/image/v2/EXAMPLE/profile-displayphoto-scale_400_400/0/avery-collins-example"
},
"text": "The finance playbook we wish we had on day one is finally public. Twenty templates across five stages: plan, operate, close, decide, report. Comment PLAYBOOK and I'll send it over 👇",
"hashtags": [],
"media_type": "image",
"media": {
"images": [
"https://media.licdn.com/dms/image/v2/EXAMPLE/feedshare-shrink_1280/0/the-finance-playbook-1-example"
],
"videos": []
},
"external_links": [
"https://www.example.com/the-finance-playbook"
],
"is_repost": false,
"posted_at": "2026-10-06T07:01:57Z",
"counters": {
"reactions": 214,
"comments": 187,
"checked_at": "2026-10-06T20:02:27Z"
},
"tracking_status": "hot",
"source": "auto",
"kol": {
"id": "b2905fad-ec45-4372-8785-cb41295dafb6",
"name": "Avery Collins",
"relationship": "competitor",
"linkedin_url": "https://www.linkedin.com/in/avery-collins-example/"
},
"console_url": "https://app.trytikt.com/posts?post=4e29e2ca-1f75-4d6f-8f23-692956d9c949"
},
"kol": {
"id": "b2905fad-ec45-4372-8785-cb41295dafb6",
"name": "Avery Collins",
"relationship": "competitor",
"linkedin_url": "https://www.linkedin.com/in/avery-collins-example/"
}
}
Post
A LinkedIn post of a profile you track.| Field | Type | Description |
|---|---|---|
id | uuid | The post’s identifier in TIKT. |
linkedin_post_id | string | LinkedIn’s activity number. |
urn | string | urn:li:activity:…. |
url | string | The post on LinkedIn. |
author | object | Who published it. |
author.type | string | profile or company. |
author.name | string or null | Name. |
author.public_id | string or null | The handle in their LinkedIn address. |
author.linkedin_url | string or null | Their LinkedIn page. |
author.avatar_url | string or null | Their picture. The address expires. |
text | string or null | The full text. |
hashtags | array of strings | Hashtags. |
media_type | string or null | The kind of media, for example image. |
media | object | Its images and videos. |
media.images | array of strings | Image addresses. They expire after 7 to 18 days: copy the files if you keep them. |
media.videos | array of strings | Video addresses, which expire the same way. |
external_links | array of strings | Links in the post. |
is_repost | boolean | A repost of someone else’s post. |
posted_at | date-time or null | When it was published. |
counters | object | Its counts, as last checked. |
counters.reactions | integer or null | Reactions. |
counters.comments | integer or null | Comments. |
counters.checked_at | date-time or null | When TIKT last checked them. |
tracking_status | string | hot, warm or closed: how often TIKT checks it, or no longer. |
source | string | auto (found by a cycle), onboarding or manual (added by hand). |
kol | object | The tracked profile: {id, name, relationship, linkedin_url}. |
console_url | string | The post in the TIKT console. |
harvest | object | Post events only. Its harvest. |
harvest.state | string | harvesting, paused or closed. |
harvest.paused | boolean | A pause is set on this post. |
harvest.excluded_reason | string or null | Why it isn’t harvested: post_paused, no_profile, profile_removed, profile_paused or published_before_resume. |
performance_vs_usual | number or null | Post events only. Its engagement compared to the profile’s usual posts (2 means twice as much); null until the profile has 8 posts old enough to compare. |
yield | object | Post events only. What it brought you. |
yield.people_captured | integer | People processed from it. |
yield.leads_at_threshold | integer | Of whom leads at or above your score threshold. |
yield.avg_score_at_threshold | number or null | Their average score. |
Example: post
Example: post
{
"id": "011c46fa-46b7-45d8-8911-df2f20ea4080",
"linkedin_post_id": "7450227443607533490",
"urn": "urn:li:activity:7450227443607533490",
"url": "https://www.linkedin.com/posts/drew-harper-example_three-mistakes-finance-teams-activity-7450227443607533490-Ab1c",
"author": {
"type": "profile",
"name": "Drew Harper",
"public_id": "drew-harper-example",
"linkedin_url": "https://www.linkedin.com/in/drew-harper-example",
"avatar_url": "https://media.licdn.com/dms/image/v2/EXAMPLE/profile-displayphoto-scale_400_400/0/drew-harper-example"
},
"text": "We reviewed 120 finance teams this year. The same three mistakes keep coming back. ➡️ Forecasts built once a quarter, then forgotten. ➡️ Tools bought without an owner. ➡️ Reports nobody reads. Here is the checklist we now use with every new team, step by step, with the questions we ask in the first week and the numbers we look at before anything else.",
"hashtags": [],
"media_type": "image",
"media": {
"images": [
"https://media.licdn.com/dms/image/v2/EXAMPLE/feedshare-shrink_1280/0/three-mistakes-finance-teams-1-example"
],
"videos": []
},
"external_links": [
"https://www.example.com/three-mistakes-finance-teams"
],
"is_repost": false,
"posted_at": "2026-10-06T07:01:57Z",
"counters": {
"reactions": 214,
"comments": 187,
"checked_at": "2026-10-06T20:02:27Z"
},
"tracking_status": "hot",
"source": "auto",
"kol": {
"id": "f6e53743-d2d1-499a-8735-487188ed4edd",
"name": "Drew Harper",
"relationship": "competitor",
"linkedin_url": "https://www.linkedin.com/in/drew-harper-example/"
},
"console_url": "https://app.trytikt.com/posts?post=011c46fa-46b7-45d8-8911-df2f20ea4080",
"harvest": {
"state": "harvesting",
"paused": false,
"excluded_reason": null
},
"performance_vs_usual": 2.07,
"yield": {
"people_captured": 14,
"leads_at_threshold": 0,
"avg_score_at_threshold": null
}
}
Tracked profile
A LinkedIn profile you track (kol in the events). Inside a signal, a post and kol.followers_recorded, a short form travels: {id, name, relationship, linkedin_url}.
| Field | Type | Description |
|---|---|---|
id | uuid | The tracked profile’s identifier in TIKT. |
linkedin_url | string | Its LinkedIn profile. |
public_identifier | string or null | The handle in its LinkedIn address. |
name | string or null | Name; null until its first read. |
avatar_url | string or null | Picture. The address expires. |
relationship | string | The relationship you chose, for example competitor or influencer. |
custom_label | string or null | Your own label. |
state | string | active, paused (scanning paused) or archived (no longer tracked). |
auto_harvest | object | Automatic harvesting of its posts. |
auto_harvest.enabled | boolean | On or off. |
auto_harvest.since | date-time or null | After a pause, posts published from this date are harvested. |
onboarding_state | string | pending until its first read, then completed. |
followers_count | integer or null | Followers. |
posts_last_28_days | integer or null | Posts in the last 28 days. |
posts_per_week | number or null | Posts per week. |
typical_engagement | number or null | Reactions and comments on a typical post. |
engagement_p90 | number or null | On its best posts (the 90th percentile). |
followers_gained_7d | integer or null | Followers gained in 7 days. |
followers_gained_30d | integer or null | Followers gained in 30 days; null until there are 30 days of history. |
last_post_at | date-time or null | Its latest post. |
added_at | date-time | When you started tracking it. |
console_url | string | The profile in the TIKT console. |
Example: tracked profile
Example: tracked profile
{
"id": "f6e53743-d2d1-499a-8735-487188ed4edd",
"linkedin_url": "https://www.linkedin.com/in/drew-harper-example/",
"public_identifier": "drew-harper-example",
"name": "Drew Harper",
"avatar_url": "https://media.licdn.com/dms/image/v2/EXAMPLE/profile-displayphoto-scale_400_400/0/drew-harper-example",
"relationship": "competitor",
"custom_label": null,
"state": "active",
"auto_harvest": {
"enabled": true,
"since": null
},
"onboarding_state": "completed",
"followers_count": 44120,
"posts_last_28_days": 12,
"posts_per_week": 3,
"typical_engagement": 61.5,
"engagement_p90": 174,
"followers_gained_7d": 96,
"followers_gained_30d": 410,
"last_post_at": "2026-10-06T07:01:57Z",
"added_at": "2026-09-12T09:30:00Z",
"console_url": "https://app.trytikt.com/watchlist?kol=f6e53743-d2d1-499a-8735-487188ed4edd"
}
Cycle
One run of the agent for your workspace: the posts checked, the people harvested, the credits charged.| Field | Type | Description |
|---|---|---|
id | string | The run’s identifier. |
status | string | completed or failed. |
started_at | date-time | Start. |
completed_at | date-time | End. |
duration_seconds | integer or null | Duration. |
posts_checked | integer | Posts whose counts were checked. |
posts_harvested | integer | Posts harvested. |
people_processed | integer | People processed. |
credits_charged | integer | Credits charged. |
credits_remaining | integer or null | Credits you can still spend, when the event is sent. |
leads_written | integer | Leads created or updated. |
errors | array of objects | Empty when completed. Each {step, message}: step is discovery or harvest; message says what happened and what was not charged. |
Example: cycle
Example: cycle
{
"id": "run_18vjkk1eipydcd7vvi4e81nn3z",
"status": "completed",
"started_at": "2026-10-06T20:02:33Z",
"completed_at": "2026-10-06T20:03:57Z",
"duration_seconds": 85,
"posts_checked": 2,
"posts_harvested": 2,
"people_processed": 16,
"credits_charged": 11,
"credits_remaining": 3808,
"leads_written": 9,
"errors": []
}
Credits
Your credits for the current billing period. One credit is one person processed.| Field | Type | Description |
|---|---|---|
total | integer | Credits of the period. |
used | integer | Used. |
reserved | integer | Set aside for harvests in progress. |
remaining | integer | total minus used. |
available | integer | remaining minus reserved: what the agent can still spend. |
percent_used | number | Percent used, to one decimal. |
period_start | date-time or null | Start of the period. |
period_end | date-time or null | End of the period. |
threshold | integer | credits.low only: the threshold crossed, 80 or 90. |
Example: credits
Example: credits
{
"total": 10000,
"used": 8050,
"reserved": 0,
"remaining": 1950,
"available": 1950,
"percent_used": 80.5,
"period_start": "2026-08-31T15:02:42Z",
"period_end": "2026-10-30T15:02:42Z",
"threshold": 80
}
ICP
A version of your ideal customer profile: what changes a lead’s score.| Field | Type | Description |
|---|---|---|
id | uuid | This version. |
created_at | date-time | When it was saved. |
source | string | How it was made. |
criteria | object | What you target. |
criteria.job_roles | array of strings | Job roles. |
criteria.seniorities | array of strings | Seniority levels. |
criteria.departments | array of strings | Departments. |
criteria.locations | array of strings | Locations. |
criteria.excluded_locations | array of strings | Locations excluded. |
criteria.industries | array of strings | Industries. |
criteria.excluded_industries | array of strings | Industries excluded. |
criteria.company_types | array of strings | Company types. |
criteria.company_size | object | Company size. |
criteria.company_size.min | integer or null | Minimum employees. |
criteria.company_size.max | integer or null | Maximum employees. |
modes | object | For each criterion, strict (required) or weighted. |
modes.job_role | string | Job role. |
modes.location | string | Location. |
modes.company_type | string | Company type. |
modes.company_size | string | Company size. |
modes.industry | string | Industry. |
exclusions | object | Who is never a lead. |
exclusions.excluded_job_titles | array of strings | Job titles excluded. |
exclusions.competitors | array of strings | Competitors whose people are excluded. |
exclusions.custom | array of strings | Your own exclusion rules, in plain words. |
exclusions.blocked_companies_count | integer | Companies excluded (each one is a blocklist.* event). |
switches | object | Two switches. |
switches.exclude_open_to_work | boolean | Exclude people open to work. |
switches.exclude_students | boolean | Exclude students. |
Example: icp
Example: icp
{
"id": "e18507fb-b82e-48a9-8616-dbe2793d98dc",
"created_at": "2026-10-05T12:06:56Z",
"source": "MANUAL",
"criteria": {
"job_roles": [
"Chief Financial Officer",
"VP Finance",
"Head of Finance",
"Finance Director",
"Controller",
"Head of FP&A",
"CEO",
"COO"
],
"seniorities": [
"CXO",
"Director",
"Owner",
"VP"
],
"departments": [
"Finance",
"Founder/Executive",
"Operations"
],
"locations": [
"United States",
"Canada",
"United Kingdom"
],
"excluded_locations": [],
"industries": [
"Software Development",
"Financial Services",
"IT Services and IT Consulting"
],
"excluded_industries": [],
"company_types": [
"Partnership",
"Privately Held",
"Public Company"
],
"company_size": {
"min": 50,
"max": 1000
}
},
"modes": {
"job_role": "weighted",
"location": "strict",
"company_type": "weighted",
"company_size": "weighted",
"industry": "weighted"
},
"exclusions": {
"excluded_job_titles": [
"Intern",
"Student",
"Trainee",
"Apprentice"
],
"competitors": [
"Litware Labs",
"Proseware",
"Tailspin Data"
],
"custom": [
"Freelancers and independent consultants",
"Agencies and service providers",
"Companies that resell planning software"
],
"blocked_companies_count": 6
},
"switches": {
"exclude_open_to_work": true,
"exclude_students": true
}
}
Destination
A place TIKT sends events to. Never a secret, never a header value.| Field | Type | Description |
|---|---|---|
id | uuid | The destination. |
name | string | Its name. |
tool | string | webhook, n8n, make, zapier, clay or slack. |
url | string | Its address. For Slack, the origin followed by /…: a Slack address is itself a key. |
all_events | boolean | Listens to all events, including the ones added later. |
events | array of strings | The events it listens to, when all_events is false; it can be empty for a connection that only receives workflows. |
format | string | single (one request per event) or batch (up to 100 per request). |
status | string | active, off or disabled (turned off by TIKT). |
disabled_reason | string or null | failed_for_3_days or gone_410. |
disabled_at | date-time or null | When TIKT turned it off. |
api_version | string | The version of the payloads it receives. |
created_at | date-time | When it was created. |
slack | object | Slack destinations only: {channel, team}. |
last_response_status | integer or null | webhook.endpoint_disabled only: the last answer’s status code. |
Example: destination
Example: destination
{
"id": "5651ac74-eb8b-465f-864d-52a81f285b80",
"name": "n8n — hot leads",
"tool": "n8n",
"url": "https://n8n.example.com/webhook/tikt",
"all_events": false,
"events": [
"lead.created",
"lead.engaged_again",
"list.lead_added"
],
"format": "single",
"status": "active",
"disabled_reason": null,
"disabled_at": null,
"api_version": "2026-10-01",
"created_at": "2026-10-06T22:30:00Z"
}
Workflow
Inlead.matched only: the workflow that matched, as it was at that moment. Never its filters or its actions.
| Field | Type | Description |
|---|---|---|
id | uuid | The workflow. |
name | string | Its name when the lead matched. |
reason | string | new (a new lead), came_back (it engaged again), rescored (its score changed) or past (it already matched when the workflow was first turned on). |
Example: workflow
Example: workflow
{
"id": "fa302bbc-65d8-49be-86a8-6abbfe4c20ae",
"name": "Hot CFOs",
"reason": "new"
}
