Oquendo & Company

Relay API Reference

The Contract

Relay is the live output of the Infrastructure Deliverability Benchmark: dated, per-parcel counted facts and graded conclusions, served as an API. Every answer is an edition of a public record — dated, citable, and never guessed.

EDITION RESOLUTION — the rule every dated read follows: the answer for a date D is the newest edition dated at or before D. The `as_of` in a response is the edition that actually answered — the date the answer speaks as of — which may be earlier than the date you asked about. A non-exact resolution can later be superseded if a newer edition dated at or before your date lands, and the system record carries its own date — so responses carry a 1-hour TTL plus an ETag. Revalidate with If-None-Match to skip the payload on an unchanged answer; note the read is still metered, and a repeat read of a unit already consumed this period is free either way.

AUTHENTICATION: every read except the public corrections register requires `Authorization: Bearer oqc_live_…`. Keys are issued and rotated from the account surface. Requests that cannot be authenticated or are not entitled receive a uniform denial response that intentionally carries no diagnostic detail; if you hold a valid key and see it, check the header format first.

Relay is a SERVER-TO-SERVER API — browser origins are not permitted by CORS, and a key must never be shipped to a client.

ERRORS: 401 {ok:false, error:'unauthorized'} for every authentication or entitlement failure — deliberately identical in all such cases, so it never reveals which fact failed. 400 {ok:false, error:'invalid_parameter', parameter, expected} names a malformed input. 429 is the legible rate/allowance denial (see Legible429). 503 means a read could not be performed — never confuse it with an empty result. A served answer is always 200.

LIMITS: the posted Subscriber tier includes 25,000 distinct billable units per 30-day period plus a 250-unit courtesy tail, and a per-key burst ceiling of 300 requests per 10 seconds. Every served response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (delta-seconds), so remaining budget never has to be inferred.

METERING: a billable unit is a distinct dated subject (a parcel × edition, a county × monthly edition, or a changes page) per period. Repeat reads of the same unit in-period are FREE. There is no overage billing: past the allowance and its grace tail the API answers with a legible 429 until the period resets, and volume past the metered tier is served by arrangement (Institutional).

SYSTEMATIC ACCESS: the metered tier serves lookups, books, and change tracking. Systematic coverage of the parcel roll is served by arrangement instead; a key whose pattern reads as roll coverage receives a legible 429 (`systematic_access_review`) routing it to Institutional, and ordinary reads on the same key continue to serve normally.

VERSIONING: see the Version & Deprecation Policy on the reference page. The short form: `/api/v1` is stable; additive changes (new fields, new endpoints, new enum values on fields documented as open) are not breaking; removals or meaning changes only ever ship as a new version path with at least 90 days of parallel service, announced on the corrections & notices register.

Endpoints

GET /api/v1/parcel

The conclusion of record for one parcel, as of a date · Bearer key required

ParameterRequiredMeaning
idyesParcel identifier (county appraisal identity). Not unique on its own — pair it with county.
countyyesThe 5-digit county FIPS the parcel number was issued under (e.g. 48029). Required: appraisal-district numbering is county-scoped, so the same number names a different parcel in another county. A request without it is refused rather than answered about a county the caller did not ask about.
as_ofnoDefaults to today (UTC). The response's as_of is the edition that answered — see the edition-resolution rule.
  • 200 — The conclusion of record: status (see the vocabulary), the band per category when graded, the serving system behind it when resolved (`served_by`: system, label, settling authority, and `headroom` — capacity remaining AS PUBLISHED in the system's own filing, with the filing's vintage; null when the filing states none), the serving system's filing record when one stands (`system_record[]`: system, category, the record's own date, and the counted record; the system record and the conclusion carry separate dates, both always stated), and the usage envelope. `system_record_unavailable: true` means the filing record could not be consulted on this read — it implies nothing about whether one stands. `not_yet_graded` with conclusion:null is an honest answer, not an error. Responses carry `Cache-Control: private, max-age=3600` + an ETag keyed to both clocks; revalidate with If-None-Match. RateLimit-* and X-Oquendo-Usage-* headers on every 200.
  • 429 — See Legible429.

Billable unit: distinct parcel × edition per period; repeat reads free

GET /api/v1/register

The county Register series (monthly edition) · Bearer key required

ParameterRequiredMeaning
countyyesCounty name.
as_ofnoA published month as YYYY-MM. Returns the edition as it stood then — the newest edition published at or before that month — rather than today's. Omit for the current edition. A month later than the current one is refused rather than clamped: no edition has been published for it.
  • 200 — The county's standing for the resolved monthly edition, `provenance` always stated. Live: per-category counted facts (status per the vocabulary and the serving systems of record), a band on the public scale ONLY when one is graded, and trend as the edition-over-edition comparison (null until two graded editions exist). Plus the usage envelope and headers.
  • 429 — See Legible429.

