Create a Watcher
Start watching a profile on a schedule; Orbit refreshes it and appends what it finds.
curl --request POST \
--url https://api.orbitsearch.com/v3/watchers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orbit_id": "83f1b564-3607-4618-b8c9-a886410ceb32",
"interval_seconds": 86400,
"phases": [
"existing_sources",
"existing_socials",
"new_sources"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
orbit_id: '83f1b564-3607-4618-b8c9-a886410ceb32',
interval_seconds: 86400,
phases: ['existing_sources', 'existing_socials', 'new_sources']
})
};
fetch('https://api.orbitsearch.com/v3/watchers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.orbitsearch.com/v3/watchers"
payload = {
"orbit_id": "83f1b564-3607-4618-b8c9-a886410ceb32",
"interval_seconds": 86400,
"phases": ["existing_sources", "existing_socials", "new_sources"]
}
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",
"orbit_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enabled": true,
"interval_seconds": 123,
"created_at": "2023-11-07T05:31:56Z",
"phases": [
"existing_sources"
],
"next_run_at": "2023-11-07T05:31:56Z",
"last_run_at": "2023-11-07T05:31:56Z",
"last_run_status": "dispatched",
"run_count": 123,
"update_count": 123,
"paused_reason": "<string>"
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}interval_seconds from now.
Each run adds new information about the person to the profile. See how watchers work for phases, scheduling and billing, and Watch a profile for the end-to-end flow with webhooks.Authorizations
Use an Orbit API key from the Developer Dashboard.
Body
The profile to watch — the id returned by search and profile reads.
How often to refresh, from 3600 (hourly) to 2592000 (every 30 days).
3600 <= x <= 2592000Restrict runs to these phases. Omit or send null to run all three.
existing_sources watches sources already on the profile for updates; existing_socials watches the person's social activity; new_sources looks for new sources about the person.
existing_sources, existing_socials, new_sources Response
The watcher.
The watched profile.
Whether runs are scheduled.
Seconds between runs, from 3600 (hourly) to 2592000 (every 30 days).
Phases each run covers; null runs all three.
existing_sources watches sources already on the profile for updates; existing_socials watches the person's social activity; new_sources looks for new sources about the person.
existing_sources, existing_socials, new_sources When the next run is scheduled.
Outcome of the most recent run.
dispatched, completed, failed, null Runs that found new information: a recent or upcoming event, a changed section, a new source, or new social activity.
Set when Orbit paused the watcher, for example insufficient_credits.
curl --request POST \
--url https://api.orbitsearch.com/v3/watchers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"orbit_id": "83f1b564-3607-4618-b8c9-a886410ceb32",
"interval_seconds": 86400,
"phases": [
"existing_sources",
"existing_socials",
"new_sources"
]
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
orbit_id: '83f1b564-3607-4618-b8c9-a886410ceb32',
interval_seconds: 86400,
phases: ['existing_sources', 'existing_socials', 'new_sources']
})
};
fetch('https://api.orbitsearch.com/v3/watchers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.orbitsearch.com/v3/watchers"
payload = {
"orbit_id": "83f1b564-3607-4618-b8c9-a886410ceb32",
"interval_seconds": 86400,
"phases": ["existing_sources", "existing_socials", "new_sources"]
}
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",
"orbit_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"enabled": true,
"interval_seconds": 123,
"created_at": "2023-11-07T05:31:56Z",
"phases": [
"existing_sources"
],
"next_run_at": "2023-11-07T05:31:56Z",
"last_run_at": "2023-11-07T05:31:56Z",
"last_run_status": "dispatched",
"run_count": 123,
"update_count": 123,
"paused_reason": "<string>"
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}{
"status": "failed",
"error": {
"code": "<string>",
"message": "<string>",
"requiredCredits": 1,
"remainingCredits": 1
}
}