GDSHub API
Direct Galileo / Travelport integration via simple text commands. Issue tickets, manage PNRs, and automate workflows.
Overview
The GDSHub API provides a command‑based interface to Global Distribution Systems (Galileo / Travelport). It handles flight availability, passenger name records, payment methods, ticket issuance, and reissues. All requests are POST and responses are JSON.
To obtain your personal API key, log in to your account and navigate to your dashboard. There you can generate and manage your API credentials.
Authentication
Every request must include your registered email and API key.
| Parameter | Description | Required |
|---|---|---|
email | Your registered email address | Yes |
api_key | Your personal API key (generate from your dashboard) | Yes |
action | Must be execute_command | Yes |
command | The Galileo command (e.g. an26MAYSHJCAI, TTP, FPCASH) | Yes |
request_count is automatically incremented for each successful call. You can monitor your usage from your account dashboard.
Endpoint
All requests must be sent via POST with Content-Type: application/x-www-form-urlencoded or application/json.
Common Commands
| Command | Description |
|---|---|
an26MAYSHJCAI | Search flights from SHJ to CAI on 26 May |
NM1AHMED | Add a passenger name |
SS1Y1 | Select seat 1Y on segment 1 |
FPCASH | Set payment method to Cash |
AP | Add agency address (required for ticketing) |
TTP | Issue the ticket |
I or IG | Clear all lines |
IR | End the session |
Response Format
A typical success response contains success, output (the command result), and session data (current PNR, segments, etc.).
{
"success": true,
"output": "TICKET ISSUED SUCCESSFULLY\nPNR: 32JBQP\nPASSENGERS: 1 | SEGMENTS: 1\nTOTAL AMOUNT: AED 2,340.00\nBASE FARE: AED 1,650.00\nTAX: AED 690.00\n\nTICKET NUMBERS:\nPAX 1: 869-7041540806",
"session": []
}
{
"success": true,
"output": "CANNOT ISSUE TICKET - MISSING ELEMENTS:\n• NO VALID PAYMENT METHOD SET\n\nThere is messing:\nNEED NAMES , PAYMENT METHOD , AP , PRICE , TICKING",
"session": []
}
Code Examples
Below are ready‑to‑run examples in popular languages. Replace the email and API key with your own.
curl -X POST https://gdshub.pro/account/api/v1/1t/1t \
-d "email=your@email.com" \
-d "api_key=YOUR_API_KEY" \
-d "action=execute_command" \
-d "command=an26MAYSHJCAI"
<?php
$data = [
'email' => 'your@email.com',
'api_key' => 'YOUR_API_KEY',
'action' => 'execute_command',
'command' => 'FPCASH'
];
$ch = curl_init('https://gdshub.pro/account/api/v1/1t/1t');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
import requests
url = "https://gdshub.pro/account/api/v1/1t/1t"
payload = {
"email": "your@email.com",
"api_key": "YOUR_API_KEY",
"action": "execute_command",
"command": "TTP"
}
response = requests.post(url, data=payload)
print(response.json())
const axios = require('axios');
const params = new URLSearchParams();
params.append('email', 'your@email.com');
params.append('api_key', 'YOUR_API_KEY');
params.append('action', 'execute_command');
params.append('command', 'an26MAYSHJCAI');
axios.post('https://gdshub.pro/account/api/v1/1t/1t', params)
.then(res => console.log(res.data))
.catch(err => console.error(err));
#!/bin/bash
EMAIL="your@email.com"
API_KEY="YOUR_API_KEY"
COMMAND="SS1Y1"
curl -X POST https://gdshub.pro/account/api/v1/1t/1t \
-d "email=$EMAIL" \
-d "api_key=$API_KEY" \
-d "action=execute_command" \
-d "command=$COMMAND"
require 'net/http'
require 'uri'
uri = URI('https://gdshub.pro/account/api/v1/1t/1t')
params = {
email: 'your@email.com',
api_key: 'YOUR_API_KEY',
action: 'execute_command',
command: 'IG'
}
response = Net::HTTP.post_form(uri, params)
puts response.body
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func main() {
data := url.Values{}
data.Set("email", "your@email.com")
data.Set("api_key", "YOUR_API_KEY")
data.Set("action", "execute_command")
data.Set("command", "FPCASH")
resp, _ := http.PostForm("https://gdshub.pro/account/api/v1/1t/1t", data)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
Tips & Best Practices
- Session persistence: The API maintains a session per email – you can run a sequence of commands (search → add name → payment → ticket) without losing context.
- Command chaining: Multiple commands can be sent in one request by separating them with semicolons:
command=NM1AHMED;SS1Y1;FPCASH;TTP - Error handling: Always check the
successfield. Theoutputfield contains human‑readable messages. - Rate limiting: Your
request_countis tracked; if you need higher limits, contact support.
Related Tools & Resources
Explore more GDS and travel resources from GDSHub: