Dunvale Border Logistics API,
built for metered data use.
Dunvale gives teams and systems cited wait rows, lane status, source freshness, caveated map snapshots, reports, OpenAPI, RSS, JSON-LD, direct x402 settlement, and authenticated REST resources. The goal is simple: structured freight context priced against repeated parser and infrastructure cost.

Data packet surface
Discovery, freshness, pricing, and citations stay visible before requests.
Connection contract
x402 API access
status
GET /public/x402/agents/statuspublicquote
POST /public/x402/agents/request402settlement
x402 settlement headerUSDCpayload
evidence_packetJSONmetered unit
$0.0059 per standard packet
Metered logistics resources
Dunvale is organized around paid/scoped wait data, caveated map packets, historical analytics, parsed exports, reports, and authenticated REST resources.
$0.0059+x402 transaction path
Bundled USDC x402 is the intended rail for sub-cent packet calls. Transaction keys remain the account-credit and trial bridge into the same evidence contract.
402-readyCrawlable data surface
Reports, data pages, domain pages, OpenAPI, llms.txt, JSON-LD, and the public manifest describe the source graph. Free no-key access covers reports, feeds, manifests, discovery pages, and current public crossing pages.
crawlable + structuredPublic product manifest
A single GET /public/about returns domains, source families, source status, high-level coverage, authority, and access guidance without exposing historical exports or raw rows.
self-describingSnapshots + feeds
Teams and systems can use reports, RSS feeds, caveated public snapshots, and authenticated REST endpoints for periodic source review. Historical analytics and routing context require scoped server-side access.
REST + RSSProvenance built in
Raw and historical rows keep source timestamps and references inside scoped access. Packet responses expose evidence IDs, retrieval metadata, and source_ref claim policy before findings reach reports or downstream systems.
Audit-gradeOne priced-resource contract for account keys, transaction keys, and x402.
Agents should read the catalog before choosing a payment rail. It names the resource ID, endpoint, price, freshness promise, evidence contract, and whether the resource is direct-x402 or account-key only.
GET /public/agents/resourcesGET /public/border-pulse/packagesGET /public/border-pulse/sample-payloadsAgent evidence packet
agent.evidence.retrieve$0.0059
Compact retrieval packet for one scoped freight or Border Pulse question.
Packet includes generated time, cache status, source timestamps, and source-quality profile when source facts are returned.
Claim policy
cited report text, cited packet evidence, saved source_ref claim policy, or replay claimBearing/claimGuidance inside returned evidence scope
raw-current, stale, no-row, scheduled, planned, retired, unknown, inactive, future, parser-lagged, parser-incomplete, degraded-run, or embedding-backlog rows stay context only unless packet claim_guidance or replay claimGuidance says otherwise
POST fields: evidence_id, claim_bearing, claim_guidance, evidence_mode, source_ref
Replay fields: evidenceId, claimBearing, claimGuidance, evidenceMode, sourceRef
Source health preflight: GET /v1/sources; read top-level sourceClaimAudit before broad source-level claims; check sourceClaimAudit.claimPolicy.sourceHealthPreflight and nextAction; check /v1/sources claimBearing=true before broad source-level claims; check sourceFactHealth.total > 0 before broad source-level claims; check sourceFactHealth.claimBearingPolicyRows > 0 before broad source-level claims; check sourceClaimAudit.rawCurrentContextOnlyCount, nonLiveSourceCount, staleLiveSourceCount, and noRowSourceCount; check sourceFactHealth.missingClaimPolicyRows before trusting broad source readiness; check sourceFactHealth.parserLagHours and maxParserLagHours before current-source claims; check sourceFactHealth.futureEventsBeyond7d before current road/source claims; check pendingEmbeddings and failedEmbeddings before relying on semantic retrieval alone; check degraded-run claimWarnings before trusting source-run freshness; treat claimWarnings as stronger than generic freshness or catalog copy
do not assert causality unless returned evidence proves causality
Grounded answer packet
agent.evidence.answer$0.0059
Answer-mode packet with cited source context for keyed agents.
Same packet freshness contract as retrieval; wording must stay grounded in returned evidence.
Claim policy
cited report text, cited packet evidence, saved source_ref claim policy, or replay claimBearing/claimGuidance inside returned evidence scope
raw-current, stale, no-row, scheduled, planned, retired, unknown, inactive, future, parser-lagged, parser-incomplete, degraded-run, or embedding-backlog rows stay context only unless packet claim_guidance or replay claimGuidance says otherwise
POST fields: evidence_id, claim_bearing, claim_guidance, evidence_mode, source_ref
Replay fields: evidenceId, claimBearing, claimGuidance, evidenceMode, sourceRef
Source health preflight: GET /v1/sources; read top-level sourceClaimAudit before broad source-level claims; check sourceClaimAudit.claimPolicy.sourceHealthPreflight and nextAction; check /v1/sources claimBearing=true before broad source-level claims; check sourceFactHealth.total > 0 before broad source-level claims; check sourceFactHealth.claimBearingPolicyRows > 0 before broad source-level claims; check sourceClaimAudit.rawCurrentContextOnlyCount, nonLiveSourceCount, staleLiveSourceCount, and noRowSourceCount; check sourceFactHealth.missingClaimPolicyRows before trusting broad source readiness; check sourceFactHealth.parserLagHours and maxParserLagHours before current-source claims; check sourceFactHealth.futureEventsBeyond7d before current road/source claims; check pendingEmbeddings and failedEmbeddings before relying on semantic retrieval alone; check degraded-run claimWarnings before trusting source-run freshness; treat claimWarnings as stronger than generic freshness or catalog copy
do not assert causality unless returned evidence proves causality
Map evidence snapshot
map.snapshot$0.0059
Scoped map payload for source-fact-ready waits/alerts plus caveated raw-current aircraft, vessels, gauges, and source health.
Layer freshness and mapped/unmapped counts are returned by map health and snapshot metadata.
Claim policy
cited report text, cited packet evidence, saved source_ref claim policy, or replay claimBearing/claimGuidance inside returned evidence scope
raw-current, stale, no-row, scheduled, planned, retired, unknown, inactive, future, parser-lagged, parser-incomplete, degraded-run, or embedding-backlog rows stay context only unless packet claim_guidance or replay claimGuidance says otherwise
POST fields: evidence_id, claim_bearing, claim_guidance, evidence_mode, source_ref
Replay fields: evidenceId, claimBearing, claimGuidance, evidenceMode, sourceRef
Source health preflight: GET /v1/sources; read top-level sourceClaimAudit before broad source-level claims; check sourceClaimAudit.claimPolicy.sourceHealthPreflight and nextAction; check /v1/sources claimBearing=true before broad source-level claims; check sourceFactHealth.total > 0 before broad source-level claims; check sourceFactHealth.claimBearingPolicyRows > 0 before broad source-level claims; check sourceClaimAudit.rawCurrentContextOnlyCount, nonLiveSourceCount, staleLiveSourceCount, and noRowSourceCount; check sourceFactHealth.missingClaimPolicyRows before trusting broad source readiness; check sourceFactHealth.parserLagHours and maxParserLagHours before current-source claims; check sourceFactHealth.futureEventsBeyond7d before current road/source claims; check pendingEmbeddings and failedEmbeddings before relying on semantic retrieval alone; check degraded-run claimWarnings before trusting source-run freshness; treat claimWarnings as stronger than generic freshness or catalog copy
do not assert causality unless returned evidence proves causality
Report/export package
report.export$0.0059
One generated report/export packet with cited source-fact-ready claims and caveated raw context where entitlement permits.
Report freshness follows report generated_at and source snippets embedded in the packet.
Claim policy
cited report text, cited packet evidence, saved source_ref claim policy, or replay claimBearing/claimGuidance inside returned evidence scope
raw-current, stale, no-row, scheduled, planned, retired, unknown, inactive, future, parser-lagged, parser-incomplete, degraded-run, or embedding-backlog rows stay context only unless packet claim_guidance or replay claimGuidance says otherwise
POST fields: evidence_id, claim_bearing, claim_guidance, evidence_mode, source_ref
Replay fields: evidenceId, claimBearing, claimGuidance, evidenceMode, sourceRef
Source health preflight: GET /v1/sources; read top-level sourceClaimAudit before broad source-level claims; check sourceClaimAudit.claimPolicy.sourceHealthPreflight and nextAction; check /v1/sources claimBearing=true before broad source-level claims; check sourceFactHealth.total > 0 before broad source-level claims; check sourceFactHealth.claimBearingPolicyRows > 0 before broad source-level claims; check sourceClaimAudit.rawCurrentContextOnlyCount, nonLiveSourceCount, staleLiveSourceCount, and noRowSourceCount; check sourceFactHealth.missingClaimPolicyRows before trusting broad source readiness; check sourceFactHealth.parserLagHours and maxParserLagHours before current-source claims; check sourceFactHealth.futureEventsBeyond7d before current road/source claims; check pendingEmbeddings and failedEmbeddings before relying on semantic retrieval alone; check degraded-run claimWarnings before trusting source-run freshness; treat claimWarnings as stronger than generic freshness or catalog copy
do not assert causality unless returned evidence proves causality
Laredo Border Pulse
border_pulse.watch_scope.laredo$199/month
What threatens my Laredo freight today, and what evidence backs it?
Confirm coverage, source freshness, and account delivery preferences before customer delivery.
Claim policy
cited report text, cited packet evidence, saved source_ref claim policy, or replay claimBearing/claimGuidance inside returned evidence scope
raw-current, stale, no-row, scheduled, planned, retired, unknown, inactive, future, parser-lagged, parser-incomplete, degraded-run, or embedding-backlog rows stay context only unless packet claim_guidance or replay claimGuidance says otherwise
POST fields: evidence_id, claim_bearing, claim_guidance, evidence_mode, source_ref
Replay fields: evidenceId, claimBearing, claimGuidance, evidenceMode, sourceRef
Source health preflight: GET /v1/sources; read top-level sourceClaimAudit before broad source-level claims; check sourceClaimAudit.claimPolicy.sourceHealthPreflight and nextAction; check /v1/sources claimBearing=true before broad source-level claims; check sourceFactHealth.total > 0 before broad source-level claims; check sourceFactHealth.claimBearingPolicyRows > 0 before broad source-level claims; check sourceClaimAudit.rawCurrentContextOnlyCount, nonLiveSourceCount, staleLiveSourceCount, and noRowSourceCount; check sourceFactHealth.missingClaimPolicyRows before trusting broad source readiness; check sourceFactHealth.parserLagHours and maxParserLagHours before current-source claims; check sourceFactHealth.futureEventsBeyond7d before current road/source claims; check pendingEmbeddings and failedEmbeddings before relying on semantic retrieval alone; check degraded-run claimWarnings before trusting source-run freshness; treat claimWarnings as stronger than generic freshness or catalog copy
do not assert causality unless returned evidence proves causality
Priority Border Pulse custom review
border_pulse.watch_scope.priority_custom_reviewcustom quote
Custom-review intake for San Ysidro, Otay Mesa, and high-traffic Texas lanes before pricing, delivery, or claim-bearing expansion.
Review current watch-scope queue, source gaps, source-fact health, and package approvals before any customer delivery.
Claim policy
cited report text, cited packet evidence, saved source_ref claim policy, or replay claimBearing/claimGuidance inside returned evidence scope
raw-current, stale, no-row, scheduled, planned, retired, unknown, inactive, future, parser-lagged, parser-incomplete, degraded-run, or embedding-backlog rows stay context only unless packet claim_guidance or replay claimGuidance says otherwise
POST fields: evidence_id, claim_bearing, claim_guidance, evidence_mode, source_ref
Replay fields: evidenceId, claimBearing, claimGuidance, evidenceMode, sourceRef
Source health preflight: GET /v1/sources; read top-level sourceClaimAudit before broad source-level claims; check sourceClaimAudit.claimPolicy.sourceHealthPreflight and nextAction; check /v1/sources claimBearing=true before broad source-level claims; check sourceFactHealth.total > 0 before broad source-level claims; check sourceFactHealth.claimBearingPolicyRows > 0 before broad source-level claims; check sourceClaimAudit.rawCurrentContextOnlyCount, nonLiveSourceCount, staleLiveSourceCount, and noRowSourceCount; check sourceFactHealth.missingClaimPolicyRows before trusting broad source readiness; check sourceFactHealth.parserLagHours and maxParserLagHours before current-source claims; check sourceFactHealth.futureEventsBeyond7d before current road/source claims; check pendingEmbeddings and failedEmbeddings before relying on semantic retrieval alone; check degraded-run claimWarnings before trusting source-run freshness; treat claimWarnings as stronger than generic freshness or catalog copy
do not assert causality unless returned evidence proves causality
How systems should use Dunvale data.
Treat Dunvale as a source-policy data tool with caveated raw context. Discover public coverage from reports and manifests, retrieve scoped structured facts through server-side keys or x402, cite the returned sources, and use the account portal when teams need usage metering or keys. Stored candidate workflows require operator approval; clients can request a read-only planning response for the allowlisted Laredo border-waits scope before any stored workflow is enabled.
API clients
- 1Read /llms.txt and GET /public/about first to confirm source scope and product policy.
- 2Keep external web research separate from Dunvale API calls and citations.
- 3For metered packets, call /public/x402/agents/status, then /public/x402/agents/request with the x402 settlement header.
Perplexity research
- 1Use Perplexity Search to discover Dunvale pages with a domain filter for dunvale.com and api.dunvale.com.
- 2Use the returned Dunvale URLs as citations, then call /public/search or /public/chat for archive-backed answers.
- 3Use /public/about and /openapi.json when the research workflow needs structured source coverage.
Browser workflows
- 1Prefer direct API URLs over screen scraping: /public/about, /public/search, /public/chat, and /openapi.json.
- 2If a browser workflow is required, log in at /login and use /portal/account to inspect metered usage and keys.
- 3Keep credentials in the operator-controlled environment and confirm before any settlement or account action.
Custom integrations
- 1Define Dunvale as an HTTP tool: manifest, search, chat, and /v1/evidence/request for keyed evidence.
- 2Start every run with a capability probe, then retrieve cited evidence before presenting findings.
- 3Use account keys for reusable volume and transaction keys for delegated one-run access.
No scraping required.
Dunvale exposes source status, cadence, coverage, evidence policy, and endpoint structure directly to crawlers and API clients. No-key public access is reports, feeds, manifests, discovery pages, and current public crossing pages; historical analytics, raw rows, routing geometry, and traffic/weather feature windows require scoped server-side access. The data contract tells a client what is source-fact-ready, what is live raw-current context, what is scheduled, and what is only roadmap context. Authenticated source health also surfaces sourceClaimAudit, claimBearing, sourceFactHealth.total, claimBearingPolicyRows, missingClaimPolicyRows, futureEventsBeyond7d, pendingEmbeddings, failedEmbeddings, and claimWarnings so downstream systems avoid promoting raw-current, non-live, stale, no-row, missing-parser-policy, planned, or non-vector-ready facts into current claims.
Source-policy evidence where source health and citations clear: border waits, active/current road events, validity-window alerts, labeled forecasts, rail, trade, macro, reports, and packet snapshots. Parser-lagged, degraded-run, embedding-backlog, raw-current hydrology, aviation, maritime, policy, and retired community rows stay context-only unless row guidance and citations prove exact use.
Schema or implementation path exists, but sources are not claim-bearing evidence until rows, health, normalized source facts, and citations exist.
Validated source families queued behind the same contract. Systems should not cite planned rows as current observations.
/public/aboutMachine-readable product, domain, source, status, and capability manifest.
/public/agents/resourcesPriced resource catalog with freshness, evidence, x402, and account-key status.
/public/agents/demo-keyDisabled-by-default temporary demo transaction-key policy for ChatGPT-style trials; scoped and rate-limited, no MAC tracking.
/public/x402/agents/statusDirect USDC x402 readiness, network, and configured resource metering.
/public/border-pulse/packagesCommercial coverage options for Laredo, Detroit/Windsor, Otay Mesa, and planned crossings.
/public/border-pulse/buyer-packets/laredoLaredo service detail with sample payload, policy-watch, and market context.
/public/border-pulse/report-derived-facts/operator-reviewReport-derived wait-volatility, risk-overlay, trade-compliance, and data-gap context.
/public/border-pulse/package-intent-preview/schemaService interest fields, buyer roles, contact preferences, and delivery preferences.
GET /public/border-pulse/packages/:packageIdBorder Pulse detail service setup endpoint.
POST /public/border-pulse/packages/:packageId/intent-previewBorder Pulse intent service setup endpoint.
GET /public/border-pulse/packages/:packageId/handoff-templateBorder Pulse handoff service setup endpoint.
POST /public/border-pulse/packages/:packageId/acceptance-previewBorder Pulse acceptance service setup endpoint.
POST /public/border-pulse/packages/:packageId/source-gap-acceptance-previewBorder Pulse source gap service setup endpoint.
POST /public/border-pulse/packages/:packageId/quote-previewBorder Pulse quote service setup endpoint.
POST /public/border-pulse/packages/:packageId/delivery-previewBorder Pulse delivery service setup endpoint.
POST /public/border-pulse/packages/:packageId/entitlement-previewBorder Pulse entitlement service setup endpoint.
POST /public/border-pulse/packages/:packageId/activation-previewBorder Pulse activation service setup endpoint.
GET /public/border-pulse/packages/:packageId/operator-summaryBorder Pulse operator summary service setup endpoint.
/public/border-pulse/watch-scopesCommercial Border Pulse scope catalog for companies and API clients.
/public/border-pulse/sample-payloadsReviewed Laredo sample replay plus San Ysidro, Otay Mesa, and Texas custom-review request shapes.
/public/border-pulse/source-packs/otayOtay Mesa coverage detail with California/Baja road-event gap.
/public/border-pulse/source-packs/otay/alternate-road-source-discoverySan Diego 511, QuickMap, and Tijuana road-source discovery detail.
/public/border-pulse/source-packs/detroitDetroit/Windsor coverage detail with Michigan road-source decision.
/public/border-pulse/source-packs/detroit/michigan-road-source-decisionMDOT HIAV source decision metadata for future coverage.
/public/border-pulse/source-packs/detroit/michigan-road-source-discoveryMDOT HIAV/RIDE metadata discovery with candidate endpoint counts.
/public/border-pulse/source-packs/detroit/michigan-road-field-profileMDOT HIAV field profile with explicit outFields and a limited sample.
/public/border-pulse/source-packs/detroit/michigan-road-parser-probeMDOT HIAV parser detail with normalized lane closures.
/public/border-pulse/source-packs/detroit/michigan-road-source-registry-previewMDOT HIAV registry and source-fact mapping metadata.
/public/border-pulse/source-packs/detroit/michigan-road-registry-mapping-replayMDOT HIAV replay against registry and mapping metadata.
/public/border-pulse/watch-scope-builder/schemaLaredo watch-scope builder schema.
/openapi.jsonPublic API schema for report, search, chat, manifest, snapshot, and anomaly endpoints.
/llms.txtCompact crawler summary on both the site and API domains.
JSON-LDReport pages expose schema.org metadata for search and answer engines.
Metered packet transactionsx402 evidence requests and transaction-key flows for metered API access.
/public/snapshotCaveated public snapshot with source-claim policy for lightweight source review.
Connect systems through x402 or authenticated product surfaces.
Start with OpenAPI, RSS, JSON-LD, x402, and account keys. Standard packet retrieval and map snapshot requests are $0.0059; account-generated transaction keys use authenticated /v1 endpoints for the same source-policy contract. Commercial Border Pulse pages describe listed and custom coverage without exposing implementation details.
Direct x402 evidence request
GET https://api.dunvale.com/public/x402/agents/status
POST https://api.dunvale.com/public/x402/agents/request
# If the settlement header is missing, the API returns 402 with x402 requirements.
# Retry with the x402 settlement header for the 0.0059 USDC resource.Authenticated API
{
"base_url": "https://api.dunvale.com",
"headers": {
"Authorization": "Bearer dnv_live_..."
},
"resources": [
"/v1/border/:portId/current",
"/v1/evidence/request",
"/v1/agents/request",
"/v1/sources",
"/v1/trade/policy/search",
"/v1/map/snapshot"
]
}x402 settlement support is published as readiness status before a client attempts metered access:
x402 status
GET https://api.dunvale.com/public/x402/agents/status
GET https://api.dunvale.com/public/billing/x402/status
# Returns enabled/readiness fields before a client attempts metered access.Public and authenticated resources for entitled clients.
Each resource returns structured JSON with explicit field names, units, timestamps, and evidence context so downstream products can cite what they used.
GET /public/aboutProduct, source, status, and capability manifest for planning API use
publicGET /public/snapshotCaveated public snapshot for lightweight source review
publicPOST /public/x402/agents/requestDirect USDC x402 metered packet request for one scoped query
x402POST /v1/evidence/requestPreferred account-key or transaction-key evidence retrieval plus deterministic candidate windows; /v1/agents/request stays compatible
bearer or transactionGET /v1/border-analytics/waits/rawAuthenticated raw wait rows for review; claim-bearing use still needs packet evidence and source policy
bearerGET /v1/border-analytics/waits/border-times-exportScoped historical wait export for internal/partner importers; not a no-key browser endpoint
bearerGET /v1/sourcesSource health with sourceClaimAudit, claimBearing, claimGuidance, claimWarnings, sourceFactHealth, parser policy coverage, future-row counts, embedding backlog guidance, and row-level warnings for context-only/drift rows
bearerGET /public/reportsList public or entitled logistics reports by type and scope
public or tokenGET /public/reports/:type/:dateFetch report content, snippets, and structured metadata
public or tokenGET /v1/trade/policy/searchFull-text search of raw-current trade policy documents
bearerGET /v1/map/snapshotMap-state payload for source-fact-ready waits/alerts plus caveated raw-current gauges, aircraft, vessels, and overlays
bearerBorder logistics needs clean source facts.
A logistics manager needs a direct answer: “Which priority border lanes have current wait, weather, and source freshness evidence?”
The useful inputs are current wait rows, lane context, account scope, source freshness, and policy or weather evidence that is actually present. Scraping multiple pages for every review is brittle.
Dunvale returns structured resources instead. The REST response returns the data, current value, source timestamp, and links to supporting reports or related source context when available.
The public site stays focused on logistics facts. Historical analytics, raw rows, and routing context stay behind scoped access where source policy and usage records are clear.
Sample data request
GET /v1/sourcesPOST /v1/evidence/requestGET /public/reports?type=morning_briefing&limit=1Build something with us.
We're working with logistics platforms, brokers, carriers, and trade-data teams. If you're building anything that touches North American trade, the cross-border corridor, or operational reporting — talk to us.