Find keywords and more competitors
curl --request POST \
--url https://api.seomator.com/v1/projects/{id}/onboarding/keywords \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.seomator.com/v1/projects/{id}/onboarding/keywords', 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/keywords"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text){
"job": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}Find keywords and more competitors
Reads Search Console when it is connected, otherwise DataForSEO Labs, and writes up to 50 keywords with their volume and position. Adds competitors that rank for the same keywords or are named next to the brand in recorded AI answers, each with its reason. Running it again replaces what it wrote; keywords and competitors you added stay. One step runs at a time per project, and only before tracking starts. Follow the job with GET /v1/jobs/{id}.
POST
/
v1
/
projects
/
{id}
/
onboarding
/
keywords
Find keywords and more competitors
curl --request POST \
--url https://api.seomator.com/v1/projects/{id}/onboarding/keywords \
--header 'x-api-key: <api-key>'const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.seomator.com/v1/projects/{id}/onboarding/keywords', 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/keywords"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text){
"job": {
"id": "<string>",
"projectId": "<string>",
"type": "<string>",
"status": "queued",
"error": "<string>",
"chunksTotal": 123,
"chunksDone": 123,
"createdAt": "<string>",
"startedAt": "<string>",
"finishedAt": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}{
"error": {
"code": "bad_request",
"message": "<string>",
"requestId": "<string>"
}
}