The latest job of each onboarding step
curl --request GET \
--url https://api.seomator.com/v1/projects/{id}/onboarding \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.seomator.com/v1/projects/{id}/onboarding', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.seomator.com/v1/projects/{id}/onboarding"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"profile": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
},
"keywords": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
},
"prompts": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
},
"research": {
"confirmed": 123,
"added": 123
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}The latest job of each onboarding step
Each step is null until it first runs. A queued or running job is the step in progress: poll it with GET /v1/jobs/{id}, for example after a page reload. research is null until the latest keyword research is done; then it counts the competitors it confirmed (a profile competitor got a research reason) and added (from DataForSEO Labs or recorded AI answers) that are still on the list.
GET
/
v1
/
projects
/
{id}
/
onboarding
The latest job of each onboarding step
curl --request GET \
--url https://api.seomator.com/v1/projects/{id}/onboarding \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.seomator.com/v1/projects/{id}/onboarding', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.seomator.com/v1/projects/{id}/onboarding"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text){
"profile": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
},
"keywords": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
},
"prompts": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
},
"research": {
"confirmed": 123,
"added": 123
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}Authorizations
Path Parameters
Project id (proj_…) or slug (the domain with dots as dashes).