# Partner API v1.1 — portal v147

Released 11 October 2026. Existing `/api/v1/` URLs, bearer keys, original eight
collection names, IDs and legacy fields are retained. This is an additive release.

## Available now

- Per-collection OpenAPI schemas, record subtype lists and controlled source-trust,
  review and verification codes. Legacy labels are preserved for existing clients.
- Country filters accept portal IDs and case-insensitive ISO3 codes, e.g. `fiji`,
  `FJI`, or `fji`. Returned IDs remain stable portal identifiers.
- Conditional 304 responses do not consume the daily data allowance, even when it
  is exhausted. All authorized attempts remain subject to the minute rate limit.
- `/api/v1/bulk?format=json` and `?format=csv`: complete current public projection
  in one request, with all core and optional extension collections. Supply
  `snapshot` from the manifest for consistency. CSV preserves nested fields as
  JSON cells and includes source-specific rights qualifications.
- Published actions expose reported trigger, decision authority, coverage, approval
  and funding fields. Unknown status remains unknown; publication is not proof of
  official operational approval or funding availability.
- Evidence exposes explicit passage availability, source issue and capture dates,
  locators, verified text where recorded, and marked regions. Portal paraphrases
  are not passed off as original quotations. Initial coverage: 840 passage-status
  records, 107 verified textual excerpts; other entries remain visibly incomplete.
- Legacy assessment dates are explicitly labelled; ISO dates, latest indexed
  source publication dates and current human forecast-review timestamps are
  separate. Missing review timestamps are null, not invented fresh assessments.
- `/api/v1/classifications`: current seasonal rainfall classifications.
- `/api/v1/classification-history?country=FJI&as_of=2026-09-29`: latest available
  archived classification state through the end of that UTC day. `/releases`
  lists 25 distinct archived bundled dataset states with timestamps, checksums
  and original downloads. Use `release=ID` for an explicit archive. The embedded
  generation timestamp is not a verified deployment time. Missing history returns
  404; an ambiguous latest recorded state returns 409.
- `/api/v1/impacts`: six initial source-mapped records in Fiji, PNG, Vanuatu and
  Palau, separating reported observations from anticipated pathways. Sector,
  location, time basis, supporting evidence and limitations are explicit.
- `/api/v1/locations`: four verified Fiji COD admin-1 division name/P-code mappings,
  with gazetteer checksum, source and licence. Existing portal map polygons retain
  their own geoBoundaries provenance.
- `/api/v1/declarations`: structured declaration schema and an explicit coverage
  notice; no current official declarations are asserted without verified evidence.

## Boundaries and remaining work

- Structured impacts and COD mappings are initial coverage, not Pacific-wide
  completeness. No national result is extrapolated to provinces, villages or islands.
- The structured declarations registry now includes one current PNG National
  Humanitarian Crisis report from a dated SPREP account of named government
  remarks. Its legal status is labelled `not_confirmed`: the declaration instrument, exact
  date, issuing authority, duration and legal powers were not linked, so this is
  not instrument-level verification. Coverage remains incomplete. Watches, USDM
  categories and survey self-reports are not substituted for formal declarations.
- Exact passage extraction still requires source review for many records.
- Archives cover existing bundled datasets; they are not a complete daily history
  of the website or dynamic contributions. Historical results never include today's
  dynamic self-reports. Save complete partner exports for your operational history.
- No blanket reuse licence is asserted. Source-specific rights and attribution apply;
  a licence for portal-authored material still requires owner confirmation.
- This software release does not itself issue partner keys or approve user accounts.

## Compatibility and integration

Older clients may continue using `manifest.collections`, which retains exactly the
original eight names. New inventories are under `manifest.extensions`. The existing
Python eight-collection sync example remains valid. Read the OpenAPI schema and
ignore unknown optional fields. Use revisions/manifests to reconcile corrections
and withdrawals; do not treat an error or empty filtered page as a withdrawal.

API and portal versions are separate. Normal website design changes do not change
the API contract. A future incompatible rename/removal or semantic change requires
a new major API version rather than silently changing `/api/v1/`.
