Skip to main content
Base URL: https://api.superlines.io All requests require authentication via Bearer token. The API supports both GET (query parameters) and POST (JSON body) requests. Every request includes an endpoint parameter that selects which data to return. Your API key determines which brands (domains) are accessible — you can optionally narrow results with the brands parameter.
Your API key is scoped to your organization. If you omit the brands parameter, data for all brands in your organization is returned.

Common parameters

These parameters are shared across most endpoints.
ParameterTypeRequiredDescription
endpointstringYesWhich data to retrieve: metrics, brands, citations, queries, prompts, responses
brandsstring or string[]NoFilter by brand name(s). Omit to include all brands in your organization.
labelsstring or string[]NoFilter by prompt label(s). Only data for prompts with these labels is returned.
startDatestringNoStart date (YYYY-MM-DD)
endDatestringNoEnd date (YYYY-MM-DD)

Metrics

endpoint=metrics

Retrieve core performance metrics for your brands.
ParameterTypeRequiredDescription
metricsstring or string[]YesComma-separated or array: brand_visibility, citation_rate, citations, share_of_citations, share_of_voice, mentions, tests, responses
brandsstring or string[]NoFilter by brand name(s)
labelsstring or string[]NoFilter by prompt label(s)
startDatestringNoStart date (YYYY-MM-DD)
endDatestringNoEnd date (YYYY-MM-DD)
granularitystringNototal (default), daily, weekly, monthly
groupBystring or string[]NoGroup results by dimension(s)
filtersobjectNoAdditional filter criteria
Example (POST):
curl -X POST https://api.superlines.io \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "metrics",
    "metrics": ["brand_visibility", "citation_rate", "share_of_voice"],
    "brands": ["My Brand"],
    "startDate": "2025-01-01",
    "endDate": "2025-01-31",
    "granularity": "weekly"
  }'
Example (GET):
curl -H "Authorization: Bearer $API_KEY" \
  "https://api.superlines.io?endpoint=metrics&metrics=brand_visibility,citation_rate&brands=My+Brand&startDate=2025-01-01&endDate=2025-01-31&granularity=weekly"
Response:
{
  "success": true,
  "endpoint": "metrics",
  "data": [ ... ],
  "metadata": {
    "metrics": ["brand_visibility", "citation_rate", "share_of_voice"],
    "brands": ["My Brand"],
    "dateRange": {
      "startDate": "2025-01-01",
      "endDate": "2025-01-31"
    },
    "granularity": "weekly",
    "totalRows": 4,
    "executionTime": "320ms"
  }
}

Brand mentions

endpoint=brands

Get brand mention data with sentiment and share of voice.
ParameterTypeRequiredDescription
brandsstring or string[]NoFilter by brand name(s)
labelsstring or string[]NoFilter by prompt label(s)
startDatestringNoStart date (YYYY-MM-DD)
endDatestringNoEnd date (YYYY-MM-DD)
granularitystringNototal (default), daily, weekly, monthly
groupBystring or string[]NoGroup results by dimension(s)
filtersobjectNoAdditional filter criteria
topNnumberNoMax brands to return (default: 50)
includeSentimentbooleanNoInclude sentiment data (default: true)
includeShareOfVoicebooleanNoInclude SOV data (default: true)
minMentionsnumberNoMinimum mention count to include (default: 1)
Example:
curl -X POST https://api.superlines.io \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "brands",
    "brands": ["My Brand"],
    "startDate": "2025-01-01",
    "endDate": "2025-01-31",
    "groupBy": ["brand"],
    "includeSentiment": true
  }'

Citations

endpoint=citations

Get citation data at domain or URL level.
ParameterTypeRequiredDescription
brandsstring or string[]NoFilter by brand name(s)
labelsstring or string[]NoFilter by prompt label(s)
startDatestringNoStart date (YYYY-MM-DD)
endDatestringNoEnd date (YYYY-MM-DD)
granularitystringNototal (default), daily, weekly, monthly
groupBystring or string[]NoGroup results by dimension(s)
filtersobjectNoAdditional filter criteria
topNnumberNoMax results (default: 100)
aggregateBystringNodomain (default) or url
includeUrlsbooleanNoInclude URL-level data (default: true)
Example:
curl -X POST https://api.superlines.io \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "citations",
    "brands": ["My Brand"],
    "aggregateBy": "url",
    "startDate": "2025-01-01",
    "endDate": "2025-01-31",
    "topN": 50
  }'

Queries

endpoint=queries

Get search query data associated with your tracked prompts.
ParameterTypeRequiredDescription
brandsstring or string[]NoFilter by brand name(s)
promptIdstringNoFilter by a specific prompt ID
groupBystring or string[]NoGroup results by dimension(s)
filtersobjectNoAdditional filter criteria
topNnumberNoMax results (default: 100)
sortBystringNoprompts (default) or query
minVolumenumberNoMinimum volume threshold (default: 0)
includeMetadatabooleanNoInclude metadata (default: true)
Example:
curl -X POST https://api.superlines.io \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "queries",
    "brands": ["My Brand"],
    "sortBy": "prompts",
    "topN": 50
  }'

Prompts

endpoint=prompts

List tracked prompts for your brands.
ParameterTypeRequiredDescription
brandsstring or string[]NoFilter by brand name(s)
statusstring or string[]NoFilter by status: active, paused, etc.
intentstring or string[]NoFilter by intent type
labelsstring or string[]NoFilter by label(s)
sortBystringNocreatedAt (default), lastRunAt, promptText
topNnumberNoMax results (default: 100)
includeMetadatabooleanNoInclude metadata (default: true)
Example:
curl -X POST https://api.superlines.io \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "prompts",
    "brands": ["My Brand"],
    "status": "active",
    "topN": 50
  }'

Responses

endpoint=responses

Get raw AI response data for your tracked prompts.
ParameterTypeRequiredDescription
brandsstring or string[]NoFilter by brand name(s)
labelsstring or string[]NoFilter by prompt label(s)
startDatestringNoStart date (YYYY-MM-DD)
endDatestringNoEnd date (YYYY-MM-DD)
filtersobjectNoAdditional filter criteria
sortBystringNocreatedAt (default) or promptId
topNnumberNoMax results (default: 100)
includeFullTextbooleanNoInclude full response text (default: false)
Example:
curl -X POST https://api.superlines.io \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "endpoint": "responses",
    "brands": ["My Brand"],
    "startDate": "2025-01-01",
    "endDate": "2025-01-31",
    "includeFullText": true,
    "topN": 20
  }'

Rate limits

PlanRequests/minute
Starter60
Growth120
Enterprise300
Exceeding the rate limit returns a 429 status code with X-RateLimit-Remaining and X-RateLimit-Reset headers. Implement exponential backoff in your integration.

Response format

All successful responses follow this structure:
{
  "success": true,
  "endpoint": "metrics",
  "data": [ ... ],
  "metadata": {
    "brands": ["My Brand"],
    "dateRange": { "startDate": "2025-01-01", "endDate": "2025-01-31" },
    "totalRows": 42,
    "executionTime": "215ms"
  }
}
Error responses:
{
  "error": "Invalid endpoint parameter",
  "message": "Endpoint must be one of: metrics, brands, citations, queries, prompts, responses",
  "validEndpoints": ["metrics", "brands", "citations", "queries", "prompts", "responses"]
}