Developer preview · observation API

Flight fares, with context.

Search recorded one-way fares by route and date. See when each price was observed and which sources were covered.

Sample data only. No live airline source is connected yet.

EXAMPLE RESULT● SAMPLE
BERBCN
€129.00Observed total · 1 adult
Source reported
Observed at 7 Oct · 09:15 UTCCoverage 1 of 1 sourceBooking Unavailable in sample
A price is useful when you can see where it came from.
Read the result

An empty list has more than one meaning.

Switch between example outcomes to see how freshness and source coverage change the answer. The result state matters as much as the fare.

Understand result states
Illustrative dataOne-way · 1 adult · Economy
Coverage complete1 of 1 source reported
SAMPLE SEARCHBER BCN5 Nov 2026 · exact date
€129.00Observed total · 1 adult
Example Air · EX 12307:30–09:45 UTC · baggage unknown
Source outcomesample_source · ok
Observed at7 Oct 2026 · 09:15 UTC
Booking linkUnavailable in sample

The source reported a fare for this exact route and date. All states above are fixtures; no airline is queried.

Built for interpretation

The details your application needs.

01

Price with a timestamp

Every offer says when it was observed. A recorded total is never presented as a current checkout quote.

02

Visible source coverage

See which approved sources returned data, which are stale, and when a search is incomplete.

03

Predictable JSON

Exact route and date inputs, structured offer fields, and a machine-readable result state.

For developers

One request. An honest response.

This fixture shows the shape of a successful observation. Use your issued search key to call a configured deployment.

Complete request
curl -X POST "https://itindb.dev/api/v1/search" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_SEARCH_KEY" \
  -d '{"origin":"BER","destination":"BCN","departure_date":"2026-11-05"}'
Abbreviated sample response
{
  "data_mode": "observations",
  "live": false,
  "complete": true,
  "coverage": [{
    "source_id": "sample_source",
    "status": "ok"
  }],
  "offers": [{
    "source_id": "sample_source",
    "observed_at": "2026-10-07T09:15:00Z",
    "price": {
      "total_minor": 12900,
      "currency": "EUR",
      "status": "observed"
    },
    "booking_url": null
  }]
}

The response above is illustrative and omits fields. The current deployment may return no offers when no approved source is configured.

Authentication, full response, and error handling
What to build

Useful even before checkout.

Fare monitoring

Record how observed prices change over time, with freshness attached to every point.

Internal travel analysis

Compare route and date observations while keeping missing coverage visible.

Agent workflows

Give an agent structured data it can qualify before presenting a fare to a person.

Start with the contract

Build around what the data actually says.

Read the quickstart, explore the result states, and use the OpenAPI schema for exact fields.

Explore the docs