Billable unit: distinct county × monthly edition per period; repeat reads free

GET /api/v1/changes

What moved since a date — the change feed · Bearer key required

ParameterRequiredMeaning
sinceyesExclusive lower bound: editions dated after this day.
untilnoInclusive upper bound; defaults to today (UTC). Must be later than since.
categorynoRestrict to one category.
cursornoOpaque continuation from next_cursor. Pages are deterministic; iterate until next_cursor is absent — an empty page with no cursor means nothing further moved. A cursor issued before parcels became county-qualified is refused, not upgraded: restart the walk from since.
  • 200 — Items, one per (parcel, category) whose standing resolution gained an edition in (since, until]: `event` is `appeared` (nothing resolved at since) or `revised` (the standing conclusion differs from the one at since; `prior` carries what stood). Two event kinds are defined today; further kinds are added additively. Items carry the same status vocabulary and edition dates as /parcel.
  • 429 — See Legible429.

Billable unit: TWO legs, both billed: one unit for the PAGE, plus one unit per ITEM the page carries — each item priced exactly as the equivalent /parcel read of that (parcel, edition), so a list surface can never undercut the per-parcel price. Repeat reads of a unit already consumed this period remain free, so re-walking an unchanged range costs only its page units. Worked: a page of 250 items you have not seen consumes 251 units; the same page re-read in the same period consumes 1. A first full walk of a large range is therefore priced like reading those parcels individually — budget it that way, not per page.

GET /api/v1/corrections

The public corrections register (no key required) · no key required

ParameterRequiredMeaning
subjectnoWith cited_as_of: check a citation (e.g. subject=parcel).
cited_as_ofnoThe as_of your citation carried.
  • 200 — Bare: the full append-only register, newest first — what the record said, what it now says, why, and the affected scope. With subject+cited_as_of: `affected: true|false` plus the matching corrections; an empty set with ok:true IS the statement that your citation stands. Public and cacheable (1h). A correction is never edited or removed; a wrong correction receives its own entry.
  • 400 — subject and cited_as_of must be passed together and well-formed.

Billable unit: unmetered — an erratum behind a paywall would invert what an erratum is for

POST /api/v1/key

Issue or rotate your API key (account session, not key auth) · no key required

Body: { action: 'issue' | 'rotate' }. Authenticated by the signed-in account session (this is the account surface acting, not a key-bearing caller). The plaintext key appears once in the response and is never retrievable again.

  • 200 — The new key (once), or a legible not_entitled.

Billable unit: unmetered

GET /api/v1/openapi.json

This document · no key required

  • 200 — The machine-readable Relay contract. Public.

Billable unit: unmetered

Response Shapes & Vocabularies

status — the public status vocabulary

The public status vocabulary. `graded`: a band is stated on the public scale. `recorded`: counted facts stand (serving system, settling authority) but no band is claimed. `not_yet_graded`: no conclusion of record exists for that parcel and date — the API says so rather than guessing.

usage — the metering envelope on every served response

Included in every served response. Mirrors the RateLimit-* headers: what your key has used, what remains, and the usage state (ok → warn → warn-final → grace) so the monthly boundary is never a surprise. No overage is ever billed — past the allowance plus its grace tail, requests wait for the period reset or continue via Institutional.

FieldTypeMeaning
billedbooleanWhether THIS request consumed a new billable unit. Repeat reads of a unit already read this period are free and billed:false.
billable_unitsintegerDistinct units consumed this period.
allowanceintegerIncluded distinct units per period. The posted Subscriber tier includes 25,000 per 30-day period, with a 250-unit courtesy tail past it.
grace_unitsintegerCourtesy tail past the allowance before the hard stop.
usage_stateok · warn · warn-final · grace
period_endstringWhen the period (and the counter) resets.

429 — the only legible denial

The ONLY legible denial, spoken solely to a proven-entitled key. `error` is one of `rate_limited` (burst ceiling; retry after the interval), `allowance_reached` (monthly hard stop; resets at period end, continue via Institutional), or `systematic_access_review` (the access pattern reads as roll coverage; ordinary reads continue to serve, bulk continues by arrangement).

FieldTypeMeaning
okfalse
errorrate_limited · allowance_reached · systematic_access_review
messagestring
retry_afterintegerSeconds; also carried as the Retry-After header.
reset_atstring
raise_planstringWhere to manage or raise the plan.

Worked Examples

