---
title: "Labor and financing conditions"
method: GET
path: "/api/v1/series/labor-ranges"
---

# Labor and financing conditions

`GET /api/v1/series/labor-ranges`

## Request

- Base URL: `https://fronterasignal.com`
- URL: `https://fronterasignal.com/api/v1/series/labor-ranges`
- Auth: none required

Use to gauge construction labor and financing conditions in the Rio Grande Valley: typical build time for a 2,100 sq ft house, the immigration-enforcement climate on job sites and the construction-loan trend. Aggregated, with no firm-level data. Readings are sparse; check age_days before you rely on one. Example: "How long does it take to build a 2,100 sq ft house in the Valley right now?"

Returns: Build time for a 2,100 sq ft house, the immigration-enforcement climate and the construction-loan trend in the Valley, by week.

Free sample (a real answer to /api/v1/series/labor-ranges?from=2026-W30&to=2026-W30): https://fronterasignal.com/data/v1/samples/series-labor-ranges.json

## Query parameters

- `from` string
- `to` string

## Response `200`

Build time for a 2,100 sq ft house, the immigration-enforcement climate and the construction-loan trend in the Valley, 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
    - `metric` string, required
    - `value` object, required
      - `low` integer, required
      - `high` integer, required
      - `unit` string, required
    - `unit` string, nullable, required
    - `value_type` string, nullable, required
    - `value_text` string
    - `as_of` string, nullable, required
    - `age_days` integer, nullable, required
    - `cadence` string, required
    - `stale` boolean, required
    - `source` string, nullable, required
    - `status` string, required
    - `backfill` boolean, 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)
