Skip to Content

Compare Concept

Compare one registry-backed concept across a caller-provided ticker set.

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 "$BASE_URL/api/concept/compare" \ -X POST \ -H "Authorization: Bearer $EDGAR_API_KEY" \ -H "Content-Type: application/json" \ --data '{"concept_name":"revenue","date_type":"Q","full_year_mode":false,"quarter":4,"source":"auto","tickers":["AAPL","MSFT"],"year":2025}'
import os import requests base_url = os.getenv("EDGAR_API_URL", "https://www.edgarparser.com") headers = {"Authorization": f"Bearer {os.environ['EDGAR_API_KEY']}"} payload = { "concept_name": "revenue", "date_type": "Q", "full_year_mode": False, "quarter": 4, "source": "auto", "tickers": [ "AAPL", "MSFT" ], "year": 2025 } response = requests.post(f"{base_url}/api/concept/compare", headers=headers, json=payload, timeout=30) response.raise_for_status() data = response.json()

Key Response Fields

FieldTypeWhy It Matters
statusconst "success"Transport-level success indicator inside the JSON response.
semantic_status"ok" | "partial" | "empty" | "error" | nullWhether the response is semantically usable, partial, empty, or errored.
coverage_status"complete" | "partial" | "narrow" | "none" | nullCompleteness signal; do not present partial or narrow coverage as complete.
coverage_warningstring | nullHuman-readable explanation of missing or ambiguous coverage.
rowsarray<object>Tabular or comparison rows that carry the answer data.
conceptobjectFinancial fact or concept field; inspect unit, period, and source context before using it.
concept_definition_versionintegerFinancial fact or concept field; inspect unit, period, and source context before using it.
concept_namestringFinancial fact or concept field; inspect unit, period, and source context before using it.

Response Fields To Inspect

  • status / semantic_status for whether the tool produced a usable fact set.
  • coverage_status and coverage_warning before treating the value as complete.
  • source_ref, concept names, units, and period metadata for citation and auditability.

Errors And Coverage

  • 401 or 403: 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.

Concept, Concept Trend, Statement

Generated Reference

Contract

FieldValue
Toolcompare_concept
MethodPOST
Path/api/concept/compare
Contract version1.0.0
Schema fingerprintsha256:735703ae9e574fbe55d6d95f9cabcc2df6c3ff50dcff6931dfe5cef180d821d4

Parameters

NameLocationRequiredTypeNotes
none----

Request Body Schema

{ "additionalProperties": false, "properties": { "concept_name": { "type": "string" }, "date_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "full_year_mode": { "default": false, "type": "boolean" }, "quarter": { "maximum": 4.0, "minimum": 1.0, "type": "integer" }, "source": { "default": "auto", "type": "string" }, "ticker_periods": { "anyOf": [ { "additionalProperties": { "additionalProperties": false, "properties": { "full_year_mode": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ] }, "quarter": { "maximum": 4.0, "minimum": 1.0, "type": "integer" }, "year": { "type": "integer" } }, "required": [ "year", "quarter" ], "type": "object" }, "type": "object" }, { "type": "null" } ] }, "tickers": { "items": { "type": "string" }, "minItems": 1, "type": "array" }, "year": { "type": "integer" } }, "required": [ "concept_name", "tickers", "year", "quarter" ], "type": "object" }

Response Schema (200)

{ "additionalProperties": true, "properties": { "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" } ] }, "latest_period_per_ticker": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": "object" }, "period_mismatch": { "type": "boolean" }, "rows": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "semantic_status": { "anyOf": [ { "enum": [ "ok", "partial", "empty", "error" ], "type": "string" }, { "type": "null" } ] }, "status": { "const": "success", "type": "string" }, "tickers_unresolved": { "items": { "type": "string" }, "type": "array" } }, "required": [ "status", "concept_name", "concept_registry_version", "concept_definition_version", "concept", "period_mismatch" ], "type": "object" }