Dashboard Client
https://api.example.com
/api/v1/dashboard/client/jobs/spiderMaps/submit
Submit Spider Maps Job
Submit a SpiderMaps job via dashboard session auth. This wraps the existing job submission logic but uses session cookies instead of Bearer token authentication.
200Successful Response422Validation Error
curl -X POST 'https://api.example.com/api/v1/dashboard/client/jobs/spiderMaps/submit' \
-H 'Authorization: Bearer ' \
-H 'Content-Type: application/json' \
-d '{}'
import httpx
resp = httpx.post(
"https://api.example.com/api/v1/dashboard/client/jobs/spiderMaps/submit",
headers={"Authorization": "Bearer ", "Content-Type": "application/json"},
json={},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/jobs/spiderMaps/submit", {
method: "POST",
headers: { "Authorization": "Bearer ", "Content-Type": "application/json" },
body: JSON.stringify({})
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{}`)
req, _ := http.NewRequest("POST", "https://api.example.com/api/v1/dashboard/client/jobs/spiderMaps/submit", body)
req.Header.Set("Authorization", "Bearer ")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
Request body
{}
/api/v1/dashboard/client/jobs
List Client Jobs
List jobs for the authenticated client user. For super_admins: - If X-Selected-Client-Id header is provided, filter to that client - Otherwise, show all jobs For client_user/brand_admin: - Always filter to their client_id
page
integer
query
page_size
integer
query
type_filter
any
query
status_filter
any
query
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/jobs' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/jobs",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/jobs", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/jobs", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/jobs/{job_id}/status
Get Job Status
Get status for a specific job.
job_id
string
path
required
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/status' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/status",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/status", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/status", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/jobs/{job_id}/results
Get Job Results
Get results for a completed job. Super_admins can access any job's results. Client users can only access their own client's jobs.
job_id
string
path
required
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/results' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/results",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/results", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/results", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/jobs/{job_id}/cancel
Cancel Job
Cancel a queued or processing job. Super_admins can cancel any job. Client users can only cancel their own client's jobs.
job_id
string
path
required
200Successful Response422Validation Error
curl -X POST 'https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/cancel' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.post(
"https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/cancel",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/cancel", {
method: "POST",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://api.example.com/api/v1/dashboard/client/jobs/{job_id}/cancel", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/research/submit
Submit Company Research
Submit a company research job via dashboard session auth. Supports both super_admin (with X-Selected-Client-Id header) and client users.
200Successful Response422Validation Error
curl -X POST 'https://api.example.com/api/v1/dashboard/client/research/submit' \
-H 'Authorization: Bearer ' \
-H 'Content-Type: application/json' \
-d '{}'
import httpx
resp = httpx.post(
"https://api.example.com/api/v1/dashboard/client/research/submit",
headers={"Authorization": "Bearer ", "Content-Type": "application/json"},
json={},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research/submit", {
method: "POST",
headers: { "Authorization": "Bearer ", "Content-Type": "application/json" },
body: JSON.stringify({})
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{}`)
req, _ := http.NewRequest("POST", "https://api.example.com/api/v1/dashboard/client/research/submit", body)
req.Header.Set("Authorization", "Bearer ")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
Request body
{}
/api/v1/dashboard/client/research
List Company Research
List company research jobs for the authenticated user.
page
integer
query
page_size
integer
query
status
any
query
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/research' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/research",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/research", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/research/{research_id}/status
Get Research Status
Get status for a specific research job.
research_id
string
path
required
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/research/{research_id}/status' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/research/{research_id}/status",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research/{research_id}/status", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/research/{research_id}/status", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/research/{research_id}/results
Get Research Results
Get results for a completed research job.
research_id
string
path
required
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/research/{research_id}/results' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/research/{research_id}/results",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research/{research_id}/results", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/research/{research_id}/results", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/research/{research_id}/pause
Pause Research
Pause a running research job.
research_id
string
path
required
200Successful Response422Validation Error
curl -X POST 'https://api.example.com/api/v1/dashboard/client/research/{research_id}/pause' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.post(
"https://api.example.com/api/v1/dashboard/client/research/{research_id}/pause",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research/{research_id}/pause", {
method: "POST",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://api.example.com/api/v1/dashboard/client/research/{research_id}/pause", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/research/{research_id}/resume
Resume Research
Resume a paused research job.
research_id
string
path
required
200Successful Response422Validation Error
curl -X POST 'https://api.example.com/api/v1/dashboard/client/research/{research_id}/resume' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.post(
"https://api.example.com/api/v1/dashboard/client/research/{research_id}/resume",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research/{research_id}/resume", {
method: "POST",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://api.example.com/api/v1/dashboard/client/research/{research_id}/resume", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/research/{research_id}/cancel
Cancel Research
Cancel a research job.
research_id
string
path
required
200Successful Response422Validation Error
curl -X POST 'https://api.example.com/api/v1/dashboard/client/research/{research_id}/cancel' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.post(
"https://api.example.com/api/v1/dashboard/client/research/{research_id}/cancel",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/research/{research_id}/cancel", {
method: "POST",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("POST", "https://api.example.com/api/v1/dashboard/client/research/{research_id}/cancel", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/locations/countries
List Countries Dashboard
List all available countries with location counts. Used for campaign creation country dropdown.
200Successful Response
curl -X GET 'https://api.example.com/api/v1/dashboard/client/locations/countries' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/locations/countries",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/locations/countries", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/locations/countries", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/locations/regions
List Regions Dashboard
List all admin regions (states/provinces) for a country. Used for campaign creation region filter.
country_code
string
query
required
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/locations/regions' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/locations/regions",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/locations/regions", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/locations/regions", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/locations/stats
Get Country Stats Dashboard
Get location statistics for a country. Used to show how many locations match different filter modes.
country_code
string
query
required
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/locations/stats' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/locations/stats",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/locations/stats", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/locations/stats", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}
/api/v1/dashboard/client/locations
List Locations Dashboard
List locations with filtering and pagination. Used for campaign creation location selection (custom mode).
country_code
any
query
search
any
query
location_type
any
query
page
integer
query
page_size
integer
query
200Successful Response422Validation Error
curl -X GET 'https://api.example.com/api/v1/dashboard/client/locations' \
-H 'Authorization: Bearer '
import httpx
resp = httpx.get(
"https://api.example.com/api/v1/dashboard/client/locations",
headers={"Authorization": "Bearer "},
)
resp.raise_for_status()
print(resp.json())
const resp = await fetch("https://api.example.com/api/v1/dashboard/client/locations", {
method: "GET",
headers: { "Authorization": "Bearer " }
});
const data = await resp.json();
console.log(data);
package main
import (
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.example.com/api/v1/dashboard/client/locations", nil)
req.Header.Set("Authorization", "Bearer ")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
}