Retrieve a saved record by your ExternalId
Every Save… endpoint above stores your ExternalId directly on the saved record's ExternalIdentifier field. If you need to check what Ketendo actually has for a given ExternalId - to verify a sync, debug a mismatch, or fetch the current state - use the GET endpoints below instead of re-sending a Save call. These are plain lookups with no request body, and they live on a separate, shared controller (EntityLookupController) rather than under /v1/integration/.
Only
Authorization: Bearer <token> is needed for these calls - X-Source-System is not required here.These lookups match by
ExternalId alone - make sure the value you send is one only your integration would use (see the golden rule).| Entity | Endpoint | Status |
|---|---|---|
| Asset | GET /v1/EntityLookup/transportation/asset/external/{externalId} | |
| Part | GET /v1/EntityLookup/transportation/part/external/{externalId} | |
| Compartment | GET /v1/EntityLookup/transportation/compartment/external/{externalId} | |
| Passenger | GET /v1/EntityLookup/transportation/passenger/external/{externalId} | |
| RouteInfo | GET /v1/EntityLookup/transportation/routeInfo/external/{externalId} | |
| TripInfo | GET /v1/EntityLookup/transportation/tripInfo/external/{externalId} | |
| TripPassenger | GET /v1/EntityLookup/transportation/tripPassenger/external/{externalId} | |
| TripMember | GET /v1/EntityLookup/transportation/tripMember/external/{externalId} | |
| PartCategory | GET /v1/EntityLookup/transportation/partCategory/external/{externalId} | |
| PartType | GET /v1/EntityLookup/transportation/partType/external/{externalId} | |
| WindowType | GET /v1/EntityLookup/transportation/windowType/external/{externalId} | |
| ToiletType | GET /v1/EntityLookup/transportation/toiletType/external/{externalId} | |
| WheelType | GET /v1/EntityLookup/transportation/wheelType/external/{externalId} | |
| CompartmentType | GET /v1/EntityLookup/transportation/compartmentType/external/{externalId} | |
| Facility | GET /v1/EntityLookup/transportation/facility/external/{externalId} | |
| TripStatus | GET /v1/EntityLookup/transportation/tripStatus/external/{externalId} | |
| PromotionalStatus | GET /v1/EntityLookup/transportation/promotionalStatus/external/{externalId} | |
| PackageDepartureStatus | GET /v1/EntityLookup/transportation/packageDepartureStatus/external/{externalId} | |
| JourneyCode | GET /v1/EntityLookup/transportation/journeyCode/external/{externalId} | |
| PartOperationStatus | GET /v1/EntityLookup/transportation/partOperationStatus/external/{externalId} | |
| PartOperation | GET /v1/EntityLookup/transportation/partOperation/external/{externalId} | |
| Stoppage | GET /v1/EntityLookup/transportation/stoppage/external/{externalId} | |
| ItinerarySupplier | GET /v1/EntityLookup/transportation/itinerarySupplier/external/{externalId} | |
| RouteStoppageItineraryItem | GET /v1/EntityLookup/transportation/routeStoppageItineraryItem/external/{externalId} | |
| TripStoppageItineraryItem | GET /v1/EntityLookup/transportation/tripStoppageItineraryItem/external/{externalId} |
Example
GET /v1/EntityLookup/transportation/asset/external/TRAIN-001-2026
Authorization: Bearer <token>
Result
{
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"code": "N001-2026",
"name": "Blue Train N001",
"description": "Premier long-distance passenger train",
"usedForTravelPurposes": true
}
Wrapped in the standard response envelope like every other endpoint. If nothing matches that ExternalId, you'll get a 404 instead.