Accounts
The account object: one company or school district across all campaigns.
An account is one company or one school district across all campaigns of the organization. One account can be in many campaigns. The core fields (name, domain, website and LinkedIn URL) are the same in every campaign. The state of the account in one campaign is its membership. To move a V1 integration, read Migrate from V1.
The account object
| Field | Type | Description |
|---|---|---|
id | UUID | Required. ID of the account. |
entity_type | enum | Required. company or school_district. |
name | string | Nullable. Name of the account. |
domain | string | Nullable. Web domain of the account, for example acme.com. |
website | string | Nullable. Website URL of the account. |
linkedin_url | string | Nullable. LinkedIn URL of the account. |
campaign_ids | array of UUID | IDs of the campaigns that hold the account. Empty after the account leaves its last campaign. |
contacted_at | timestamp | Nullable. The latest time when a person of the account became contacted. Signal computes the value on read. Null when no person of the account is contacted. |
created_at | timestamp | Required. Time when the account was created. |
updated_at | timestamp | Required. Time of the last change. |
membership | object | Nullable. The state of the account in the campaign of the request. Only a request with campaign_id has it. Read Membership. |
Account types
An account has one of two types:
company: a business.school_district: a school district.
A campaign targets one account type. The account type in entity_types sets it. Read Targets.
Where accounts come from
Discovery runs and import runs add new accounts to a campaign. The API has no operation that creates or deletes one account directly. Use add_accounts_to_campaign to add an existing account to another campaign. Use remove_account_from_campaign to take it out of a campaign. Read Membership.
Search
search_accounts lists the accounts of the organization in ascending ID order. It takes these filters:
| Filter | Description |
|---|---|
campaign_id | Only the accounts in this campaign. Each item then has membership. An unknown campaign gives 404. |
review_state | Only the accounts with this review state in the campaign: new, reviewed or passed. It needs campaign_id, else the request gives 422. |
name | Only the accounts whose name starts with this text, in any case. 1 to 200 characters. |
limit, cursor | Pagination. Read Paginate and handle errors. |
A page can have fewer items than limit. Read the next page while next_cursor is not null.
Update rules
update_accountchangesname,domain,websiteandlinkedin_url.- Only the fields in the body change. A null or absent field does not change.
nameis 1 to 500 characters. The other fields are 1 to 2048 characters. Signal removes leading and trailing spaces.- The change applies to the account in every campaign that holds it.
- To change the review state in one campaign, use
set_account_review_state.
Identity and merges
| Question | Rule |
|---|---|
| When do records match? | Names contain each other, plus the same website or LinkedIn URL. A matching name alone is insufficient. |
| When does matching run? | During identity resolution after discovery, import or membership changes. Background reconciliation and supported reads can resolve pending records. |
| Which ID survives a merge? | The record with the smallest, oldest ID. |
| What does a merged ID return? | The surviving record. Save its returned id; it can differ from the requested ID. Updates also address the survivor. |
| What happens after the last membership is removed? | Reads by ID still work. Search omits the record. A later matching import or add can reuse the ID. |
Import inputs have current matching limitations. The identity rule applies to the values that ingest research resolves.
Operations
Each path below follows $LINKT_API_URL/v2. Set LINKT_API_URL to the origin only, for example https://api.signal.linkt.ai.
| Operation | Method and path | Purpose |
|---|---|---|
search_accounts | GET /accounts | Search the accounts of the organization. |
get_account | GET /accounts/{account_id} | Get one account. |
update_account | PATCH /accounts/{account_id} | Change the core fields of an account. |
curl --fail-with-body --request GET "$LINKT_API_URL/v2/accounts?limit=5" \
--header "x-api-key: $LINKT_API_KEY"curl --fail-with-body --request GET "$LINKT_API_URL/v2/accounts/$ACCOUNT_ID" \
--header "x-api-key: $LINKT_API_KEY"Related
Import identity rules
Account imports resolve campaign copies through the existing duplicate rules: a similar
name plus a matching secondary identifier. Accounts can represent companies or school districts.
external_id is import correlation and never an identity key. Read
Runs for created and matched outcomes across campaigns.