Search Console
16 endpoints from the published OpenAPI import.
Gsc Connect Start
Build the Google consent URL for read-only Search Console access.
Stores a short-lived state token (→ brand_id + client_id) in Redis so the callback can bind the resulting credential to this tenant.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/content/search-console/connect/start' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/content/search-console/connect/start",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/connect/start", {
method: "POST",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/content/search-console/connect/start", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Connect Callback
Exchange the OAuth code for tokens and store the credential for this brand.
Idempotent per brand: an existing active GSC credential is deactivated first (a brand has one live Google connection at a time).
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/content/search-console/connect/callback' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"code": "string",
"state": "string"
}'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/content/search-console/connect/callback",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={"code": "string", "state": "string"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/connect/callback", {
method: "POST",
headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
body: JSON.stringify({"code": "string", "state": "string"})
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{"code": "string", "state": "string"}`)
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/content/search-console/connect/callback", body)
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
Gsc Status
Whether this tenant has a live GSC connection + which properties it can read.
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/content/search-console/status' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/content/search-console/status",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/status", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/content/search-console/status", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Disconnect
Deactivate this tenant's GSC credential. Idempotent.
Try it
Examples
cURL
curl -X DELETE 'https://spideriq.ai/api/v1/dashboard/content/search-console/connect' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.delete(
"https://spideriq.ai/api/v1/dashboard/content/search-console/connect",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/connect", {
method: "DELETE",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://spideriq.ai/api/v1/dashboard/content/search-console/connect", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Performance
Live GSC Search Analytics for this tenant: summary + daily timeseries + top queries + top pages.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
days | query | integer | false | Lookback window (GSC data lags ~3 days). |
property_url | query | any | false | Specific GSC property; defaults to the tenant's primary verified domain. |
top_n | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/content/search-console/performance' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/content/search-console/performance",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/performance", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/content/search-console/performance", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
Gsc Index Coverage
Cached index-coverage report for this tenant's project: summary counts, a coverage-state histogram, and per-page rows. Empty until first refresh.
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Index Coverage Refresh
Re-inspect this tenant's published pages via the GSC URL Inspection API and refresh the cache. Bounded by max_urls (response carries truncated) and a 60 s server-side cooldown that serves cache on rapid re-refresh.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage/refresh' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage/refresh",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage/refresh", {
method: "POST",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/content/search-console/index-coverage/refresh", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Page Index Status
The cached index status for a single page slug (for the editor chip / SEO card). found=False when the page hasn't been inspected yet.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
slug | query | string | true | Page/post/doc slug to look up. |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/content/search-console/page-index-status' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/content/search-console/page-index-status",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/content/search-console/page-index-status", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/content/search-console/page-index-status", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
Gsc Connect Start
Build the Google consent URL for read-only Search Console access.
Stores a short-lived state token (→ brand_id + client_id) in Redis so the callback can bind the resulting credential to this tenant.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/start' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/start",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/start", {
method: "POST",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/start", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Connect Callback
Exchange the OAuth code for tokens and store the credential for this brand.
Idempotent per brand: an existing active GSC credential is deactivated first (a brand has one live Google connection at a time).
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/callback' \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"code": "string",
"state": "string"
}'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/callback",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={"code": "string", "state": "string"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/callback", {
method: "POST",
headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
body: JSON.stringify({"code": "string", "state": "string"})
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{"code": "string", "state": "string"}`)
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect/callback", body)
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
Gsc Status
Whether this tenant has a live GSC connection + which properties it can read.
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/status' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/status",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/status", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/status", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Disconnect
Deactivate this tenant's GSC credential. Idempotent.
Try it
Examples
cURL
curl -X DELETE 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.delete(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect", {
method: "DELETE",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("DELETE", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/connect", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Performance
Live GSC Search Analytics for this tenant: summary + daily timeseries + top queries + top pages.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
days | query | integer | false | Lookback window (GSC data lags ~3 days). |
property_url | query | any | false | Specific GSC property; defaults to the tenant's primary verified domain. |
top_n | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/performance' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/performance",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/performance", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/performance", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
Gsc Index Coverage
Cached index-coverage report for this tenant's project: summary counts, a coverage-state histogram, and per-page rows. Empty until first refresh.
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Index Coverage Refresh
Re-inspect this tenant's published pages via the GSC URL Inspection API and refresh the cache. Bounded by max_urls (response carries truncated) and a 60 s server-side cooldown that serves cache on rapid re-refresh.
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage/refresh' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage/refresh",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage/refresh", {
method: "POST",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/index-coverage/refresh", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
Gsc Page Index Status
The cached index status for a single page slug (for the editor chip / SEO card). found=False when the page hasn't been inspected yet.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
slug | query | string | true | Page/post/doc slug to look up. |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/page-index-status' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/page-index-status",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/page-index-status", {
method: "GET",
headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);Go
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/dashboard/projects/{project_id}/content/search-console/page-index-status", nil)
req.Header.Set("Authorization", "Bearer <token>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}Responses
| Status | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |