---
updatedAt: 2025-11-13T23:14:28.000Z
---

# API References

***

title: 'API Reference'
description: 'Complete API endpoint reference'
----------------------------------------------

# 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:**

```json
{
  "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:**

```json
{
  "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:**

```json
{
  "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:**

```json
{
  "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:**

```json
{
  "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:**

```json
{
  "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)

```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();
  }
}
```