Get started with the GG365 Golf API in minutes.
Prerequisites
Step 1: Authentication
All requests require an X-Api-Key header:
GET /travel/courses HTTP/1.1
Host: api.golfglobe365.com
X-Api-Key: your_api_key_here
Step 2: Search Golf Courses
GET /travel/courses?country=ES&maxResults=10 HTTP/1.1
Host: api.golfglobe365.com
X-Api-Key: your_api_key_here
Response:
{
"data": [
{
"id": "abc123def456",
"name": "Marbella Golf Country Club",
"country": "ES",
"region": "Andalusia",
"holes": 18,
"isOnline": true,
"thumbnailUrl": "https://cdn.golfglobe365.com/prod/course/marbella-golf-thumb.jpg"
}
],
"meta": {
"pagination": {
"page": 1,
"pageSize": 10,
"totalItems": 325,
"totalPages": 33
}
}
}
Step 3: Check Tee Time Availability
GET /travel/courses/abc123def456/availability?date=2026-07-15&players=2 HTTP/1.1
Host: api.golfglobe365.com
X-Api-Key: your_api_key_here
Step 4: Check Pricing and Terms
GET /travel/courses/abc123def456/pricing?startDate=2026-04-01&endDate=2026-10-31 HTTP/1.1
Host: api.golfglobe365.com
X-Api-Key: your_api_key_here
GET /travel/courses/abc123def456/terms HTTP/1.1
Host: api.golfglobe365.com
X-Api-Key: your_api_key_here
Step 5: Create a Booking
POST /travel/bookings HTTP/1.1
Host: api.golfglobe365.com
Content-Type: application/json
X-Api-Key: your_api_key_here
{
"courseId": "abc123def456",
"date": "2026-07-15",
"teeTime": "08:30",
"players": 2,
"leadPlayer": {
"firstName": "Michael",
"lastName": "Rodriguez",
"email": "[email protected]",
"phone": "+34 600 123 456"
},
"agencyBookingReference": "TRV-2026-00123"
}
Response:
{
"data": {
"id": "bk_abc123",
"status": "confirmed",
"bookingReference": "GG365-2026-12345",
"agencyBookingReference": "TRV-2026-00123",
"course": {
"id": "abc123def456",
"name": "Marbella Golf Country Club"
},
"date": "2026-07-15",
"teeTime": "08:30",
"players": 2,
"createdAt": "2026-06-01T14:22:33Z"
}
}
Step 6: Set Up Webhooks
Receive real-time booking status updates:
POST /webhooks HTTP/1.1
Host: api.golfglobe365.com
Content-Type: application/json
X-Api-Key: your_api_key_here
{
"url": "https://api.youragency.example/webhooks/gg365",
"events": ["booking.confirmed", "booking.cancelled", "booking.modified"],
"description": "Production booking notifications"
}
Integration Flow
- Search courses by country, region, or coordinates
- Check pricing and cancellation terms
- Check availability for the selected date
- Create the booking with player details
- Track status via webhook notifications
- Manage bookings (view, modify, cancel)
Sample Code (Node.js)
const axios = require('axios');
const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.golfglobe365.com/api/v1';
const api = axios.create({
baseURL: BASE_URL,
headers: {
'X-Api-Key': API_KEY,
'Content-Type': 'application/json'
}
});
// Search courses in Spain
const courses = await api.get('/travel/courses', {
params: { country: 'ES', maxResults: 20 }
});
// Check availability
const availability = await api.get(`/travel/courses/${courseId}/availability`, {
params: { date: '2026-07-15', players: 2 }
});
// Create booking
const booking = await api.post('/travel/bookings', {
courseId: courseId,
date: '2026-07-15',
teeTime: '08:30',
players: 2,
leadPlayer: {
firstName: 'Michael',
lastName: 'Rodriguez',
email: '[email protected]'
},
agencyBookingReference: 'TRV-2026-' + Date.now()
});
Next Steps
- Implement error handling
- Set up webhook handling
- Review rate limits
- Check cancellation terms per course
Last modified on