Sync the itinerary with the design
POST/v1/trips/{tripId}/itinerary/sync
Does what opening the Itinerario tab does in the app: rebuilds the days from the trip's design and latest quote (creating them the first time), then rewrites stop times planned by an older planner. Call it after changing a trip's design. skipped is true when the trip has no route. It records no change and has no undo; it is idempotent, and a second run changes nothing.
Permissions: trips:write · Kind: write · Cost: 1 unit · MCP tool sync_itinerary
Cannot be undone.
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
tripId |
uuid | yes |
Body
None.
Response 200
| Field | Type | Required | Description |
|---|---|---|---|
object |
"itinerary_sync" | yes | |
skipped |
boolean | yes | |
added |
integer | yes | |
updated |
integer | yes | |
removed |
integer | yes | |
expelled |
integer | yes | |
itinerary |
object | yes | |
itinerary.object |
"itinerary" | yes | |
itinerary.tripId |
uuid | yes | |
itinerary.title |
string | yes | |
itinerary.publication |
"draft" | "published" | yes | |
itinerary.hasDesignedRoute |
boolean | yes | |
itinerary.blocks |
object[] | yes | |
itinerary.blocks[].object |
"block" | yes | |
itinerary.blocks[].id |
uuid | yes | |
itinerary.blocks[].type |
"titulo" | "texto" | "imagen" | "agenda" | "dia" | "caja" | "desplegable" | "seccion" | "capitulo" | "derivado" | "actividad" | "alojamiento" | "vuelo" | "comida" | "transporte" | "tren" | "crucero" | "informacion" | "galeria" | "video" | "mapa" | "html" | "itinerario" | yes | |
itinerary.blocks[].parentId |
uuid | null | yes | |
itinerary.blocks[].rank |
string | yes | |
itinerary.blocks[].data |
object | yes | |
itinerary.blocks[].layout |
object | yes | |
itinerary.blocks[].version |
integer | yes | |
itinerary.blocks[].source |
object | null | yes |
Errors
Errors are problem details. Besides the refusals described above, any call like this one can return:
invalid_request— Invalid requestunauthorized— Missing or invalid API keyinsufficient_scope— Missing permissionrate_limited— Rate limit reachednot_found— Not foundidempotency_key_reused— Idempotency-Key reusedrequest_in_progress— Request in progress