REST API / Collections
competitors
Collection
The canonical reconciliation of competitor profiles and tracking keywords.
- Max rows per query
- 100
- Cursor paging
- by id
Fields
| Field | Type | Description | Filter | Sort |
|---|---|---|---|---|
id indexed | string | Unique row ID. | ✓ | ✓ |
project_id indexed | string | Project ID from projects. | ✓ | – |
label | string | Canonical competitor name. | ✓ | ✓ |
display_label | string | Display label. | ✓ | ✓ |
aliases | string[] | Alternate match terms. | ✓ | – |
enabled | boolean | Whether the keyword is enabled. | ✓ | ✓ |
confirmed | boolean | Whether the keyword is confirmed. | ✓ | ✓ |
source | string | Registry sources represented by this entry.profile keyword profile_and_keyword | ✓ | ✓ |
Examples
Example
SELECT id, project_id, label, display_label, aliases
FROM competitors
LIMIT 25Calling it
MCP
Tool call
query({"sql":"SELECT id, project_id, label, display_label, aliases FROM competitors 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, label, display_label, aliases FROM competitors LIMIT 25"
}
JSONRow JSON Schema
json
{
"type": "object",
"description": "The canonical reconciliation of competitor profiles and tracking keywords.",
"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": "Project ID from projects.",
"x-sensorhub-indexed": true,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": false
},
"label": {
"type": "string",
"description": "Canonical competitor name.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"display_label": {
"type": "string",
"description": "Display label.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"aliases": {
"type": "array",
"description": "Alternate match terms.",
"items": {
"type": "string"
},
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": false,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": false
},
"enabled": {
"type": "boolean",
"description": "Whether the keyword is enabled.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"confirmed": {
"type": "boolean",
"description": "Whether the keyword is confirmed.",
"x-sensorhub-indexed": false,
"x-sensorhub-searchable": false,
"x-sensorhub-aggregatable": true,
"x-sensorhub-filterable": true,
"x-sensorhub-sortable": true
},
"source": {
"type": "string",
"description": "Registry sources represented by this entry.",
"enum": [
"profile",
"keyword",
"profile_and_keyword"
],
"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
}