The API gives access to carpool trips on BlaBlaCar. The results are identical to those obtained for a similar search on the associated website. Each trip result includes a "links" object to get more details on this specific trip and you should use them instead of trying to reconstruct them.
The base URL is:
https://public-api.blablacar.com
It's a REST API, available only with GET queries. You can transmit you API KEY either with the `key` parameter, either as a query parameter or as an HTTP header:
https://public-api.blablacar.com/api/v2/trips?key=XXX&fn=Paris
curl -H 'key: XXX' https://public-api.blablacar.com/api/v2/trips?fn=Paris
NB: for simplification, the following examples are given without authentication
Trip Search
Search for trips on BlaBlaCar’s database.
GET /api/v2/trips
Example: https://public-api.blablacar.com/api/v2/trips?fn=Paris
Query Parameters
Name
Type
Required
Description
Example
fn
String
Optional
From Name: the departure place name
Paris
tn
String
Optional
To Name: the arrival place name
London
locale
String
Required
Available locales and their possible currencies are detailed here
en_GB
_format
String
Optional
"json"
json
cur
String
Required
Select the currency you want, depending on the requested locale. For example, with the "en_GB" locale, use GBP to get prices in British Pounds
EUR
fc
String
Optional
From Coordinate, as: "float|float", will be prefered to the "fn" parameter if both are presents
48.756%7C7.268
tc
String
Optional
To Coordinate, as: "float|float", will be prefered to the "tn" parameter if both are presents
48.756%7C7.268
db
String(date-time)
Optional
Date Begin, can mean one of the two following:
exact date of the requested search if no "de" parameter is present
begin of the period of the requested search, if there is also a "de" parameter
Format: "YYYY-MM-DD" or "YYYY-MM-DD HH:mm:ss"
2019-09-05
de
String(date)
Optional
Date End: end of the range of the requested search
Format: "YYYY-MM-DD" or "YYYY-MM-DD HH:mm:ss"
2019-09-07
hb
Integer
Optional
Hour Begin: hour of the earliest departure time. must be >= 0 and < 24
7
he
Integer
Optional
Hour End: hour of the latest departure time. must be > 0 and <= 24 and > hb
14
page
Integer
Optional
Number of the requested page of result, if there is more than 1 page
1
seats
Integer
Optional
number of requested available seats
1
photo
Boolean(integer)
Optional
Limit results to trips with or without driver pictures
1
fields
String
Optional
Limit the response to the mentioned fields of the return values
links%2Cprice%2Cpermanent_id
sort
String
Optional
Sorting parameter of the query. Possible values are:
“trip_date” or
”trip_price”
trip_price
order
String
Optional
Order of the sorting. Only used in combination with “sort”. Possible values are:
desc
limit
Integer
Optional
Maximum number of results requested. May results in slower and bigger queries. Must be < 100
50
radius
Integer
Optional
Maximum radius of the search, in km Default is 10% of the length of the trip
10
radius_from
Integer
Optional
Maximum radius of the search for the "from" element. If not specified and "radius" is set, it will use the "radius" value
5
radius_to
Integer
Optional
Maximum radius of the search for the "to" element. If not specified and "radius" is set, it will use the "radius" value
15
aa
Boolean
Optional
Automatic Approval booking mode only. When set to 1, it will only return trips in automatic approval
1
blablalines
Integer
Optional
Include blablalines results (for short trips, in France only)
1
pmin
Integer
Optional
Minimum price requested (pmax must also be set). This must be < pmax
2
pmax
Integer
Optional
Maximum price requested (pmin must also be set). This must be > pmax
142
Responses
Name
Type
Comment
links
Object
Links related to the query
pager
Object
Pagination detail on the number of results
trips
Array of trip
Detail of the trips found which match the query
top_trips
Array of trip
Selection of recommended trips
facets
Object
Detail on the results set by properties
distance
int
Distance in km of the requested axis
duration
int
Default duration of the requested axis,
recommended_price
int
Recommended price of the requested axis
savings
int
Default savings possible on this axis
The format of each response object is detailed here .
Click here to see a Json example
Here is a JSON example:
Hide
{
"links": {
"_self": "https://api.blablacar.com/api/v2/trips",
"_front": "https://www.blablacar.co.uk/search?fn=Paris&tn=london"
},
"pager": {
"page": 1,
"pages": 22,
"total": 22,
"limit": 1
},
"trips": [{
"links": {
"_self": "https://api.blablacar.com/api/v2/trips/1688387811-paris-london",
"_front": "https://www.blablacar.co.uk/trip/carpooling/1688387811-paris-london/"
},
"departure_date": "05/09/2019 11:20:00",
"departure_place": {
"city_name": "Paris",
"address": "Métro Nation",
"latitude": 48.847611,
"longitude": 2.3955668,
"country_code": "FR",
"meeting_point_id": 462828
},
"arrival_place": {
"city_name": "London",
"address": "Victoria Station",
"latitude": 51.49521,
"longitude": -0.143897,
"country_code": "GB"
},
"departure_meeting_point": {
"id": 462828,
"name": "Métro Nation",
"full_name": "Métro Nation, Paris",
"city_name": "Paris",
"address": "23 Rue Fabre d'Eglantine, 75012 Paris, France",
"latitude": 48.847611,
"longitude": 2.3955668,
"country_code": "FR",
"tags": []
},
"price": {
"value": 30,
"currency": "GBP",
"symbol": "£",
"string_value": "£30",
"price_color": "BLACK"
},
"price_with_commission": {
"value": 36,
"currency": "GBP",
"symbol": "£",
"string_value": "£36.00",
"price_color": "BLACK"
},
"price_without_commission": {
"value": 30,
"currency": "GBP",
"symbol": "£",
"string_value": "£30",
"price_color": "BLACK"
},
"commission": {
"value": 6,
"currency": "GBP",
"symbol": "£",
"string_value": "£6.00"
},
"seats_left": 3,
"seats": 3,
"duration": {
"value": 26400,
"unity": "s"
},
"distance": {
"value": 458,
"unity": "km"
},
"permanent_id": "1688387811-paris-london",
"car": {
"id": "134881169",
"model": "PRIUS",
"make": "TOYOTA",
"comfort": "Normal",
"comfort_nb_star": 2,
"category": "CATEGORY_BERLINE"
},
"multimodal_id": {
"source": "CARPOOLING",
"id": "1688387811-paris-london"
},
"viaggio_rosa": false,
"is_comfort": true,
"freeway": true,
"answer_delay": 3,
"booking_mode": "manual",
"booking_type": "online",
"locations_to_display": [
"Orléans",
"Paris",
"London"
],
"departure_passenger_routing": {
"proximity": "MIDDLE",
"routes": [{
"distance_in_meters": 3326,
"type": "AS_THE_CROW_FLIES"
}]
},
"arrival_passenger_routing": {
"proximity": "CLOSE",
"routes": [{
"distance_in_meters": 1752,
"type": "AS_THE_CROW_FLIES"
}]
},
"corridoring_type": "PLANNED",
"vehicle_pictures": []
}],
"top_trips": [],
"facets": [{
"name": "hour",
"type": "custom",
"items": [{
"value": 6,
"count": 1,
"is_selected": true
},
{
"value": 7,
"count": 1,
"is_selected": false
},
{
"value": 8,
"count": 1,
"is_selected": false
},
{
"value": 9,
"count": 1,
"is_selected": false
},
{
"value": 10,
"count": 1,
"is_selected": false
},
{
"value": 11,
"count": 1,
"is_selected": false
},
{
"value": 12,
"count": 1,
"is_selected": false
},
{
"value": 13,
"count": 1,
"is_selected": false
},
{
"value": 14,
"count": 1,
"is_selected": false
},
{
"value": 15,
"count": 1,
"is_selected": false
},
{
"value": 16,
"count": 1,
"is_selected": false
},
{
"value": 17,
"count": 1,
"is_selected": false
},
{
"value": 18,
"count": 1,
"is_selected": false
},
{
"value": 19,
"count": 1,
"is_selected": false
},
{
"value": 20,
"count": 1,
"is_selected": false
},
{
"value": 21,
"count": 1,
"is_selected": false
},
{
"value": 22,
"count": 1,
"is_selected": false
},
{
"value": 23,
"count": 1,
"is_selected": true
}
]
},
{
"name": "price",
"type": "custom",
"items": [{
"value": 28,
"count": 1,
"is_selected": true
},
{
"value": 29,
"count": 1,
"is_selected": false
},
{
"value": 30,
"count": 1,
"is_selected": false
},
{
"value": 31,
"count": 1,
"is_selected": false
},
{
"value": 32,
"count": 1,
"is_selected": false
},
{
"value": 33,
"count": 1,
"is_selected": false
},
{
"value": 34,
"count": 1,
"is_selected": false
},
{
"value": 35,
"count": 1,
"is_selected": false
},
{
"value": 36,
"count": 1,
"is_selected": false
},
{
"value": 37,
"count": 1,
"is_selected": false
},
{
"value": 38,
"count": 1,
"is_selected": false
},
{
"value": 39,
"count": 1,
"is_selected": false
},
{
"value": 40,
"count": 1,
"is_selected": false
},
{
"value": 41,
"count": 1,
"is_selected": false
},
{
"value": 42,
"count": 1,
"is_selected": false
},
{
"value": 43,
"count": 1,
"is_selected": false
},
{
"value": 44,
"count": 1,
"is_selected": false
},
{
"value": 45,
"count": 1,
"is_selected": false
},
{
"value": 46,
"count": 1,
"is_selected": false
},
{
"value": 47,
"count": 1,
"is_selected": false
},
{
"value": 48,
"count": 1,
"is_selected": false
},
{
"value": 49,
"count": 1,
"is_selected": false
},
{
"value": 50,
"count": 1,
"is_selected": false
},
{
"value": 51,
"count": 1,
"is_selected": false
},
{
"value": 52,
"count": 1,
"is_selected": false
},
{
"value": 53,
"count": 1,
"is_selected": false
},
{
"value": 54,
"count": 1,
"is_selected": false
},
{
"value": 55,
"count": 1,
"is_selected": false
},
{
"value": 56,
"count": 1,
"is_selected": true
}
]
}
],
"distance": 474,
"duration": 22800,
"recommended_price": 33,
"savings": 99,
"lowest_price": 36,
"lowest_price_object": {
"value": 36,
"currency": "GBP",
"symbol": "£",
"string_value": "£36"
},
"full_trips_count": 2,
"total_trip_count_to_display": 22,
"sorting_algorithm": "trip_date",
"has_bus": false
}
in case of errors, look at this article .
Trip Details
Get the details of a specific trip
GET /api/v2/trips/{Trip_ID}
Example: https://public-api.blablacar.com/api/v2/trips/123456789-paris-angers
URL Parameters
Name
Type
Required
Description
Example
Trip_ID
String
Required
Identifier of the requested trip
123456789-paris-angers
Query Parameters
Name
Type
Required
Description
Example
locale
String
Required
Available locales and their possible currencies are detailed here
en_GB
_format
String
Required
"json" or "xml"
json
Responses
Name
Type
Comment
links
Object
Links to the corresponding trip
departure_date
string
Locale Date of departure of the trip (format: JJ/MM/YYYY HH:MM:SS) example: 05/09/2019 11:20:00
departure_date_iso8601
string
Date of departure of the trip (format: iso8601) example: 2019-09-05T11:20:00+01:00
is_passed
bool
Has the trip already started
departure_place
Place Object
Place of departure of the trip
arrival_place
Place Object
Place of arrival of the trip
departure_meeting_point
Place Object
Related Meeting point for the departure
price
Price Object
Price of 1 seat
price_with_commission
Price Object
Full Price including the commission
price_without_commission
Price Object
Net Price asked by the driver
commission
Price Object
Value of the commission
seats_left
int
Number of available seats
seats
int
Number of seats on the trip
seats_count_origin
int
Initial number of seats on the trip
duration
Value Object
Value and unity of the trip duration
distance
Value Object
Value and unity of the trip distance
permanent_id
string
Permanent identifier of the trip
main_permanent_id
string
Identifier of the main trip, if this one is a subtrip
comment
string
Comment of trip as published by the driver
car
Car Object
Associated car the trip
viaggio_rosa
bool
Is this a women only trip?
is_comfort
bool
Is this a "max 2 in the back seats" trip?
freeway
bool
Will the trip use an highway?
stop_overs
Array of Places
Array of stopovers for the trip
bucketing_eligible
bool
Eligible to bucketing?
booking_mode
string
The booking approval mode, one of "auto", "manual"
booking_type
string
The payment type, one of "online", "onboard"
is_booking_allowed
Object
Is it possible to book on this trip?
view_count
int
Number of display of this trip
cross_border_alert
true
Is this trip crossing a border?
trip_plan
Array of Places
Itinerary planned for the trip
messaging_status
string
"public" or "private"
passengers
Array of Passengers
Passengers already booked on the same trip
display_contact
bool
Is it possible to contact the driver?
vehicle_pictures
Array of
can_report
bool
Is it possible to report the driver?
The format of each response object is detailed here .
Click here to see a Json example
Here is a JSON example:
Hide
{
"links": {
"_self": "https://api.blablacar.com/api/v2/trips/1688387811-paris-london",
"_front": "https://www.blablacar.co.uk/trip/carpooling/1688387811-paris-london/"
},
"departure_date": "05/09/2019 11:20:00",
"departure_date_iso8601": "2019-09-05T11:20:00+01:00",
"is_passed": false,
"departure_place": {
"city_name": "Paris",
"address": "Métro Nation, Paris",
"latitude": 48.847611,
"longitude": 2.3955668,
"country_code": "FR",
"meeting_point_id": 462828
},
"arrival_place": {
"city_name": "London",
"address": "Victoria Station",
"latitude": 51.49521,
"longitude": -0.143897,
"country_code": "GB"
},
"departure_meeting_point": {
"id": 462828,
"name": "Métro Nation",
"full_name": "Métro Nation, Paris",
"city_name": "Paris",
"address": "23 Rue Fabre d'Eglantine, 75012 Paris, France",
"latitude": 48.847611,
"longitude": 2.3955668,
"country_code": "FR",
"tags": [
"train_station"
]
},
"price": {
"value": 36.5,
"currency": "GBP",
"symbol": "£",
"string_value": "£36.50",
"price_color": "BLACK"
},
"price_with_commission": {
"value": 36.5,
"currency": "GBP",
"symbol": "£",
"string_value": "£36.50",
"price_color": "BLACK"
},
"price_without_commission": {
"value": 30,
"currency": "GBP",
"symbol": "£",
"string_value": "£30.00",
"price_color": "BLACK"
},
"commission": {
"value": 6.5,
"currency": "GBP",
"symbol": "£",
"string_value": "£6.50"
},
"seats_left": 3,
"seats": 3,
"seats_count_origin": 3,
"duration": {
"value": 22800,
"unity": "s"
},
"distance": {
"value": 458,
"unity": "km"
},
"permanent_id": "1688387811-paris-london",
"main_permanent_id": "1688387811-orleans-london",
"comment": "Hello . I am going back to London and using eurotunnel. Please come on time thanks and safely journee . First I am living orlean gare centre at 9:40 for porte de la chapelle. 11:30 departure from porte de la chapelle for London, Victoria",
"car": {
"id": "sQkfQPJXESDDvOAIOYFVXQ",
"model": "PRIUS",
"make": "TOYOTA",
"color": "White",
"color_hexa": "FFFFFF",
"comfort": "Normal",
"comfort_nb_star": 2,
"number_of_seat": 4,
"category": "_UE_BERLINE",
"picture": "https://cdn.blablacar.com/comuto3/images/rebranding/icons/vehicles/car-saloon.svg"
},
"viaggio_rosa": false,
"is_comfort": true,
"freeway": true,
"stop_overs": [
{
"city_name": "Orléans",
"address": "Hôtel Campanile Orléans Centre Gare",
"latitude": 47.90613,
"longitude": 1.905251,
"country_code": "FR"
},
{
"city_name": "Paris",
"latitude": 48.847611,
"longitude": 2.3955668,
"country_code": "FR",
"departure_place": true
},
{
"city_name": "London",
"address": "Victoria Station",
"latitude": 51.49521,
"longitude": -0.143897,
"country_code": "GB",
"arrival_place": true
}
],
"bucketing_eligible": false,
"booking_mode": "manual",
"booking_type": "online",
"is_booking_allowed": true,
"view_count": 22,
"cross_border_alert": true,
"trip_plan": [
{
"date": "05/09/2019 09:40:00",
"city": "Orléans",
"address": "Hôtel Campanile Orléans Centre Gare",
"latitude": 47.90613,
"longitude": 1.905251,
"country_code": "FR",
"meeting_point_id": 0,
"vinci_shuttle_enabled": false
},
{
"date": "05/09/2019 11:20:00",
"city": "Paris",
"address": "Métro Nation, Paris",
"latitude": 48.847611,
"longitude": 2.3955668,
"country_code": "FR",
"meeting_point_id": 462828,
"vinci_shuttle_enabled": false
},
{
"date": "05/09/2019 17:40:00",
"city": "London",
"address": "Victoria Station",
"latitude": 51.49521,
"longitude": -0.143897,
"country_code": "GB",
"meeting_point_id": 0,
"vinci_shuttle_enabled": false
}
],
"messaging_status": "private",
"passengers": [],
"display_contact": true,
"vehicle_pictures": [],
"can_report": false
}