Look up one parcel as of a date
curl -H "Authorization: Bearer oqc_live_YOUR_KEY" \
  "https://oquendoandco.com/api/v1/parcel?id=1000047&county=48029&as_of=2026-08-01"

{ "ok": true, "parcel": "1000047", "county_fips": "48029", "as_of": "2026-07-14",
  "status": "recorded",
  "served_by": { "wastewater": { "system": "20285", "label": "Collection system",
                                "settled_by": "…", "contended": null } },
  "observed_at": "…", "usage": { "billed": true, "billable_units": 12, … } }

Note as_of in the answer: the request asked about 2026-08-01 and the newest edition at or before it is dated 2026-07-14 — the answer speaks as of its edition.

Track what moved, to exhaustion
curl -H "Authorization: Bearer oqc_live_YOUR_KEY" \
  "https://oquendoandco.com/api/v1/changes?since=2026-07-01"

{ "ok": true, "since": "2026-07-01", "until": "2026-08-06",
  "items": [ { "parcel": "1000047", "county_fips": "48029", "category": "wastewater",
              "event": "appeared", "as_of": "2026-07-14", "status": "recorded", … }, … ],
  "n_items": 250, "next_cursor": "2026-07-14|48029|1002451|wastewater", … }

# repeat with &cursor=… until next_cursor is absent — that page IS the end
Check whether a citation was corrected (no key needed)
curl "https://oquendoandco.com/api/v1/corrections?subject=parcel&cited_as_of=2026-07-27"

{ "ok": true, "affected": true,
  "corrections": [ { "id": "2026-08-06-edition-vintage", … } ] }

Version & Deprecation Policy

What is breaking

Removing a field, renaming a field, changing a field's meaning or type, tightening what a parameter accepts, or changing the edition-resolution rule. Breaking changes only ever ship as a NEW version path (/api/v2); an existing version's contract does not move.

What is additive

New endpoints, new response fields, new optional parameters, and new values in fields this document marks as open vocabularies (event kinds, usage states, error codes). Your client should ignore fields it does not recognize.

Notice and parallel service

A version being retired keeps serving for at least 90 days after its replacement is announced, and the announcement lands on the corrections & notices register (/api/v1/corrections) — the same channel that records corrections to the record itself, so one subscription watches both.

How long a version lives

Never less than the notice above. No same-day removals; no silent meaning changes, ever.

What this policy is not

It is not a service-level agreement and creates no warranty; availability and support commitments live in the Terms. Conclusions served by the API are calibrated opinions as described there, speaking as of their edition date.

×

Terms of Use

1 · Acceptance & Scope

These Terms of Use (the “Terms”) govern your access to and use of this public website and all content, assessments, benchmarks, indices, readings, and marks we publish on it (collectively, the “Site”), provided by Oquendo & Company (“we” or “us”). By accessing or using the Site, you agree to these Terms; if you do not agree, do not use the Site. You represent that you are at least 18 years old.

These Terms govern use of the public Site only. Any paid subscription or commissioned Reading is offered solely under a separate written agreement furnished at the time of commission. Nothing on the Site is an offer to contract and nothing here entitles you to, or forms a contract for, any subscription or Reading.

2 · Nature of the Site — Statements of Opinion

Oquendo & Company publishes independent assessments of infrastructure deliverability based on public data. All outputs are statements of opinion provided for informational purposes only as of their stated date. They are not statements of fact, and they are not financial, investment, engineering, insurance, legal, or other professional advice, nor a recommendation to take or refrain from any action. Our opinions are protected expression. They are not a guarantee, warranty, or assurance of any outcome, condition, or future performance.

Our benchmarks are produced with the material assistance of an automated system and are reviewed and issued under the firm’s professional judgment; that system does not act autonomously as to any published opinion.

3 · No Reliance

Assessments reflect information available as of their stated date and may change without notice. They are published for general information only. No person may rely on any output as the basis for any decision, and Oquendo & Company owes no duty of care to any reader or other person. This provision governs the public Site and its published outputs; a commissioned Reading is a separate instrument that grants defined reliance to the party who commissions it, and to any party named in a countersigned Reliance Letter, on the terms of its Engagement Letter.

4 · Corrections

If we identify an error in the public record we cited, we may publish a corrected edition speaking as of a new stated date. A correction is a re-publication, not a revision of what came before: each edition speaks only as of its own date. Nothing in this creates a duty to monitor, update, or supplement any opinion we have already published.

5 · License & Intellectual Property

