Dashboard PAT
4 endpoints from the published OpenAPI import.
GET/api/v1/dashboard/pat/requests
List PAT requests (admin only)
List pending and historical PAT requests visible to the current admin.
Visibility:
super_admin: all requests across all clients.brand_admin: requests targeting clients in their active brand memberships.client_user: 403 — admin role required to review requests.
Default sort: newest first. Default page size: 50.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
status | query | any | false | Filter by status (default: all) |
limit | query | integer | false | |
offset | query | integer | false |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/pat/requests' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/pat/requests",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/pat/requests", {
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/pat/requests", 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 |
GET/api/v1/dashboard/pat/requests/{request_id}
PAT request detail (admin only)
Detail view for a single PAT request. Returns 404 either when the request doesn't exist OR when the caller's role doesn't permit viewing it (don't leak existence to brand admins outside their scope).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
request_id | path | string | true |
Try it
Examples
cURL
curl -X GET 'https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.get(
"https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}", {
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/pat/requests/{request_id}", 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 |
POST/api/v1/dashboard/pat/requests/{request_id}/approve
Approve PAT request via dashboard session auth
Approve a pending PAT request. Replaces the email-link approve URL for admins who already have a dashboard session. The PAT token issued by approval is cached for the polling agent in Redis (same channel as the email flow) — the dashboard caller does not see it.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
request_id | path | string | true |
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}/approve' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}/approve",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}/approve", {
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/pat/requests/{request_id}/approve", 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 |
POST/api/v1/dashboard/pat/requests/{request_id}/deny
Deny PAT request via dashboard session auth
Deny a pending PAT request via dashboard session auth.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
request_id | path | string | true |
Try it
Examples
cURL
curl -X POST 'https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}/deny' \
-H 'Authorization: Bearer <token>'Python
import httpx
resp = httpx.post(
"https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}/deny",
headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/dashboard/pat/requests/{request_id}/deny", {
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/pat/requests/{request_id}/deny", 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 |