---
title: "Get itinerary by hash."
method: GET
path: "/itinerary/v2/proformas/{hash}"
tags: ["Proformas"]
---

# Get itinerary by hash.

`GET /itinerary/v2/proformas/{hash}`

This endpoint retrieves detailed itinerary information for a specific route, identified by its unique hash.  
Itinerary hashes are generated and returned in the `/co2/v2/plan` response, allowing users to request detailed routing information for a given carrier and port pair.  

The response provides:
- Itinerary-level details (duration, distance, CO₂e emissions).
- Leg-specific details (departure and arrival days, port of calls, service ID).
- Route geometry (LineString in GeoJSON format).

## Response
The response is a GeoJSON FeatureCollection, where:
- Each `Feature` represents a leg of the itinerary.
- `Properties` contain key details such as transit time, CO₂ emissions, and ports of call.
- `Geometry` provides the route geometry as a `LineString` in GeoJSON format.

| Field                   | Description |
|-------------------------|-------------|
| `duration.days`         | Estimated transit time in days, including transhipments and waiting time in ports. |
| `duration.ms`           | Estimated transit time in milliseconds. |
| `departure.dayNumber`   | Represents the starting reference day of the journey. |
| `arrival.dayNumber`     | Represents the arrival day relative to the departure day. |
| `from.locode`          | Departure port UN/LOCODE. |
| `from.name`            | Departure port name. |
| `to.locode`            | Arrival port UN/LOCODE. |
| `to.name`              | Arrival port name. |
| `distance`             | Total itinerary distance (in meters). |
| `mode`                 | Mode of transport (`"SEA"`). |
| `serviceId`            | Service ID associated with the leg. Retrievable with `/search/v2/service/{id}`. |
| `calls`                | List of intermediate port calls. |
| `co2e`                 | Estimated CO₂ emissions for the itinerary (in grams), corresponding to the load characteristics passed as input when searching for the itinerary |
| `geometry`             | GeoJSON `LineString` representing the leg’s route geometry. |

### Notes & considerations
- GeoJSON compliance: by default, the response includes a properties field at the FeatureCollection level. If full GeoJSON compliance is required, you should omit `properties` field.
- Antimeridian crossing: if a LineString crosses the antimeridian (longitude ±180°), the response may include longitude values greater than 180° or less than -180°. This behavior maintains continuity in a single LineString. 
- Hashes are not intended to be persisted or used as permanent references.

## Support endpoints and resources
- **Get CO₂-based itineraries**: use our [`/co2/v2/plan`](/reference/getco2plan) endpoint to retrieve itinerary hashes and estimated emissions for a given carrier and port pair. 
- **Learn about our methodology**: visit the [Methodology for sea emissions calculation](/docs/co2-emissions-methodology) page.   
- **Retrieve maritime carriers**: use our [Carriers endpoint](/reference/getcarrierbynameorscac) to search for carrier information based on SCAC codes or names.
- **Find locations**: access accurate data via our [Geocoding endpoint](/reference/getgeocodingall).
- **Find services ids**: using our [Search endpoint](/reference/getservicebyid).

## Path parameters

- `hash` string, required

## Response `200`

OK

## Other responses

- `400` — Bad request

---

[API](https://skmtc.dev/searoutes/apis/geocoding.md) · [All operations](https://skmtc.dev/searoutes/apis/geocoding/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/searoutes/geocoding/revisions/59f769fc4f39/schema)
