Pacific El Niño Tracker

Partner integration · v1.1 · compatible with v1 clients

Use portal data in your own platform

Query public evidence, country analyses and agency updates without re-entering information. Every result keeps its sources, dates and qualifications. Read-only access supports queries and filtering; it cannot change portal records.

Connect in three steps

  1. Ask the portal administrator for an organization key. No portal admin account is needed for your integration.
  2. Store the key on your backend and send it in the Authorization: Bearer header. Do not put it in browser code, URLs or public repositories.
  3. Choose a collection and filters below. Keep source citations, dates, review labels and qualifications visible when displaying the results.

Default limits are 60 authorized requests per minute and 5,000 per UTC day, configurable by the super admin. Keys expire and can be revoked. The API is designed for server-to-server use; it does not enable cross-origin browser calls. Automated natural-language Ask queries are outside v1.

Expert review and repository scope

Many portal interpretations still require expert review. Approved reviewers can inspect assigned countries and sectors, flag insufficient evidence and propose corrections; administrators control publication. An approved account does not mean every analysis is reviewed. Source grades describe provenance and authority, not a guarantee of correctness. The repository does not independently validate every underlying source dataset, but remains responsible for accurate quotation, clear qualifications and corrections to its own interpretations.

Compatibility across portal releases

A website release number is separate from the API version. Existing /api/v1/ paths, keys, record IDs and fields are preserved; new fields are optional. The release build compares the published contract against the v1.1 baseline, and integration tests validate new responses against the previous schemas and eight-collection sync flow. Any future incompatible contract needs a separate major API version and a documented transition. Clients should ignore unknown optional fields and use revisions and snapshots to detect ordinary content changes.

v151 changes and remaining coverage · Source-passage coverage

Current data without repeated reconfiguration

API v1.1 reads the current public portal dataset and approved public records. The API version describes the interface, not the age of its data. The optional all-collection Python example discovers every collection returned by the bulk export, preserves new optional fields, checks the final manifest, and replaces the local mirror only after a complete consistent transfer. It also removes records absent from the new complete snapshot. Existing eight-collection clients remain supported. A partner must still decide once how new types of information should appear in its own dashboard; data synchronization cannot redesign that dashboard.

Build a query

Choose a dataset and filters. Run the example on your server with your key stored in an environment variable.

curl --fail-with-body \
  -H "Authorization: Bearer $ELNINO_API_KEY" \
  'https://elnino.drr.sh/api/v1/analyses?country=fiji&limit=100'

Available collections

GET /api/v1/…Contents
countriesCountry IDs, ISO codes and profile links.
analysesCountry interpretations and recommended actions, with citations and current human-review status.
evidencePublished source records and approved contributions, including reliability and analytical confidence.
actionsPublished agency plans, progress and support needs.
institutionsPublished coordination/declaration records and privacy-reviewed survey self-reports.
resourcesPublicly documented funding and technical support mechanisms; not confirmed country allocations.
mediaPhoto and video references, attribution, rights conditions and original source links. No media delivery.
changesEditorial publication history. Use the manifest for a complete synchronization.
manifestOriginal eight collection inventories, plus a separate optional extensions inventory.

Filters and response fields

country takes a country ID or ISO3 (for example fiji or FJI), sector a sector ID, organization a case-insensitive name fragment, and q a text fragment. id selects one record. since accepts a date or UTC timestamp and includes that time. human_reviewed=true selects only interpretations with a current published human review.

Results include records, total, next, snapshot and metadata. Use limit (1–200) and follow next for further pages. Each record has a stable ID, content revision, update timestamp, source trust, analytical confidence and review status. Sector matches use contributor selections where available and explicitly labelled portal keyword matching elsewhere. A country filter matches recorded scope; it does not establish local eligibility for a regional resource.

Optional structured data and history

The original eight collections are unchanged. These extensions have separate inventories under manifest.extensions; older sync clients can continue using manifest.collections.

  • impacts: six initial source-mapped records in Fiji, PNG, Vanuatu and Palau. Reported observations and anticipated pathways are distinguished; missing dates and unverified geographic codes are null or empty, never inferred.
  • declarations: one current PNG National Humanitarian Crisis report is structured from a dated SPREP account of named government remarks. The declaration instrument, exact date, issuing authority, duration and legal powers were not linked, so its legal status is explicitly not_confirmed at instrument level. Coverage is incomplete; an absent record does not mean no declaration exists. Survey self-reports remain in institutions; watches and drought-monitor categories are not emergency declarations.
  • locations: 79 verified admin-1 name-to-COD P-code mappings across Fiji, FSM, Kiribati, Marshall Islands, PNG, Solomon Islands, Tonga and Vanuatu, with a separate source, edition and licence for each country. The other 16 countries remain available at national level; their COD crosswalk has not been verified. Existing map polygons are not relabelled as COD. Village and island impacts have not been extrapolated across divisions.
  • classifications: current portal seasonal rainfall classifications, validity periods and evidence links; these are not observations or disaster-risk ratings.
  • classification-history and releases: available archived dataset states. Use ?country=FJI&as_of=2026-09-29 for classification history, or select a specific release ID. The date means the latest available embedded dataset timestamp through the end of that UTC day, not verified website publication time. Ambiguous archive times return 409; an earlier date without an archive returns 404. Browse the public archive index.

