---
title: "Weekly briefing as JSON"
method: GET
path: "/api/v1/issue"
---

# Weekly briefing as JSON

`GET /api/v1/issue`

## Request

- Base URL: `https://fronterasignal.com`
- URL: `https://fronterasignal.com/api/v1/issue`
- Auth: none required

Use when you need the written weekly briefing on Rio Grande Valley construction (permits, materials, labor, housing supply, major projects) in English or Spanish, as JSON with headline, key figures, chart data and full text. Pass week=YYYY-Www for a past issue; a week we never published is a free 400 that lists the weeks we have. Example: "What changed in Valley construction this week?"

Returns: One weekly briefing as JSON: title, summary, key figures with dates and sources, chart data and the full text, in English or Spanish.

Free sample (a real answer to /api/v1/issue?week=2026-W37&lang=en): https://fronterasignal.com/data/v1/samples/issue.json

## Query parameters

- `week` string
- `lang` 'en' | 'es'

## Response `200`

One weekly briefing as JSON: title, summary, key figures with dates and sources, chart data and the full text, in English or Spanish.

- object
  - `publisher` string, required
  - `week_id` string, required
  - `date` string, required
  - `lang` string, required
  - `title` string, required
  - `dek` string, required
  - `issue_no` integer, required
  - `data_as_of` string, required
  - `sample` boolean, required
  - `stats` object[], required
    - `label` string, required
    - `value` string, required
    - `meta` string, required
    - `as_of` string, required
    - `source` string, required
    - `delta` string
  - `charts` object[], required
    - `id` string, required
    - `type` string, required
    - `kicker` string, required
    - `title` string, required
    - `note` string, required
    - `unit` string
    - `labels` string[]
    - `values` number[]
    - `highlight` string
    - `source` string, required
    - `as_of` string, required
    - `today` string
    - `items` object[]
      - `label` string, required
      - `start` string, required
      - `end` string
      - `status` string, required
    - `x` string[]
    - `series` object[]
      - `name` string, required
      - `values` number[], required
  - `body_markdown` string, required
  - `cadence` string, required
  - `disclaimer` string, required

## Other responses

- `400`: Bad or unknown parameters. Free, before any payment; allowed lists the valid ones. unknown_param (400): A query parameter this endpoint does not take. allowed lists the ones it does. repeated_param (400): The same parameter was sent twice. missing_param (400): A required parameter is missing. bad_param (400): A value in the wrong format (date, ISO week, number, length). The message names the parameter. unknown_value (400): A value outside the list we cover (city, county, item, store, type of work, language). allowed lists the valid ones. unknown_week (400): No issue was published for that week in that language. allowed.week lists the ones we have. bad_range (400): from is after to. no_house_number (400): nearby and parcel need a house number and street; an intersection or a street alone has no single place. not_covered (400): The place is outside what the endpoint covers. parcel covers Hidalgo County only for now.
- `402`: Payment required. Free of charge to receive. The PAYMENT-REQUIRED header (base64 JSON, x402 v2) lists price, network, asset and payTo; retry with a PAYMENT-SIGNATURE header.
- `404`: A valid query with nothing to return, or no such endpoint. Free: before any payment, or for nearby and parcel after the payment is verified and never settled. no_results (404): The query is valid but nothing matches it. Free. no_readings (404): Rows exist for that range but every one is dark or no_reading. Free. no_match (404): No owner or design firm contains that name. Free. too_few_projects (404): Fewer than 5 usable filings in every group, so there is no statistic to sell. Free; counts are in the body. not_found (404): No such endpoint or series. address_not_found (404): nearby and parcel: the address could not be placed on the map or matched to a parcel. Found after the payment is verified; the payment is not settled. ambiguous (404): nearby and parcel: the address fits several different places or parcels. Add the direction (N, S, E, W). Not settled. outside_coverage (404): nearby: the address is outside Hidalgo, Cameron, Starr and Willacy counties. Not settled. not_available (404): parcel: this record is not available from this API. Not settled.
- `503`: The payment service is starting (retry after the Retry-After header), payments are off, or a live public-records lookup did not answer in time. Never settled. upstream_unavailable (503): nearby and parcel read public records at request time, and that service did not answer in time. Retry in a minute. Not settled. payment_service_starting (503): The payment service is starting. Retry after the Retry-After header (2 s). Never charged. payments_not_configured (503): Payments are not switched on for this deployment.

---

[API](https://skmtc.dev/fronterasignal/apis/frontera-signal-api.md) · [All operations](https://skmtc.dev/fronterasignal/apis/frontera-signal-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fronterasignal/apis/frontera-signal-api/revisions/39e3fa496b3f?raw)
