API

API fields

What each field in the responses means and where it comes from. Responses carry data only. Paid views are 0.001 USDC per call on Solana (x402 exact); discovery: /.well-known/x402.json.

Per-company endpoints

GET /api/solana-stocks/{ticker}Free. Tokenized stock on Solana: tokens and mints, next_earnings, condition_count, result_counts, latest_verdict.
GET /api/solana-stocks/{ticker}?view=fullPaid when the ticker has a condition. Adds conditions (full rows), financials, signals.
GET /api/catalyst/{ticker}?view=freeFree. Any company with a condition (US / JP Weekly, sector themes, neocloud, Physical AI): identity, next_earnings, counts, latest_verdict.
GET /api/catalyst/{ticker}Paid when the company has a condition; a covered company without one gets the free view at no cost. Adds conditions, financials, signals. Both views carry themes (the theme ids the company belongs to).
GET /api/themesFree. themes (those with active catalysts first) and, apart, selections (weekly): id, kind, title, member_count, active_catalysts, events_next_14_days, latest_article.
GET /api/themes/{theme}Free. lineage (editions, latest marked) and members: ticker, company, listed, group, source_article, next_earnings, next_event_date, active_catalysts, solana_token.
GET /api/themes/{theme}?view=fullPaid, 0.01 USDC. Per member: current_catalyst, latest_verdict, status_counts, conditions (full rows with status), solana_tokens (issuer, symbol, mint).

Example: https://osd.x402jp.com/api/catalyst/6920?view=free. An unknown ticker is 404 before any payment is asked for.

Themes

idA sector × market: neocloud-us, neocloud-jp, physical-ai-semis-us, physical-ai-robotics-us, physical-ai-models-us, physical-ai-jp, semiconductor-supply-chain-jp, datacenter-power-jp, space-geospatial-jp, infrastructure-resilience-jp, healthcare-jp, edge-ai-field-dx-jp, financials-jp, mobility-auto-parts-jp, food-staples-jp. weekly-us and weekly-jp are the week's selection and are listed apart (selections).
membersThe latest article edition's list (lineage marks it latest), with the article's sub-grouping in group; plus any company a catalyst was later added to under the theme, and Weekly picks in their sector. A company with no active catalyst is still listed. source_article is where the company was picked from (e.g. the IR fair exhibitor map), not a theme.
next_event_dateThe nearer of a confirmed earnings date and the current catalyst's target date, on or after today.
current_catalystThe nearest active catalyst, as a full row; null when the company has none.
success_conditionsOn rows written since 2026-11-05: metric, operator (> >= < <=), threshold {value, unit} and source_doc — the document it is judged against. A disclosure that has to happen is {value: 1, unit: "event"}.
updatesNew catalysts are added weekly through the chat operation (theme_catalysts) and appear the same day; existing ones are never rewritten. A newer edition's condition replaces an older one by status, not by deletion.

next_earnings

The next earnings date, only as a primary source states it. A date estimated by a model is never returned. Checked by npm run check:earnings-dates (weekly, no API key) into data/earnings-dates.json.

dateYYYY-MM-DD, or null when status is not confirmed.
status: confirmedA future date read off a primary source; source_url is that source.
status: not_announcedJP: the JPX 決算発表予定日 lists were read and carry no future date for the code — the company has not notified one yet.
status: unverifiedNo primary source could be checked (US companies without an announcement on record, or the JPX fetch failed). Counted as 取得失敗.
source_urlJP: the JPX schedule workbook (https://www.jpx.co.jp/listing/event-schedules/financial-announcement/). US: the company's IR / press-release page the date was read from.
checked_atWhen the source was read.

conditions[] and latest_verdict

One row per dated condition this site set on the company. Every row carries the question, the ticker, the target date, the result and the evidence URL; rows are never reduced to an id.

idStable, readable row id: us-weekly-{week}-{ticker}, jp-weekly-{week}-{ticker}, physical-ai-{n}, neocloud-us-{n}, jp-sector-{ticker}.
ticker / companyThe company the condition is about.
populationUS Weekly Selection, JP Weekly Selection, Physical AI series, Neocloud US, Neocloud Japan, JP Sector Research, Submitted catalyst. Hit-rates are reported per population.
week_ofWeekly rows: the Monday of the selection week.
questionThe condition being judged — what has to be disclosed for a hit.
fail_directionWhat a miss would look like, as written with the condition. Not judged on its own.
target_dateThe date the condition is judged on. When the company's own date was checked, that date (target_date_source_url is the IR page); otherwise the date written with the condition. Judging waits until 7 days after it.
resulthit / partial / miss / na (the date passed and nothing could be judged) / pending / excluded (left the population before its date, e.g. delisted).
statusactive (target date ahead, current edition) / judged (a verdict was given) / superseded (a newer edition replaced it — superseded_by is the replacement — or dropped the company) / expired (date passed, no verdict yet).
source_articleThe article the condition, or its scoring, was published in.
themesTheme ids the company belongs to; Weekly rows carry the sector theme of the pick (e.g. semiconductor-supply-chain-jp).
judged_atWhen the result was given.
evidence_urlThe disclosure the result was judged against (first of evidence_urls).
reasoning (paid)What was observed against the question.
evaluator (paid)Who judged: the model name, or the chat operation.
verdict_history (paid)Earlier results and why they were corrected. A result is never overwritten in place.

financials (paid)

The latest disclosed figures, extracted mechanically from the filing by npm run fetch:financials (no API key, no model). A value the filing does not tag is null; nothing is derived or estimated.

US sourceSEC EDGAR XBRL companyfacts. latest_quarter (a ~90-day period) and latest_annual (~365 days): revenue, operating_income, net_income, eps_diluted.
US value fieldsvalue, unit, period_start, period_end, concept (us-gaap tag), form (10-Q / 10-K), filed, source_url (the filing on EDGAR).
JP sourceTDnet 決算短信 XBRL (Summary). latest: revenue (売上高), operating_income (営業利益), ordinary_income (経常利益, JGAAP only), net_income (親会社株主に帰属する当期純利益).
JP periodQ1_YTD / Q2_YTD / Q3_YTD are cumulative from the start of the fiscal year, as 決算短信 report them; FY is the full year. basis: consolidated or non_consolidated.
JP value fieldsvalue (JPY), prior_value, yoy_pct, source_url (the 短信 PDF on TDnet), disclosed_at. TDnet keeps documents for about a month, so older source_url links may have expired.
prior_value / yoy_pctSame period one year earlier, as reported in the same filing. yoy_pct = (value − prior) / prior × 100, 1 dp; null when either is missing or prior ≤ 0.
nullNo filing in reach yet: a private company, a non-US filer without us-gaap facts, or a JP company with no 短信 since the extraction started.

signals (paid)

claim / directionOne-line claim and its direction (bullish / bearish / structural).
source / source_url / source_tierWhere it came from: primary, secondary, opinion or leak.
verifiedfalse = not confirmed against a primary source. Kept, not used for selection.

Informational only — not investment advice. No market prices are shown or used.