Concept Trend
Return a cache-only concept time series across a requested period range.
Tier: public | Cache: cache-only | Playground: authenticated only | Contract: 1.0.0
When To Use It
Use these tools when the model needs normalized financial facts, concept-level series, or statement-shaped outputs grounded in XBRL.
Request Examples
BASE_URL="${EDGAR_API_URL:-https://www.edgarparser.com}"
curl -sS -G "$BASE_URL/api/concept/trend" \
-H "Authorization: Bearer $EDGAR_API_KEY" \
--data-urlencode "ticker=AAPL" \
--data-urlencode "concept_name=revenue" \
--data-urlencode "period_from=2025-Q1" \
--data-urlencode "period_to=2025-Q4"import os
import requests
base_url = os.getenv("EDGAR_API_URL", "https://www.edgarparser.com")
headers = {"Authorization": f"Bearer {os.environ['EDGAR_API_KEY']}"}
params = {
"ticker": "AAPL",
"concept_name": "revenue",
"period_from": "2025-Q1",
"period_to": "2025-Q4"
}
response = requests.get(f"{base_url}/api/concept/trend", headers=headers, params=params, timeout=30)
response.raise_for_status()
data = response.json()Key Response Fields
| Field | Type | Why It Matters |
|---|---|---|
status | const "success" | Transport-level success indicator inside the JSON response. |
semantic_status | "ok" | "partial" | "empty" | "error" | null | Whether the response is semantically usable, partial, empty, or errored. |
coverage_status | "complete" | "partial" | "narrow" | "none" | null | Completeness signal; do not present partial or narrow coverage as complete. |
coverage_warning | string | null | Human-readable explanation of missing or ambiguous coverage. |
canonical_tag | string | null | Financial fact or concept field; inspect unit, period, and source context before using it. |
concept | object | Financial fact or concept field; inspect unit, period, and source context before using it. |
concept_definition_version | integer | Financial fact or concept field; inspect unit, period, and source context before using it. |
concept_name | string | Financial fact or concept field; inspect unit, period, and source context before using it. |
Response Fields To Inspect
status/semantic_statusfor whether the tool produced a usable fact set.coverage_statusandcoverage_warningbefore treating the value as complete.source_ref, concept names, units, and period metadata for citation and auditability.
Errors And Coverage
401or403: the API key is missing, expired, or not allowed to use this tier.429: retry after the rate-limit window, and prefer broader batch or series tools over repeated single-period calls.- This tool is cache-only; if the target filing is not warm, warm it through an allowed paid path before retrying.
- Treat partial coverage, empty arrays, and warning fields as answer-quality signals even when HTTP status is
200.
Related Tools
Concept, Compare Concept, Statement
Generated Reference
Contract
| Field | Value |
|---|---|
| Tool | concept_trend |
| Method | GET |
| Path | /api/concept/trend |
| Contract version | 1.0.0 |
| Schema fingerprint | sha256:81c85abd207eab828dc07395331e1635a0de002c1b8322fb6ac4a1759eeaabcf |
Parameters
| Name | Location | Required | Type | Notes |
|---|---|---|---|---|
ticker | query | yes | string | |
concept_name | query | yes | string | |
period_from | query | yes | string | |
period_to | query | yes | string | |
source | query | no | string | |
date_type | query | no | string | null |
Response Schema (200)
{
"additionalProperties": true,
"properties": {
"canonical_tag": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"concept": {
"additionalProperties": true,
"type": "object"
},
"concept_definition_version": {
"type": "integer"
},
"concept_name": {
"type": "string"
},
"concept_registry_version": {
"type": "integer"
},
"coverage_status": {
"anyOf": [
{
"enum": [
"complete",
"partial",
"narrow",
"none"
],
"type": "string"
},
{
"type": "null"
}
]
},
"coverage_warning": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"equivalents_considered": {
"items": {
"type": "string"
},
"type": "array"
},
"latest_filing_period_per_concept": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"period_from": {
"type": "string"
},
"period_to": {
"type": "string"
},
"periods_uncached": {
"items": {
"type": "string"
},
"type": "array"
},
"semantic_status": {
"anyOf": [
{
"enum": [
"ok",
"partial",
"empty",
"error"
],
"type": "string"
},
{
"type": "null"
}
]
},
"series": {
"items": {
"additionalProperties": true,
"properties": {
"available": {
"type": "boolean"
},
"full_year_mode": {
"type": "boolean"
},
"period": {
"type": "string"
},
"quarter": {
"type": "integer"
},
"year": {
"type": "integer"
}
},
"required": [
"period",
"year",
"quarter",
"full_year_mode",
"available"
],
"type": "object"
},
"type": "array"
},
"status": {
"const": "success",
"type": "string"
},
"ticker": {
"type": "string"
}
},
"required": [
"status",
"ticker",
"concept_name",
"concept",
"concept_registry_version",
"concept_definition_version",
"period_from",
"period_to"
],
"type": "object"
}