Coverage is incomplete. Archives do not constitute a complete daily record or a history of dynamic contributions. From v154, an immutable software release register records the bundled data checksum and changes; administrators also have a separate transactional publication-event log for subsequent contribution, action, analysis and stocktake decisions. Earlier gaps remain explicit. Historical results never mix in today’s agency submissions. Original archived files remain available through their download URLs and checksums. From v151, each prepared bundled dataset is archived automatically before build; changing it without a new data_version fails the build. This records prepared dataset states, not every publication time or dynamic contribution edit.

Software release history · Country-by-country COD coverage and required follow-up

One-request JSON or CSV export

GET /api/v1/bulk?format=json or ?format=csv returns all current core and extension records in one consistent response. Supply the manifest’s snapshot to guard against a concurrent update. JSON includes metadata and a complete record manifest. CSV retains nested data, source links and qualifications as JSON within cells. One response counts as one daily data request; 304 is exempt. Save completed exports if you need an operational history. No historical archive of dynamic records is claimed.

Public tracker JSON, assessments CSV and evidence CSV remain available. They are different projections from the partner bulk export.

Read dates and evidence correctly

assessment_date remains the legacy profile date for compatibility. It is not the last date of every observation or source. Countries now expose its ISO form, explicit date basis and the latest indexed source publication date. Analyses expose source publication dates and a separate forecast_reviewed_at, which is null unless a current human forecast review is published. Do not manufacture a new assessment date from a funding update or a dataset release.

Evidence includes claim_text_type, a controlled verification_code, and supporting_passage. Portal summaries are not quotations. Only explicitly verified source text is supplied as verbatim_quote; other records return a marked region or locator, with missing text left null. Wrong-issue captures are withheld. These anchors do not independently verify the complete claim. Where supplied, alternative_source is separately reviewed supporting material, not recovery of the original cited document. Preserve that distinction.

Current source coverage and original-edition follow-up

Action records additionally expose reported triggers, decision authority, coverage, approval and funding status. Missing approval and funding default to unknown. Publication review does not establish official approval, funding availability or successful implementation.

Controlled labels, without changing legacy fields

Use source_trust_code and review_status_code for machine filtering; the original text fields are retained. The value list and collection-specific OpenAPI schemas enumerate codes and types. Unrecognized legacy text maps to other rather than gaining an invented verification status.

  • A: primary official or authoritative technical source; A−: authoritative with a recorded limitation.
  • B: established institutional, academic or secondary material. B+ is retained as a legacy grade; its separate numerical meaning was not defined and should not be assumed.
  • C: use with caution. D: contribution without a verifiable public original; unrated and not_assessed do not mean verified.
  • source_checked means the legacy record describes a source check. It does not verify every downstream claim. Publication approval, a current human analysis review and analytical confidence are separate.

Reuse and attribution

Portal-authored content may be reused free of charge with attribution in reports, analysis and freely accessible dashboards. It must not be sold or placed behind paid access. Read the scope, attribution requirements and limitations. These are portal-specific terms, not CC BY or a blanket licence for the complete feed.

Third-party documents, quotations, data, images and contributed material retain their own rights. Some sources permit reuse under a stated licence; others require permission. An API key does not change those terms. Metadata retains blanket_license: NOASSERTION for the mixed feed and separately describes the permission for portal_authored content. Source errors and portal interpretations are subject to the limitations on the terms page.

Keep updates and withdrawals in sync

  1. Fetch the unfiltered /api/v1/manifest. Compare its IDs and revisions with your last successful manifest.
  2. Fetch changed collections or records, using that manifest’s snapshot value on every page. A 409 means the data changed during the download: restart.
  3. Recheck the manifest before committing. Once the full sync succeeds, remove locally stored IDs missing from the new manifest and replace changed records.

Do not treat a failed request, empty filtered result or incomplete page as a withdrawal. The supplied Python example saves a complete mirror only after a successful sync. The editorial change log and since filter are conveniences, not exhaustive deletion feeds. For bundled records, updated_at is the dataset release timestamp; dynamic records use their recorded publication/review time. Use content revisions to detect all changes.

Preserve meaning and privacy

  • Source trust and analytical confidence are separate. A high-trust source does not validate every interpretation.
  • Published survey responses and agency submissions remain self-reports. Publication approval does not make them official country positions or independently verified outcomes.
  • A human-review label applies to the current analysis and source version only. When either changes, the label no longer applies until a new review is published.
  • Pending submissions, contact emails, internal review notes, credentials and restricted files are excluded.
  • Media is provided as source references and metadata only. API access does not grant rights to reproduce third-party images or documents.
  • Credit the Pacific El Niño Risk and Action Tracker and the original source. Retain dates and limitations. Portal information does not replace national warnings.

Errors and availability

400: invalid query. 401: missing, expired or revoked key. 404: unknown collection. 405: write method rejected. 409: snapshot changed. 429: rate limit; follow Retry-After. 503: source unavailable; keep the last successful copy. No partial manifest is returned. A matching conditional request returns 304 and consumes no daily data allowance, including when that allowance is exhausted. Every authorized attempt still counts towards the per-minute request limit. Other authorized responses consume the daily allowance. Read X-Quota-Charged and the rate-limit headers.

API v1 keeps existing paths, key authentication, IDs and field meanings. v1.1 adds optional fields and opt-in collections. Clients should ignore unknown fields and use record revisions. Breaking changes require a new major API version; portal version numbers do not change the API version. Current dataset: 2026-10-29.2; climate evidence cutoff: 28 October 2026.