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 ID
  • client_secret (string, required): Your client secret
  • grant_type (string, required): Must be client_credentials
  • scope (string, required): Must be demand_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: The estimation_id from the aggregated call response. For services with price_concept: "fixed_price", this commits the displayed price. For price_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

ValueDescription
originStarting point of the journey
on_goingIntermediate stop during the journey
destinationFinal destination of the journey

Action Types

ValueDescription
pick_upPick up a passenger at this stop
drop_offDrop off a passenger at this stop
stop_byBrief stop without passenger exchange

Category Types

ValueDescription
transportationPassenger transportation service
deliveryPackage/item delivery service

Payment Types

ValueDescription
cashCash payment (only option for partners)

Order Status Values

ValueDescription
PendingOrder created, awaiting processing
ReservedFuture order scheduled, not yet dispatched (driver is not yet on the way)
UnreservedFuture order unreserved, released from schedule
RoutingLooking for driver
ConfirmedDriver is on the way to pickup
WaitingDriver is waiting at pickup location
DrivingOrder is progressing (passenger on board)
CompletedOrder is completed
CancelledOrder is cancelled
RejectedFailed to find a driver
CareReqSupport 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();
  }
}