LAREDO MEXICO CITY WASHINGTON D.C. OTTAWA
 ·  LIVE
← The Desk
The machine layer

The Data
Endpoints.

Every figure on this desk is served as JSON at the same moment it is drawn on a chart. Here is each endpoint, what it returns, where the numbers come from, how often it refreshes, and what its timestamp actually means. No key, no sign-up, no rate limit beyond common sense.

Before you build on it

These endpoints exist so an analyst, a student, or a model can read the same numbers the dashboards read. They are cached at the edge, so a request costs the source agency nothing. Please cache on your side too, and keep the attribution below with anything you publish.

Every payload carries its own stamp. When a source cannot supply a figure, the field comes back null. The desk never fills a gap with a placeholder, so treat null as "not published yet," not as zero.

The endpoints

8 open JSON routes

Laredo corridor

GET /api/corridor

Monthly BTS crossing counts for Port Laredo (trucks, trains, personal vehicles, pedestrians), live CBP wait times for every Laredo crossing, and the trailing-12-month truck ranking across all U.S.-Mexico ports.

Fieldsupdated · trucks[]{m,v} · trains[] · cars[] · peds[] · crossings[]{name,truck,pass} · ranking[]{name,v,pct} · stats{latest,yoy,ttm} · ttms{}
Cache cadenceRevalidated every 30 minutes. BTS series cached 6 hours, CBP waits 10 minutes.
Timestamp`updated` is the moment this payload was assembled, in ISO 8601 UTC. Monthly series carry their own reference month in `m` (YYYY-MM).
SourcesBTS Border Crossing Entry Data, CBP Border Wait Times
Dashboard/corridor

Live pulse

GET /api/live

The two figures the desk refreshes on every page: the World Trade Bridge commercial wait and the peso/USD rate.

Fieldsupdated · bridge{wait,min,name,status,asOf} · fx{mxn,date,src}
Cache cadenceRevalidated every 10 minutes. FX cached 1 hour.
Timestamp`bridge.asOf` is CBP's own lane stamp, not our fetch time. `fx.date` is the rate's reference date. A figure the source cannot supply comes back null, never a placeholder.
SourcesCBP Border Wait Times, Banco de México FIX (or ECB reference rate)

Every crossing

GET /api/bridges

CBP wait times for every U.S.-Mexico crossing, normalized, with the busiest commercial crossing called out.

Fieldsupdated · source · crossingCount · commercialOpen · busiest · ports[]
Cache cadenceRevalidated every 10 minutes.
Timestamp`updated` is the assembly time in ISO 8601 UTC; each port carries CBP's own lane stamp.
SourcesCBP Border Wait Times
Dashboard/bridges

Ports by trade value

GET /api/ports

Top 5 U.S. ports of entry by total trade value over a rolling 12 months, plus the top HS2 commodity chapters crossing Port Laredo in each direction.

Fieldsupdated · live · period · source · ports[]{name,v,hero} · commoditiesImports[] · commoditiesExports[]
Cache cadenceRevalidated daily.
Timestamp`period` is the 12-month window in human form. `live` is false when the payload is the filed seed rather than a fresh Census pull.
SourcesU.S. Census international trade (port and HS2 detail)
Dashboard/corridor

U.S.-Mexico border by port

GET /api/usmx

Trade value for all U.S.-Mexico land ports of entry, by port and by state, with the truck-crossing series behind it.

Fieldslive · period · source · grandTotalB · yoy · ports[]{name,state,totalB,importsB,exportsB,share} · byState[] · series[] · crossings{}
Cache cadenceRevalidated daily.
Timestamp`period` names the reference window. `live` false means the filed seed is being served.
SourcesU.S. Census international trade, BTS Border Crossing Entry Data

Covarrubias Lozano Border Trade Index

GET /api/clbti

The monthly CLBTI composite for the Laredo customs district, its three weighted components, event readings, and the full robustness battery.

FieldslatestMonth · latest{composite,yoyDelta,yoyPct,momDelta} · series[]{month,composite,trade,crossings,jobs,compositeNsa,yoyPct} · events[] · robustness{} · methodology{} · sources[] · updatedAt
Cache cadenceRevalidated daily; the underlying agency data is monthly.
Timestamp`updatedAt` is the computation time. `latestMonth` is the last month with data from all three sources. An unreachable source returns `error` rather than a partial index.
SourcesU.S. Census, BTS, BLS
Dashboard/clbti

Desk signals

GET /api/signals

The policy clock and the desk's current readings: upcoming deadlines with day counts, live figures, and the standing figures behind the weekly Border Brief.

Fieldsupdated · deadlines[]{t,date,iso,days} · live{} · figures[]
Cache cadenceRevalidated hourly.
Timestamp`updated` is ISO 8601 UTC. Day counts are computed against that stamp.
SourcesUSTR, Federal Register, plus the live feeds above

Desk inventory

GET /api/lab-stats

What the desk currently publishes: counts of dashboards, tools, stories, and reports.

Fieldscounts{}
Cache cadenceRevalidated every 30 minutes.
TimestampReflects the deployed build.
SourcesThis repository

Terms, in one paragraph

CC BY 4.0
  • The underlying data is public U.S. and Mexican government data. The compilation, normalization, and the CLBTI index construction are the desk's work, published under CC BY 4.0.
  • Attribute the desk when you republish a figure or a chart built on one. The citation below is the form to use.
  • Cache what you pull. These routes are cached at the edge and hammering them helps nobody.
  • Corrections and questions go to dcova@tamiu.edu.
How to cite the desk

Covarrubias, Daniel. The Border Intelligence Desk. Texas Center for Border Economic and Enterprise Development, Texas A&M International University. labs.drdanielcovarrubias.com.