Add a competitor to compare against.
Adding one does not read their site. Call the crawl endpoint afterwards, then read the gaps back from `GET /sites/{site_id}/competitors`. Their robots.txt is respected and a site that asks not to be read is refused.
POST
https://app.softsolz.uk/api/v1/services/seo/sites/{site_id}/competitorsRecent Requests
Log in to see full request historyTimeStatusUser Agent
Make a request to see history.
Path Params
site_idstringrequiredHeaders
AuthorizationstringrequiredBearer token: `Bearer sk_live_...` (or `sk_test_...` for sandbox). A login token will not work here.
Body Params
domainstringTheir domain, with or without the scheme.
labelstring | nullWhat you call them.
crawl_budgetinteger | nullHow many of their pages to read at most, 1 to 2000.
Response
Response Body
idstringThe competitor id.domainstringTheir domain.labelstring | nullWhat you call them.statusstringactive, paused or removed.crawl_budgetintegerHow many of their pages will be read at most.robots_allowsboolean | nullWhether their robots.txt lets us read the site. Null until first read.pages_crawledintegerPages read last time.last_crawled_atstring | nullWhen they were last read.last_errorstring | nullWhy the last read did not finish, when it did not.Request
import { SoftSolz } from '@softsolz/sdk';
const client = new SoftSolz({ apiKey: process.env.SOFTSOLZ_API_KEY });
const result = await client.seo.addCompetitor('<site_id>', {});console.log(result);Credentials
Sent as a Bearer token. Stored only in your browser.
Response · 200
{ "data": { "id": "string", "domain": "string", "label": "string", "status": "string", "crawl_budget": 0, "robots_allows": true, "pages_crawled": 0, "last_crawled_at": "string", "last_error": "string" }}