{"openapi":"3.1.0","info":{"title":"Quarterquill API","version":"0.1.0","description":"Official SEC earnings releases read into JSON. Deterministic table-row and sentence parsing; every number has a verbatim quote and a sec.gov source. Not investment advice."},"servers":[{"url":"https://quarterquill.xyz"}],"paths":{"/v1/free/earnings/{ticker}":{"get":{"summary":"Latest earnings release, free (3 per IP per UTC day)","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","example":"NFLX"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"company":{"type":"string"},"cik":{"type":"string"},"period":{"type":"string","description":"fiscal year + quarter, e.g. 2026Q2 (NVIDIA: 2027Q2 = Q2 FY2027)"},"periodLabel":{"type":"string"},"periodEnd":{"type":["string","null"]},"form":{"type":"string"},"accession":{"type":"string"},"filedAt":{"type":"string","description":"EDGAR acceptanceDateTime"},"readAt":{"type":"string"},"seconds":{"type":"number","description":"how long this read took (fetch + parse). Filing-to-read latency for report-day filings is in /v1/watch"},"document":{"type":"string","description":"sec.gov URL of the document the items were read from"},"filingIndex":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"key":{"enum":["revenue","operatingIncome","netIncome","epsDiluted","operatingCashFlow","freeCashFlow"]},"label":{"type":"string","description":"row label as written"},"value":{"type":"number"},"unit":{"type":"string"},"raw":{"type":"string","description":"the number as printed"},"scale":{"type":"string","description":"units/thousands/millions/billions as stated by the table"},"period":{"type":"string"},"column":{"type":"string","description":"column header as written"},"quote":{"type":"string","description":"the exact table row text; a verbatim substring of the document text"},"source":{"type":"string"}}}},"compare":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"kind":{"enum":["qoq","yoy"]},"concept":{"type":"string"},"prior":{"type":"number"},"priorPeriod":{"type":"string"},"priorEnd":{"type":"string"},"current":{"type":["number","null"]},"changePct":{"type":["number","null"]},"form":{"type":"string"},"accn":{"type":"string"},"filed":{"type":"string"},"source":{"type":"string","description":"XBRL companyfacts URL"}}}},"guidance":{"type":"array","items":{"type":"object","properties":{"quote":{"type":"string","description":"verbatim sentence"},"source":{"type":"string"}}}},"rc":{"type":["object","null"],"description":"Chainlink feed on Robinhood Chain 4663 when the ticker has one"},"skipped":{"type":"array","description":"newer filings that were looked at and why they were not used"},"receipt":{"type":["object","null"],"description":"EIP-712 ReadReceipt signed by the server: contentHash = keccak256(JSON of the body without receipt)"}}}}}},"400":{"description":"bad ticker or period (not charged)"},"404":{"description":"no release found (not charged)"},"429":{"description":"free limit reached: JSON with reason and resetAt"},"502":{"description":"SEC unreachable (not charged)"}}}},"/v1/earnings/{ticker}":{"get":{"summary":"Latest earnings release (x402)","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","example":"NFLX"}}],"x-x402":{"scheme":"exact","network":"eip155:4663","asset":"0x5fc5360d0400a0fd4f2af552add042d716f1d168","assetSymbol":"USDG","decimals":6,"price":"0.05","priceAtomic":"50000","payTo":"0x3E03b49aaE999a6A10a5F74742FD731444a72a7D","settles":"only when the handler answers < 400"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"company":{"type":"string"},"cik":{"type":"string"},"period":{"type":"string","description":"fiscal year + quarter, e.g. 2026Q2 (NVIDIA: 2027Q2 = Q2 FY2027)"},"periodLabel":{"type":"string"},"periodEnd":{"type":["string","null"]},"form":{"type":"string"},"accession":{"type":"string"},"filedAt":{"type":"string","description":"EDGAR acceptanceDateTime"},"readAt":{"type":"string"},"seconds":{"type":"number","description":"how long this read took (fetch + parse). Filing-to-read latency for report-day filings is in /v1/watch"},"document":{"type":"string","description":"sec.gov URL of the document the items were read from"},"filingIndex":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"key":{"enum":["revenue","operatingIncome","netIncome","epsDiluted","operatingCashFlow","freeCashFlow"]},"label":{"type":"string","description":"row label as written"},"value":{"type":"number"},"unit":{"type":"string"},"raw":{"type":"string","description":"the number as printed"},"scale":{"type":"string","description":"units/thousands/millions/billions as stated by the table"},"period":{"type":"string"},"column":{"type":"string","description":"column header as written"},"quote":{"type":"string","description":"the exact table row text; a verbatim substring of the document text"},"source":{"type":"string"}}}},"compare":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"kind":{"enum":["qoq","yoy"]},"concept":{"type":"string"},"prior":{"type":"number"},"priorPeriod":{"type":"string"},"priorEnd":{"type":"string"},"current":{"type":["number","null"]},"changePct":{"type":["number","null"]},"form":{"type":"string"},"accn":{"type":"string"},"filed":{"type":"string"},"source":{"type":"string","description":"XBRL companyfacts URL"}}}},"guidance":{"type":"array","items":{"type":"object","properties":{"quote":{"type":"string","description":"verbatim sentence"},"source":{"type":"string"}}}},"rc":{"type":["object","null"],"description":"Chainlink feed on Robinhood Chain 4663 when the ticker has one"},"skipped":{"type":"array","description":"newer filings that were looked at and why they were not used"},"receipt":{"type":["object","null"],"description":"EIP-712 ReadReceipt signed by the server: contentHash = keccak256(JSON of the body without receipt)"}}}}}},"400":{"description":"bad ticker or period (not charged)"},"402":{"description":"Payment required: PAYMENT-REQUIRED header (x402 v2)"},"404":{"description":"no release found (not charged)"},"502":{"description":"SEC unreachable (not charged)"}}}},"/v1/earnings/{ticker}/{period}":{"get":{"summary":"Earnings release for one quarter (x402)","parameters":[{"name":"ticker","in":"path","required":true,"schema":{"type":"string","example":"NFLX"}},{"name":"period","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d{4}Q[1-4]$","example":"2026Q2"},"description":"Fiscal year + quarter as returned in `period`"}],"x-x402":{"scheme":"exact","network":"eip155:4663","asset":"0x5fc5360d0400a0fd4f2af552add042d716f1d168","assetSymbol":"USDG","decimals":6,"price":"0.05","priceAtomic":"50000","payTo":"0x3E03b49aaE999a6A10a5F74742FD731444a72a7D","settles":"only when the handler answers < 400"},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"ticker":{"type":"string"},"company":{"type":"string"},"cik":{"type":"string"},"period":{"type":"string","description":"fiscal year + quarter, e.g. 2026Q2 (NVIDIA: 2027Q2 = Q2 FY2027)"},"periodLabel":{"type":"string"},"periodEnd":{"type":["string","null"]},"form":{"type":"string"},"accession":{"type":"string"},"filedAt":{"type":"string","description":"EDGAR acceptanceDateTime"},"readAt":{"type":"string"},"seconds":{"type":"number","description":"how long this read took (fetch + parse). Filing-to-read latency for report-day filings is in /v1/watch"},"document":{"type":"string","description":"sec.gov URL of the document the items were read from"},"filingIndex":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"key":{"enum":["revenue","operatingIncome","netIncome","epsDiluted","operatingCashFlow","freeCashFlow"]},"label":{"type":"string","description":"row label as written"},"value":{"type":"number"},"unit":{"type":"string"},"raw":{"type":"string","description":"the number as printed"},"scale":{"type":"string","description":"units/thousands/millions/billions as stated by the table"},"period":{"type":"string"},"column":{"type":"string","description":"column header as written"},"quote":{"type":"string","description":"the exact table row text; a verbatim substring of the document text"},"source":{"type":"string"}}}},"compare":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"kind":{"enum":["qoq","yoy"]},"concept":{"type":"string"},"prior":{"type":"number"},"priorPeriod":{"type":"string"},"priorEnd":{"type":"string"},"current":{"type":["number","null"]},"changePct":{"type":["number","null"]},"form":{"type":"string"},"accn":{"type":"string"},"filed":{"type":"string"},"source":{"type":"string","description":"XBRL companyfacts URL"}}}},"guidance":{"type":"array","items":{"type":"object","properties":{"quote":{"type":"string","description":"verbatim sentence"},"source":{"type":"string"}}}},"rc":{"type":["object","null"],"description":"Chainlink feed on Robinhood Chain 4663 when the ticker has one"},"skipped":{"type":"array","description":"newer filings that were looked at and why they were not used"},"receipt":{"type":["object","null"],"description":"EIP-712 ReadReceipt signed by the server: contentHash = keccak256(JSON of the body without receipt)"}}}}}},"400":{"description":"bad ticker or period (not charged)"},"402":{"description":"Payment required"},"404":{"description":"no release found (not charged)"},"502":{"description":"SEC unreachable (not charged)"}}}},"/v1/watch":{"get":{"summary":"This week's reports: date (with source), status waiting/read, filedAt, readAt, seconds","responses":{"200":{"description":"OK"}}}},"/v1/stats":{"get":{"summary":"paidReads, usdgSettled, freeReads, lastSettlements (tx hashes) from the ledger","responses":{"200":{"description":"OK"}}}},"/health":{"get":{"summary":"Liveness, payment and receipt signer status","responses":{"200":{"description":"OK"}}}}}}