Skip to main content
POST
/
v1
/
price_monitoring
Monitor price for a specific origin, destination, and dates pair
curl --request POST \
  --url https://api.example.com/v1/price_monitoring \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "origin": "PAR",
  "destination": "NYC",
  "departure_date": "<string>",
  "return_date": "<string>",
  "direct_only": true,
  "max_price": 1,
  "include_carriers": [
    "<string>"
  ],
  "exclude_carriers": [
    "<string>"
  ],
  "adults": 1,
  "children": 1,
  "infants": 1,
  "currency": "<string>",
  "locale": "<string>",
  "intent": {
    "user_intent": "find a cheap flight to Tokyo"
  }
}
'
import requests

url = "https://api.example.com/v1/price_monitoring"

payload = {
    "origin": "PAR",
    "destination": "NYC",
    "departure_date": "<string>",
    "return_date": "<string>",
    "direct_only": True,
    "max_price": 1,
    "include_carriers": ["<string>"],
    "exclude_carriers": ["<string>"],
    "adults": 1,
    "children": 1,
    "infants": 1,
    "currency": "<string>",
    "locale": "<string>",
    "intent": { "user_intent": "find a cheap flight to Tokyo" }
}
headers = {
    "X-API-Key": "<api-key>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    origin: 'PAR',
    destination: 'NYC',
    departure_date: '<string>',
    return_date: '<string>',
    direct_only: true,
    max_price: 1,
    include_carriers: ['<string>'],
    exclude_carriers: ['<string>'],
    adults: 1,
    children: 1,
    infants: 1,
    currency: '<string>',
    locale: '<string>',
    intent: {user_intent: 'find a cheap flight to Tokyo'}
  })
};

