提取 PNR
Atlas API 提取 PNR 端点参考,用于获取 PNR 数据,支持订单恢复、服务和预订后处理。
常见问题
何时应使用 extractPnr.do?
PNR 提取与认领有什么区别?
提取 PNR 后应做什么?
Header parameters
AcceptstringRequiredExample:
application/jsonContent-TypestringRequiredExample:
application/jsonAccept-EncodingstringRequiredDefault:
gzipExample: gzipx-atlas-client-idstringRequiredDefault:
<YOUR_CLIENT_ID>Example: <YOUR_CLIENT_ID>x-atlas-client-secretstringRequiredDefault:
<YOUR_CLIENT_SECRET>Example: <YOUR_CLIENT_SECRET>Body
airlinePnrstringRequired
The airline PNR
carrierstringRequired
2-letter IATA code for the airline
timeoutinteger · nullableOptionalDefault:
The maximum response duration, in milliseconds. Note: This time is estimated due to the impact of network transmission.
15000Responses
200Success
application/json
statusinteger · enumRequiredPossible values:
msgstring · nullableOptional
airlinePnrstringRequiredExample:
Airline PNR(not Atlas)
BSG768pnrStatusstring · enumRequiredExample:
TicketedPossible values: pnrUsedstring · enum · nullableRequiredPossible values:
pnr usage status
currencystring · nullableOptionalExample:
The currency of fare
USDtotalPricestring · nullableOptional
post/extractPnr.do
POST /extractPnr.do HTTP/1.1
Accept: text
Accept-Encoding: gzip
x-atlas-client-id: <YOUR_CLIENT_ID>
x-atlas-client-secret: <YOUR_CLIENT_SECRET>
Content-Type: application/json
Content-Length: 505
{
"airlinePnr": "0419",
"carrier": "BC",
"passengers": [
{
"firstName": "***",
"lastName": "*****",
"passengerType": null
}
],
"contact": {
"email": "*********************"
},
"routing": {
"fromSegments": [
{
"dptAirport": "UKB",
"arrAirport": "HND",
"flightNumber": "BC108",
"depTime": "2025-07-27 13:00",
"arrTime": "2025-07-27 14:15"
}
],
"retSegments": null
},
"timeout": 15000,
"requestSource": null,
"channel": null,
"mainChannel": null,
"subChannelID": null,
"requestOwner": null,
"requestId": "50fbfd16ec2c4bfa8f604f8788565311",
"clientRequestId": null
}200Success
{
"status": 99005,
"msg": "text",
"airlinePnr": "BSG768",
"pnrStatus": "Ticketed",
"pnrUsed": "used",
"currency": "USD",
"totalPrice": "text",
"routing": {
"fromSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text"
}
],
"retSegments": [
{
"aircraftCode": "text",
"arrAirport": "text",
"arrTerminal": "text",
"arrTime": "text",
"carrier": "text",
"codeShare": true,
"depAirport": "text",
"depTerminal": "text",
"depTime": "text",
"duration": 1,
"flightNumber": "text",
"operatingCarrier": "text",
"operatingFlightnumber": "text"
}
]
},
"paxTicketInfos": [
{
"name": "text",
"ticketNos": [
"text"
],
"airlinePNRs": [
"text"
],
"ancillaries": [
{
"productCode": "text",
"segmentIndex": 1,
"currency": "text",
"ancillaryPrice": 1,
"auxBaggageElement": {
"isAllWeight": true,
"piece": 1,
"size": "text",
"weight": 1
},
"auxSeatElement": {
"row": "27",
"column": "A"
},
"vendorCurrency": "text",
"vendorPrice": 1,
"displayCurrency": "text",
"displayPrice": 1
}
],
"contactEmails": [
"test@test.com"
],
"contactPhones": [
"0001-87291810"
],
"ticketStatus": "OPEN_FOR_USE"
}
],
"contact": {
"email": "text",
"companyName": "text"
}
}Last updated
Was this helpful?

