API References
API Reference
Complete reference for all Gett B2C API endpoints.
Base URL
https://api.gett.com
Authentication
All endpoints require a bearer token in the Authorization header:
Authorization: Bearer {your_token}
Endpoints
Authentication
POST /v1/oauth/token
Obtain a bearer token for API authentication.
Headers:
Content-Type: application/x-www-form-urlencoded
Parameters:
client_id
(string, required): Your client IDclient_secret
(string, required): Your client secretgrant_type
(string, required): Must beclient_credentials
scope
(string, required): Must bedemand_partner
Response:
{
"access_token": "string",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "demand_partner"
}
Pricing & Estimates
GET /v1/private/preorder/aggregated
Get aggregated pricing and availability information for a route.
Query Parameters:
partner_id
(string, required): Your partner ID
Request Body:
{
"stops": [
{
"type": "origin|destination|on_going",
"location": {
"lat": 0.0,
"lng": 0.0
}
}
],
"scheduled_at": "2025-09-28T13:35:00Z",
"category": "transportation|delivery",
"locale": "en",
"payment_type": "cash"
}
Response:
{
"status": "success",
"data": {
"products": [
{
"id": "string",
"name": "string",
"description": "string",
"price": {
"amount": 1250,
"currency": "GBP",
"formatted": "£12.50"
},
"eta": {
"min": 5,
"max": 10,
"formatted": "5-10 min"
},
"capacity": {
"passengers": 4,
"luggage": 2
},
"availability": "available|unavailable"
}
],
"route": {
"distance": {
"value": 8500,
"unit": "meters",
"formatted": "8.5 km"
},
"duration": {
"value": 1200,
"unit": "seconds",
"formatted": "20 min"
}
},
"surge": {
"active": false,
"multiplier": 1.0
}
}
}
Order Management
POST /v1/private/orders/create
Create a new private order.
Key Parameters:
quote_id
: Theestimation_id
from the aggregated call response. For services withprice_concept: "fixed_price"
, this commits the displayed price. Forprice_concept: "meter"
, the quote is required but final price is determined by the taxi meter.
Request Body:
{
"partner_id": "string",
"product_id": "string",
"quote_id": "string",
"user_accepted_terms_and_privacy": true,
"category": "transportation|delivery",
"lc": "en",
"scheduled_at": "2024-10-01T13:50:00+03:00",
"stops": [
{
"type": "origin|on_going|destination",
"actions": [
{
"type": "pick_up|drop_off|stop_by",
"user": {
"name": "string",
"phone": "string"
}
}
],
"location": {
"lat": 0.0,
"lng": 0.0,
"full_address": "string",
"address": {
"house": "string",
"street": "string",
"city": "string",
"state": "string",
"country": "string",
"postcode": "string",
"notes": "string",
"address_place": {
"id": "string",
"provider": "GOOGLE|POSTCODE"
}
}
}
}
],
"payment": {
"payment_type": "cash"
},
"preferences": {
"num_of_passengers": 1,
"num_of_suitcases": 1
}
}
Response:
{
"ride_request_id": "string",
"status": "success",
"order": {
"id": "string"
}
}
GET /v1/private/orders/{order_id}
Get detailed information about an existing order.
Path Parameters:
order_id
(string, required): The order ID to retrieve
Query Parameters:
partner_id
(string, required): Your partner ID
Response:
{
"order": {
"order_id": "string",
"status": "Pending|Reserved|Unreserved|Routing|Confirmed|Waiting|Driving|Completed|Cancelled|Rejected|CareReq",
"type": "private",
"source": "api",
"product": {
"uuid": "string",
"category": "transportation|delivery",
"name": "string"
},
"payment": {
"payment_type": "cash"
},
"scheduled_at": "ISO8601 datetime",
"created_at": "ISO8601 datetime",
"rides": {
"full_ride": {
"stops": [
{
"uuid": "string",
"type": "origin|on_going|destination",
"progress_status": "string",
"location": {
"lat": 0.0,
"lng": 0.0,
"address": {
"full_address": "string",
"city": "string",
"country": "string"
}
},
"actions": [
{
"type": "pick_up|drop_off|stop_by",
"user": {
"name": "string",
"phone": "string"
},
"status": "pending_pickup|pending_drop_off|completed"
}
]
}
]
}
},
"actual": {
"supplier": {
"fleet": {
"name": "string",
"phone": "string"
},
"driver": {
"driver_name": "string",
"driver_phone": "string",
"car_model": "string",
"car_color": "string",
"plate_number": "string",
"rating": 5,
"location": {
"lat": 0.0,
"lon": 0.0,
"bearing": 0.0
}
}
},
"will_arrive_at": "ISO8601 datetime",
"arrived_at": "ISO8601 datetime",
"started_at": "ISO8601 datetime",
"ended_at": "ISO8601 datetime"
}
},
"route_info": {
"eta_to_destination_minutes": 0,
"distance_to_destination": {
"unit": "meter",
"value": 0.0
}
}
}
POST /v1/private/orders/cancel/{order_id}
Cancel an existing order.
Path Parameters:
order_id
(string, required): The order ID to cancel
Query Parameters:
partner_id
(string, required): Your partner ID
Response:
HTTP/1.1 204 No Content
Returns 204 No Content
status code for successful cancellations with an empty response body.
Data Types
Stop Types
Value | Description |
---|---|
origin | Starting point of the journey |
on_going | Intermediate stop during the journey |
destination | Final destination of the journey |
Action Types
Value | Description |
---|---|
pick_up | Pick up a passenger at this stop |
drop_off | Drop off a passenger at this stop |
stop_by | Brief stop without passenger exchange |
Category Types
Value | Description |
---|---|
transportation | Passenger transportation service |
delivery | Package/item delivery service |
Payment Types
Value | Description |
---|---|
cash | Cash payment (only option for partners) |
Order Status Values
Value | Description |
---|---|
Pending | Order created, awaiting processing |
Reserved | Future order scheduled, not yet dispatched (driver is not yet on the way) |
Unreserved | Future order unreserved, released from schedule |
Routing | Looking for driver |
Confirmed | Driver is on the way to pickup |
Waiting | Driver is waiting at pickup location |
Driving | Order is progressing (passenger on board) |
Completed | Order is completed |
Cancelled | Order is cancelled |
Rejected | Failed to find a driver |
CareReq | Support team is manually handling the order |
Rate Limits
Rate Limit Information
Contact Gett support for information about rate limits and usage quotas for your integration.
SDK and Libraries
Currently, official SDKs are not available. You can integrate directly using HTTP requests or create your own wrapper library.
Example Integration (JavaScript)
class GettAPIClient {
constructor(clientId, clientSecret, partnerId) {
this.clientId = clientId;
this.clientSecret = clientSecret;
this.partnerId = partnerId;
this.baseURL = 'https://api.gett.com';
this.token = null;
}
async authenticate() {
const response = await fetch(`${this.baseURL}/v1/oauth/token`, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: new URLSearchParams({
client_id: this.clientId,
client_secret: this.clientSecret,
grant_type: 'client_credentials',
scope: 'demand_partner'
})
});
const data = await response.json();
this.token = data.access_token;
return data;
}
async getPricing(routeData) {
const response = await fetch(
`${this.baseURL}/v1/private/preorder/aggregated?partner_id=${this.partnerId}`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${this.token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(routeData)
}
);
return await response.json();
}
async createOrder(orderData) {
const response = await fetch(`${this.baseURL}/v1/private/orders/create`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${this.token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
...orderData,
partner_id: this.partnerId
})
});
return await response.json();
}
async cancelOrder(orderId) {
const response = await fetch(
`${this.baseURL}/v1/private/orders/cancel/${orderId}?partner_id=${this.partnerId}`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${this.token}`,
'Content-Type': 'application/json'
}
}
);
return await response.json();
}
}
Updated 7 days ago