The Site, including all text, benchmarks, methodologies, compilations, and marks, is owned by Oquendo & Company and protected by intellectual-property and trade-secret law. Subject to these Terms, we grant you a limited, revocable, non-exclusive, non-transferable license to view the Site for your internal, non-commercial reference. You may not copy, redistribute, resell, publicly display, frame, scrape, data-mine, reverse-engineer, or create derivative works from the Site, or use it to train any model, except as expressly authorized in writing.

6 · Acceptable Use

You agree not to (a) access the Site by automated means except a conforming search-engine crawler; (b) interfere with or probe the Site’s security or infrastructure; (c) misrepresent any output or strip it of its date, context, or disclaimers; or (d) use the Site in violation of any law.

7 · Disclaimer of Warranties

8 · Limitation of Liability

9 · Governing Law & Venue

These Terms are governed by the laws of the State of Texas, without regard to its conflict-of-laws rules. Subject to Section 10, the exclusive venue for any dispute is the state or federal courts located in Texas, and you consent to their personal jurisdiction.

10 · Dispute Resolution — Arbitration & Class Waiver

11 · Changes

We may modify these Terms by posting a revised version. Your continued use of the Site after a change constitutes acceptance.

12 · General

If any provision is held unenforceable, the remainder stays in effect and the unenforceable provision is reformed to the minimum extent necessary. These Terms are the entire agreement regarding the Site and supersede prior understandings. No waiver is implied by any failure to enforce. You may not assign these Terms; we may. The disclaimers and limitations survive termination.

13 · Contact

Oquendo & Company — contact@oquendoandco.com.

© 2026 Oquendo and Company. All rights reserved.

×

Privacy Notice

1 · Scope

This notice describes how Oquendo & Company handles personal data of visitors to this website. Our assessments are built from public infrastructure data about places, not people; we collect little personal data and do not build consumer profiles.

2 · Information We Collect

We collect only (a) information you voluntarily provide, such as an email address when you contact us or request a service; and (b) limited technical data your browser sends (such as IP address and request metadata) used for security and to operate the site. We do not sell this data and do not use it for targeted advertising.

3 · How We Use Information

We use personal data to respond to your inquiries, provide and secure the Site, comply with law, and maintain records. We retain it only as long as necessary for these purposes.

4 · Sharing

We share personal data only with service providers acting on our behalf under contract (for example, email and website-hosting providers), or where required by law. We do not sell personal data, share it for cross-context behavioral advertising, or use it for profiling that produces legal or similarly significant effects.

5 · Sensitive Data

We do not request or knowingly process sensitive personal data, and we do not knowingly collect personal data from anyone under 18.

6 · Your Texas Privacy Rights

If you are a Texas resident, you have the right to confirm whether we process your personal data; to access, correct, or delete it; to obtain a portable copy; and to opt out of any sale, targeted advertising, or qualifying profiling. To exercise these rights, email contact@oquendoandco.com. We will verify and respond within 45 days. If we decline, you may appeal by replying to our decision; we will respond to the appeal in writing within 60 days. If the appeal is denied, you may submit a complaint to the Texas Attorney General.

7 · Data Security & Cookies

We apply reasonable administrative and technical safeguards appropriate to the limited data we hold. The site uses only cookies strictly necessary to operate and secure it; it does not use advertising or cross-site tracking cookies.

8 · Changes & Contact

We may update this notice by posting a revised version. Questions or requests: Oquendo & Company — contact@oquendoandco.com.

© 2026 Oquendo and Company. All rights reserved.

×

Standing & Reliance

1 · What We Publish

Oquendo & Company is an independent publisher. What we publish is an opinion of record, carrying an as-of date — not a statement of fact, not advice, and not a guarantee of any outcome.

2 · The Register — No Reliance

The published Register — free, Daily, and Relay — is published for general reference. It is not addressed to any person and is not issued for reliance; each edition speaks only as of its date. You may cite it; you act on it at your own discretion.

3 · A Reading — Named Reliance

A Reading is different. It is a written opinion commissioned for a single decision, addressed to the party who commissions it and issued for that party’s reliance on the terms of its Engagement Letter. Where a lender, joint-venture partner, or other named party also needs to rely, we extend that reliance only by a separate, countersigned Reliance Letter naming that party.

4 · Corrections

Where the record is corrected, the correction is published in our corrections register, which is permanent — entries are never removed or rewritten. An edition you have cited may later be the subject of an entry there; the register states what the record said, what it now says, and the range of citation dates affected, so a citation can be checked at any time against the record as it now stands.

5 · Methodology & Agreements

Our methodology is sealed. What we disclose is the public record we consulted, dated, and the opinion we formed from it. Everything we publish or deliver is governed by the applicable written agreement.

© 2026 Oquendo and Company. All rights reserved.