Duplicate Signal
Copy a signal: same preset, filters, caps and enrichment, onto a new
destination list. The copy starts active and runs a first check
immediately; the original is left unchanged. Without a name, the copy
is named after the source plus ” (Copy)”.
Requires the signals:write scope on the API key.
curl --request POST \
--url https://api.topo.io/v1/signals/{signal_id}/duplicate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.topo.io/v1/signals/{signal_id}/duplicate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.topo.io/v1/signals/{signal_id}/duplicate"
payload = { "name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"signal_type": "LINKEDIN_OWN_POST_ENGAGEMENT",
"status": "ACTIVE",
"cadence": "DAILY",
"max_per_run": 123,
"max_companies_per_run": 123,
"max_contacts_per_company": 123,
"max_per_day": 123,
"enrich_email": true,
"enrich_phones": true,
"imported_count": 123,
"contact_list_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_list_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"archived_at": "2023-11-07T05:31:56Z",
"url": "<string>",
"list_url": "<string>"
}Authorizations
Bearer API key issued from Settings → Developers.
Path Parameters
ID of the signal.
Body
Duplicate Signal payload
Name of the copy and of its new destination list. Defaults to the source name plus ' (Copy)'.
1Response
Successful Response
Unique identifier of the signal.
Name of the signal and of its destination list.
Catalog preset the signal watches.
LINKEDIN_OWN_POST_ENGAGEMENT, LINKEDIN_COMPETITOR_POST_ENGAGEMENT, LINKEDIN_PERSON_POST_ENGAGEMENT, LINKEDIN_KEYWORD_MENTION, LINKEDIN_OWN_COMPANY_FOLLOWERS, LINKEDIN_COMPETITOR_FOLLOWERS, LINKEDIN_COMPANY_PAGE_FOLLOWERS, HIRING_SIGNALS, JOB_DESCRIPTION_KEYWORD, FUNDING_EVENTS, TECH_ADOPTION, NEWS_EVENTS, NEW_JOB, CUSTOM_EVENT, LINKEDIN_PARTNER_FOLLOWERS, LINKEDIN_CUSTOMER_FOLLOWERS, LINKEDIN_PARTNER_POST_ENGAGEMENT, LINKEDIN_CUSTOMER_POST_ENGAGEMENT, LINKEDIN_COMPANY_PAGE_POST_ENGAGEMENT, LINKEDIN_OWN_PROFILE_POST_ENGAGEMENT, LINKEDIN_OWN_EMPLOYEES_POST_ENGAGEMENT, LINKEDIN_COMPETITOR_EMPLOYEES_POST_ENGAGEMENT, LINKEDIN_PARTNER_EMPLOYEES_POST_ENGAGEMENT, LINKEDIN_CUSTOMER_EMPLOYEES_POST_ENGAGEMENT, LINKEDIN_OWN_BRAND_MENTION, LINKEDIN_COMPETITOR_MENTION, LINKEDIN_PARTNER_MENTION, LINKEDIN_CUSTOMER_MENTION, LINKEDIN_EVENT_MENTION, COMPETITOR_TECH_ADOPTION, INTEGRATION_TECH_ADOPTION, LINKEDIN_EVENT_PAGE_FOLLOWERS, CHAMPION_CHANGED_JOB, CRM_LIST_ENTRY ACTIVE checks daily, PAUSED is held until resumed, ARCHIVED is retired and cannot be resumed.
ACTIVE, PAUSED, ARCHIVED How often the signal checks its provider.
DAILY, WEEKLY Daily ceiling on imported entries, when one was set.
Daily ceiling on detected companies consumed, when one was set.
People imported per detected company, when one was set.
Ceiling on the entries the signal imports in one day, resolved from the caps above.
Whether imported leads get their email enriched.
Whether imported leads get their phone enriched.
Entries the signal has imported since it was created.
Destination list, when the signal imports people.
Destination list, when the signal imports companies.
When the signal was created.
When the signal was retired, if it was.
Deep link to the signal in Topo.
Deep link to the destination list in Topo.
Was this page helpful?
curl --request POST \
--url https://api.topo.io/v1/signals/{signal_id}/duplicate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: '<string>'})
};
fetch('https://api.topo.io/v1/signals/{signal_id}/duplicate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.topo.io/v1/signals/{signal_id}/duplicate"
payload = { "name": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"signal_type": "LINKEDIN_OWN_POST_ENGAGEMENT",
"status": "ACTIVE",
"cadence": "DAILY",
"max_per_run": 123,
"max_companies_per_run": 123,
"max_contacts_per_company": 123,
"max_per_day": 123,
"enrich_email": true,
"enrich_phones": true,
"imported_count": 123,
"contact_list_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"account_list_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"archived_at": "2023-11-07T05:31:56Z",
"url": "<string>",
"list_url": "<string>"
}