REST API / Collections
projects
Collection
Accessible workspace projects, excluding projects being deleted.
- Max rows per query
- 100
- Default order
- id asc
- Cursor paging
- by id
Use read report_* for dashboard headline metrics and anchored comparison windows.
Fields
| Field | Type | Description | Filter | Sort |
|---|---|---|---|---|
id indexed | string | Unique row ID. | ✓ | ✓ |
project_id indexed | string | Alias of the project ID. | ✓ | ✓ |
name | string | Project name. | ✓ | ✓ |
url | string | Monitored website. | ✓ | ✓ |
created_at | datetime | Creation time. | ✓ | ✓ |
setup_complete | boolean | Whether setup is complete. | ✓ | ✓ |
aeo_enabled | boolean | Whether AI visibility tracking is enabled. | ✓ | ✓ |
bm_enabled | boolean | Whether brand monitoring is enabled. | ✓ | ✓ |
enabled_sources | string[] | Enabled signal platforms: REDDIT, XCOM, LINKEDIN. | ✓ | – |
paused_atnullable | datetime | When collection was paused. | ✓ | ✓ |
locked_atnullable | datetime | When locked by the plan limit. | ✓ | ✓ |
analysis_status | string | Website analysis state.RUNNING FAILED_AWAITING_USER_RETRY FAILED_DEAD_END COMPLETE | ✓ | ✓ |
Examples
Example
SELECT id, project_id, name, url, created_at
FROM projects
ORDER BY id ASC
LIMIT 25Calling it
MCP
Tool call
query({"sql":"SELECT id, project_id, name, url, created_at FROM projects ORDER BY id ASC LIMIT 25"})REST
curl
curl -X POST "https://app.sensorhub.ai/api/v1/query" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
--data-binary @- <<'JSON'
{
"sql": "SELECT id, project_id, name, url, created_at FROM projects ORDER BY id ASC LIMIT 25"
}
JSONRow JSON Schema
json
{
"type": "object",
"description": "Accessible workspace projects, excluding projects being deleted.",
"properties": {
"id": {
"type": "string",
"description": "Unique row ID.",
"x-sensorhub-indexed": true,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"project_id": {
"type": "string",
"description": "Alias of the project ID.",
"x-sensorhub-indexed": true,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"name": {
"type": "string",
"description": "Project name.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"url": {
"type": "string",
"description": "Monitored website.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"created_at": {
"type": "string",
"description": "Creation time.",
"format": "date-time",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"setup_complete": {
"type": "boolean",
"description": "Whether setup is complete.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"aeo_enabled": {
"type": "boolean",
"description": "Whether AI visibility tracking is enabled.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"bm_enabled": {
"type": "boolean",
"description": "Whether brand monitoring is enabled.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"enabled_sources": {
"type": "array",
"description": "Enabled signal platforms: REDDIT, XCOM, LINKEDIN.",
"items": {
"type": "string"
},
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": false,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": false
},
"paused_at": {
"type": [
"string",
"null"
],
"description": "When collection was paused.",
"format": "date-time",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"locked_at": {
"type": [
"string",
"null"
],
"description": "When locked by the plan limit.",
"format": "date-time",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"analysis_status": {
"type": "string",
"description": "Website analysis state.",
"enum": [
"RUNNING",
"FAILED_AWAITING_USER_RETRY",
"FAILED_DEAD_END",
"COMPLETE"
],
"x-sensorhub-filter-operators": [
"=",
"!=",
"<>",
"IN",
"NOT IN",
"IS NULL",
"IS NOT NULL"
],
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
}
},
"additionalProperties": false
}