Radar Perene
← home

Radar Perene / api/docs

Public API & widget

Radar Perene's Today's reading is available as a public JSON endpoint and embeddable widget. No signup, no API key, no per-user rate limits. Attribution required.

This documentation covers the endpoint, the response schema, three widget sizes, and the usage policy.

1. Endpoint

GET https://radarperene.com/api/todays-reading.json

Response: `application/json`. CDN cache: 4 hours. CORS: open (any origin). Refresh: daily, at Brazilian market close.

2. Call example

curl -s https://radarperene.com/api/todays-reading.json | jq

Sample response:

{
  "reference_date": "2026-06-04",
  "risk_br_score": 38.1,
  "regime_br": "moderately_defensive",
  "global_regime_score": 51.6,
  "regime_global": "neutral",
  "featured_lens": "wealth",
  "analog": "2018-09",
  "visible_components": {
    "reits_ibov_percentile": 78,
    "finance_ibov_percentile": 22,
    "vale_gold_percentile": 35
  },
  "divergences": ["BR defensive × Global neutral — contained reading"],
  "cadence": "daily",
  "updated_at": "2026-06-04T19:00:00-03:00",
  "methodology": "https://radarperene.com/methodology",
  "disclaimer": "Descriptive reading. Not advice or recommendation. Consult a licensed professional."
}

3. Response schema

FieldTypeDescription
`reference_date``string` (ISO 8601 — `YYYY-MM-DD`)Reading close date.
`risk_br_score``number` (0–100)Brazil Regime aggregate score.
`regime_br``string` (enum)Brazil Regime categorical bucket: `strong_risk_off` · `moderate_risk_off` (`moderately_defensive`) · `neutral` · `moderate_risk_on` · `broad_risk_on`.
`global_regime_score``number` (0–100)Global Regime aggregate score.
`regime_global``string` (enum)Global Regime categorical bucket, same set.
`featured_lens``string` (enum)Lens pressing the aggregate reading most: `wealth` · `macro` · `institutional` · `real_estate` · `electoral`.
`analog``string` or `null`Slug of the analog historical window (e.g., `2018-09`), or `null` when similarity is insufficient.
`visible_components``object`Map of editorially exposed percentiles. Weights and formulas are not exposed by design (see Methodology §2.4).
`divergences``array<string>`Relevant cross-axis divergences of the day.
`cadence``string`Always `"daily"` for this endpoint.
`updated_at``string` (ISO 8601 with timezone)Snapshot timestamp.
`methodology``string` (URL)Link to the canonical methodology page.
`disclaimer``string`Required notice when the output is displayed publicly.

Fields may be added in future versions without breaking compatibility. Existing fields will not be removed without a 90-day declared deprecation.

4. Embeddable widget — three sizes

All widgets render crawler-readable static HTML (content does not depend on JavaScript).

Small (300×120 px) — Risk-BR score and bucket only:

<iframe
  src="https://radarperene.com/widget/todays-reading?size=small&theme=light"
  width="300" height="120"
  frameborder="0"
  loading="lazy"
  title="Radar Perene — Today's reading">
</iframe>

Medium (480×280 px) — score + regime + analog + one-line comment:

<iframe
  src="https://radarperene.com/widget/todays-reading?size=medium&theme=light"
  width="480" height="280"
  frameborder="0"
  loading="lazy"
  title="Radar Perene — Today's reading">
</iframe>

Large (720×440 px) — full reading including divergences and visible percentiles:

<iframe
  src="https://radarperene.com/widget/todays-reading?size=large&theme=light"
  width="720" height="440"
  frameborder="0"
  loading="lazy"
  title="Radar Perene — Today's reading">
</iframe>

Optional parameters:

Automatic citation to Radar Perene is rendered inside the widget. Removing it is not permitted.

5. Usage policy

Summary. Full terms at /terms §6.

6. Versioning

The API follows semantic versioning. This is v1.

7. No formal SLA

Radar Perene does not offer a contractual SLA for the public endpoint — it is a free service. We employ reasonable efforts to keep the endpoint available with aggressive CDN caching. In case of prolonged incident, the main page (/) carries a notice.

For an SLA, consider the Founder Access plan (authenticated platform access with applicable SLA on the core services).

8. Support

Technical questions about the API or the widget: [contact to be defined]@radarperene.com. No response-time promise for free-tier use; responses in order of arrival per solo operator capacity.

---