---
title: "Building-input prices by week"
method: GET
path: "/api/v1/series/cost-basket-weekly"
---

# Building-input prices by week

`GET /api/v1/series/cost-basket-weekly`

## Request

- Base URL: `https://fronterasignal.com`
- URL: `https://fronterasignal.com/api/v1/series/cost-basket-weekly`
- Auth: none required

Use to see which way building-input costs are moving for South Texas jobs, week by week: framing lumber, studs, OSB, drywall, rebar, copper, Gulf Coast diesel, the 30-year mortgage rate and the construction producer price index. Each row has the level, unit, direction (up, down, flat) and date. Not a bid or quote. Example: "Has framing lumber gone up or down since August?"

Returns: Level, unit and direction (up, down, flat) of framing lumber, studs, OSB, drywall, rebar, copper, diesel, the 30-year mortgage rate and the construction producer price index, by week.

Free sample (a real answer to /api/v1/series/cost-basket-weekly?from=2026-W42&to=2026-W42): https://fronterasignal.com/data/v1/samples/series-cost-basket-weekly.json

## Query parameters

- `from` string
- `to` string

## Response `200`

Level, unit and direction (up, down, flat) of framing lumber, studs, OSB, drywall, rebar, copper, diesel, the 30-year mortgage rate and the construction producer price index, by week.

- object
  - `publisher` string, required
  - `series` string, required
  - `title` string, required
  - `schema_version` string, required
  - `latest_week` string, required
  - `query` object, required
    - `from` string
    - `to` string
  - `cadence` string, required
  - `fields` string[], required
  - `returned` integer, required
  - `rows` object[], required
    - `week_id` string, required
    - `input` string, required
    - `direction` string, nullable, required
    - `direction_detail` string, nullable, required
    - `value` union, required
      - number
      - string
    - `unit` string, nullable, required
    - `value_type` string, nullable, required
    - `as_of` string, nullable, required
    - `age_days` integer, nullable, required
    - `cadence` string, required
    - `stale` boolean, required
    - `source` string, nullable, required
    - `so_what` string, nullable, required
    - `status` string, required
    - `backfill` boolean, required
    - `value_text` string
    - `approx` boolean
  - `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)