fetch('https://api.example.com/v1/price_monitoring', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.example.com/v1/price_monitoring",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'origin' => 'PAR',
    'destination' => 'NYC',
    'departure_date' => '<string>',
    'return_date' => '<string>',
    'direct_only' => true,
    'max_price' => 1,
    'include_carriers' => [
        '<string>'
    ],
    'exclude_carriers' => [
        '<string>'
    ],
    'adults' => 1,
    'children' => 1,
    'infants' => 1,
    'currency' => '<string>',
    'locale' => '<string>',
    'intent' => [
        'user_intent' => 'find a cheap flight to Tokyo'
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "X-API-Key: <api-key>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.example.com/v1/price_monitoring"

	payload := strings.NewReader("{\n  \"origin\": \"PAR\",\n  \"destination\": \"NYC\",\n  \"departure_date\": \"<string>\",\n  \"return_date\": \"<string>\",\n  \"direct_only\": true,\n  \"max_price\": 1,\n  \"include_carriers\": [\n    \"<string>\"\n  ],\n  \"exclude_carriers\": [\n    \"<string>\"\n  ],\n  \"adults\": 1,\n  \"children\": 1,\n  \"infants\": 1,\n  \"currency\": \"<string>\",\n  \"locale\": \"<string>\",\n  \"intent\": {\n    \"user_intent\": \"find a cheap flight to Tokyo\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-API-Key", "<api-key>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.example.com/v1/price_monitoring")
  .header("X-API-Key", "<api-key>")
  .header("Content-Type", "application/json")
  .body("{\n  \"origin\": \"PAR\",\n  \"destination\": \"NYC\",\n  \"departure_date\": \"<string>\",\n  \"return_date\": \"<string>\",\n  \"direct_only\": true,\n  \"max_price\": 1,\n  \"include_carriers\": [\n    \"<string>\"\n  ],\n  \"exclude_carriers\": [\n    \"<string>\"\n  ],\n  \"adults\": 1,\n  \"children\": 1,\n  \"infants\": 1,\n  \"currency\": \"<string>\",\n  \"locale\": \"<string>\",\n  \"intent\": {\n    \"user_intent\": \"find a cheap flight to Tokyo\"\n  }\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v1/price_monitoring")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"origin\": \"PAR\",\n  \"destination\": \"NYC\",\n  \"departure_date\": \"<string>\",\n  \"return_date\": \"<string>\",\n  \"direct_only\": true,\n  \"max_price\": 1,\n  \"include_carriers\": [\n    \"<string>\"\n  ],\n  \"exclude_carriers\": [\n    \"<string>\"\n  ],\n  \"adults\": 1,\n  \"children\": 1,\n  \"infants\": 1,\n  \"currency\": \"<string>\",\n  \"locale\": \"<string>\",\n  \"intent\": {\n    \"user_intent\": \"find a cheap flight to Tokyo\"\n  }\n}"

response = http.request(request)
puts response.read_body
{
  "status": "ok",
  "monitored_at": "2026-06-01T12:34:56Z",
  "flight": {
    "offer_token": "oft_7c2e9a1b4d",
    "total_price": {
      "amount": 289.99,
      "value": 123,
      "currency": "USD",
      "decimal_places": 2
    },
    "outbound_carrier": {
      "code": "DL",
      "name": "Delta Air Lines",
      "flight_number": "DL263"
    },
    "inbound_carrier": {
      "code": "DL",
      "name": "Delta Air Lines",
      "flight_number": "DL263"
    },
    "outbound_stops": 0,
    "inbound_stops": 1,
    "outbound_duration_minutes": 470,
    "inbound_duration_minutes": 520,
    "outbound_departure_local": "2026-07-15T10:15:00",
    "outbound_arrival_local": "2026-07-15T13:05:00",
    "inbound_departure_local": "2026-07-22T17:40:00",
    "inbound_arrival_local": "2026-07-23T07:25:00",
    "cabin_class": "economy",
    "fare_brand": "Main"
  },
  "request_echo": null
}
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Malformed JSON in request body.",
    "doc_url": "https://docs.gojinko.com/concepts/errors"
  }
}
{
  "error": {
    "code": "AUTH_REQUIRED",
    "message": "Invalid or expired API key.",
    "doc_url": "https://docs.gojinko.com/api-reference/authentication"
  }
}
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "origins: origins is required; trip_type: trip_type is required",
    "doc_url": "https://docs.gojinko.com/concepts/errors"
  }
}
{
  "error": {
    "code": "RATE_LIMITED",
    "message": "Rate limit or quota exceeded.",
    "doc_url": "https://docs.gojinko.com/concepts/errors"
  }
}
{
  "error": {
    "code": "UPSTREAM_ERROR",
    "message": "Upstream travel provider returned an error. Please retry.",
    "doc_url": "https://docs.gojinko.com/concepts/errors"
  }
}
Watch a specific route and date pair over time so an agent can act when the fare drops. Use it for prompts like “alert me when Paris to New York for June 17 to 26 goes under €400”. Each response includes the current cheapest cached fare and an offer token you can pass to flight_search when the user decides to book. Cache-only; never triggers a live call.

Authorizations

X-API-Key
string
header
required

Body

application/json
origin
string
required
Example:

"PAR"

destination
string
required
Example:

"NYC"

departure_date
string
required
Pattern: ^\d{4}-\d{2}-\d{2}$
return_date
string
Pattern: ^\d{4}-\d{2}-\d{2}$
origin_type
enum<string>
Available options:
city,
airport
destination_type
enum<string>
Available options:
city,
airport
cabin_class
enum<string>
Available options:
economy,
premium_economy,
business,
first
direct_only
boolean
max_price
number
Required range: x > 0
include_carriers
string[]
exclude_carriers
string[]
adults
integer
default:1
Required range: x >= 1
children
integer
Required range: x >= 0
infants
integer
Required range: x >= 0
currency
string
locale
string
intent
object

Response

Cheapest cached itinerary, or stale on a cache miss

status
string
required
Example:

"ok"

monitored_at
string
Example:

"2026-06-01T12:34:56Z"

flight
object
request_echo
unknown