curl --request GET \
--url https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id} \
--header 'x-access-token: <api-key>'import requests
url = "https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "64b64c4f5f3c2a6d8e7f9b0a",
"slug": "my-store",
"profile": {
"name": "Henri Corp",
"description": "Location de vélos entre particuliers. Louez un vélo près de chez vous, où que vous soyez en France.",
"verticales": [
"BIKE",
"SCOOTER"
]
},
"localization": {
"current": "fr",
"default": "fr",
"available": [
"fr",
"en"
]
},
"contact": {
"socialMedia": {
"facebook": "https://www.facebook.com/henricorp",
"twitter": "https://www.twitter.com/henricorp",
"instagram": "https://www.instagram.com/henricorp",
"linkedIn": "https://www.linkedin.com/company/henricorp",
"tiktok": "https://www.tiktok.com/@henricorp"
}
},
"branding": {
"logoURL": "<string>",
"banners": {
"urls": [
"<string>"
],
"scrollTime": 5
}
},
"geo": {
"location": {
"id": "64b64c4f5f3c2a6d8e7f9b0b",
"name": "Point de retrait - Gare de Lyon",
"slug": "my-location",
"address": "4 Rue du Commandant Rivière, 75008 Paris, France",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"components": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"canonicalComponents": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"point": {
"lat": 48.8728361,
"lng": 2.3094988
}
},
"locations": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0b",
"name": "Point de retrait - Gare de Lyon",
"slug": "my-location",
"address": "4 Rue du Commandant Rivière, 75008 Paris, France",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"components": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"canonicalComponents": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"point": {
"lat": 48.8728361,
"lng": 2.3094988
}
}
]
},
"modules": {
"delivery": {
"enabled": true,
"deliveryOnly": false,
"ranges": [
{
"min": 0,
"max": 5,
"price": 10,
"specificPrices": [
{
"price": 5,
"cities": [
{
"cityName": "Paris",
"sublocalityName": "Batignolles",
"zipCode": "75017",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"hasMultiplePostcodeLocalities": false
}
]
}
]
}
],
"excludedCities": [
{
"cityName": "Paris",
"sublocalityName": "Batignolles",
"zipCode": "75017",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"hasMultiplePostcodeLocalities": false
}
],
"freeDelivery": {
"activated": true,
"type": "MINUTES",
"value": 60
}
},
"onlinePayment": {
"enabled": true,
"provider": "STRIPE",
"methods": {
"card": true,
"applePay": true,
"googlePay": true,
"ancvConnect": false,
"sepa": false,
"ideal": false,
"bancontact": false,
"giroPay": false,
"p24": false,
"blik": false,
"multibanco": false,
"eps": false
}
},
"insurance": {
"enabled": true,
"provider": "TULIP",
"details": {
"provider": "TULIP",
"status": "on_inclusion"
}
},
"multipleLocations": {
"enabled": true,
"dropoffRule": "DIFFERENT"
},
"cancellation": {
"enabled": true,
"ranges": [
{
"hourThreshold": 48,
"refundType": "PERCENTAGE",
"refundAmount": 50
}
]
}
},
"reviews": {
"google": {
"rating": 4.5,
"total": 120,
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"reviews": [
{
"author": {
"name": "John Doe",
"profilePictureUrl": "https://example.com/profile.jpg"
},
"comment": "Great service and friendly staff!",
"rating": 5,
"publishTime": "2024-10-15T10:30:00.000Z"
}
],
"mapsUrl": "https://maps.google.com/?cid=1234567890123456789",
"updatedAt": "2024-11-01T12:00:00.000Z"
}
},
"temporal": {
"timezone": "Europe/Paris",
"schedule": {
"openingHours": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0c",
"day": "1",
"from": "09:00",
"to": "18:00",
"open": true
}
],
"openingHoursLowSeason": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0c",
"day": "1",
"from": "09:00",
"to": "18:00",
"open": true
}
],
"lowSeasonRanges": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0d",
"from": "2024-12-01T00:00:00.000Z",
"to": "2024-12-31T23:59:59.999Z"
}
],
"closedRanges": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0d",
"from": "2024-12-01T00:00:00.000Z",
"to": "2024-12-31T23:59:59.999Z"
}
]
}
},
"pricing": {
"currency": {
"isoCode": "EUR",
"symbol": "€"
},
"tax": {
"type": "INCLUSIVE",
"value": 20,
"name": "TVA"
},
"discount": {
"globalDiscounts": [
{
"percentage": "10.0",
"from": "2024-12-01T00:00:00.000Z",
"to": "2024-12-31T23:59:59.999Z",
"applicableDate": "START_DATE"
}
],
"categoryDiscounts": [
{
"itemCategoryIds": [
"<string>"
],
"rules": [
{
"discount": 123,
"discountType": "AMOUNT",
"rangeFrom": 123,
"rangeTo": 123,
"infiniteTo": true
}
]
}
]
},
"showPricingTable": true
},
"booking": {
"bookingType": {
"lcd": true,
"lld": true,
"event": true
},
"instantBooking": {
"lcd": true,
"lld": true
},
"fixedDurations": {
"enabled": true,
"durations": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0e",
"minutes": 60,
"hours": 1,
"label": "1 hour"
}
]
},
"rules": {
"timeAnchors": {
"startTimes": [
{
"hours": 9,
"minutes": 30
}
],
"endTimes": [
{
"hours": 9,
"minutes": 30
}
]
},
"leadTime": {
"minHours": 2
},
"duration": {
"minHours": 1,
"maxHours": 24
}
}
},
"metadata": {
"timestamps": {
"createdAt": "2024-10-15T10:30:00.000Z"
}
},
"name": "My Store",
"logoURL": "https://bucket-prod.getlokki.com/****+/logo.png",
"bannerURL": [
"https://bucket-prod.getlokki.com/****+/banner1.png",
"https://bucket-prod.getlokki.com/****+/banner2.png"
],
"pageUrl": "https://www.lokki.rent/loueur/my-store?utm_source=partner&utm_medium=social&utm_campaign=spring-sale",
"currency": {
"isoName": "EUR",
"symbol": "€"
},
"lat": 50.62925,
"lng": 3.057256,
"address": "1 Place du Général de Gaulle, 59000 Lille, France",
"addressComponents": {
"administrativeAreaLevel1": "Hauts-de-France",
"administrativeAreaLevel2": "Nord",
"city": "Lille",
"country": "France",
"placeId": "ChIJCSaqfIjVwkcRhvxuup4tznk",
"postalCode": "59000",
"street": "Place du Général de Gaulle",
"streetNumber": "1"
},
"googleRating": 4.5,
"googleReviewsNb": 120,
"verticales": [
"BIKE"
],
"rentalPointSlug": "my-rental-point",
"distance": 5
}Get One Store
curl --request GET \
--url https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id} \
--header 'x-access-token: <api-key>'import requests
url = "https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}"
headers = {"x-access-token": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};
fetch('https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-access-token", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}")
.header("x-access-token", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging.api.eu-west-3.lokki.rent/v2/external/stores/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "64b64c4f5f3c2a6d8e7f9b0a",
"slug": "my-store",
"profile": {
"name": "Henri Corp",
"description": "Location de vélos entre particuliers. Louez un vélo près de chez vous, où que vous soyez en France.",
"verticales": [
"BIKE",
"SCOOTER"
]
},
"localization": {
"current": "fr",
"default": "fr",
"available": [
"fr",
"en"
]
},
"contact": {
"socialMedia": {
"facebook": "https://www.facebook.com/henricorp",
"twitter": "https://www.twitter.com/henricorp",
"instagram": "https://www.instagram.com/henricorp",
"linkedIn": "https://www.linkedin.com/company/henricorp",
"tiktok": "https://www.tiktok.com/@henricorp"
}
},
"branding": {
"logoURL": "<string>",
"banners": {
"urls": [
"<string>"
],
"scrollTime": 5
}
},
"geo": {
"location": {
"id": "64b64c4f5f3c2a6d8e7f9b0b",
"name": "Point de retrait - Gare de Lyon",
"slug": "my-location",
"address": "4 Rue du Commandant Rivière, 75008 Paris, France",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"components": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"canonicalComponents": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"point": {
"lat": 48.8728361,
"lng": 2.3094988
}
},
"locations": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0b",
"name": "Point de retrait - Gare de Lyon",
"slug": "my-location",
"address": "4 Rue du Commandant Rivière, 75008 Paris, France",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"components": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"canonicalComponents": {
"streetNumber": "4",
"street": "Rue du Commandant Rivière",
"postalCode": "75008",
"city": "Paris",
"administrativeAreaLevel1": "Île-de-France",
"administrativeAreaLevel2": "Paris",
"country": "France"
},
"point": {
"lat": 48.8728361,
"lng": 2.3094988
}
}
]
},
"modules": {
"delivery": {
"enabled": true,
"deliveryOnly": false,
"ranges": [
{
"min": 0,
"max": 5,
"price": 10,
"specificPrices": [
{
"price": 5,
"cities": [
{
"cityName": "Paris",
"sublocalityName": "Batignolles",
"zipCode": "75017",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"hasMultiplePostcodeLocalities": false
}
]
}
]
}
],
"excludedCities": [
{
"cityName": "Paris",
"sublocalityName": "Batignolles",
"zipCode": "75017",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"hasMultiplePostcodeLocalities": false
}
],
"freeDelivery": {
"activated": true,
"type": "MINUTES",
"value": 60
}
},
"onlinePayment": {
"enabled": true,
"provider": "STRIPE",
"methods": {
"card": true,
"applePay": true,
"googlePay": true,
"ancvConnect": false,
"sepa": false,
"ideal": false,
"bancontact": false,
"giroPay": false,
"p24": false,
"blik": false,
"multibanco": false,
"eps": false
}
},
"insurance": {
"enabled": true,
"provider": "TULIP",
"details": {
"provider": "TULIP",
"status": "on_inclusion"
}
},
"multipleLocations": {
"enabled": true,
"dropoffRule": "DIFFERENT"
},
"cancellation": {
"enabled": true,
"ranges": [
{
"hourThreshold": 48,
"refundType": "PERCENTAGE",
"refundAmount": 50
}
]
}
},
"reviews": {
"google": {
"rating": 4.5,
"total": 120,
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"reviews": [
{
"author": {
"name": "John Doe",
"profilePictureUrl": "https://example.com/profile.jpg"
},
"comment": "Great service and friendly staff!",
"rating": 5,
"publishTime": "2024-10-15T10:30:00.000Z"
}
],
"mapsUrl": "https://maps.google.com/?cid=1234567890123456789",
"updatedAt": "2024-11-01T12:00:00.000Z"
}
},
"temporal": {
"timezone": "Europe/Paris",
"schedule": {
"openingHours": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0c",
"day": "1",
"from": "09:00",
"to": "18:00",
"open": true
}
],
"openingHoursLowSeason": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0c",
"day": "1",
"from": "09:00",
"to": "18:00",
"open": true
}
],
"lowSeasonRanges": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0d",
"from": "2024-12-01T00:00:00.000Z",
"to": "2024-12-31T23:59:59.999Z"
}
],
"closedRanges": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0d",
"from": "2024-12-01T00:00:00.000Z",
"to": "2024-12-31T23:59:59.999Z"
}
]
}
},
"pricing": {
"currency": {
"isoCode": "EUR",
"symbol": "€"
},
"tax": {
"type": "INCLUSIVE",
"value": 20,
"name": "TVA"
},
"discount": {
"globalDiscounts": [
{
"percentage": "10.0",
"from": "2024-12-01T00:00:00.000Z",
"to": "2024-12-31T23:59:59.999Z",
"applicableDate": "START_DATE"
}
],
"categoryDiscounts": [
{
"itemCategoryIds": [
"<string>"
],
"rules": [
{
"discount": 123,
"discountType": "AMOUNT",
"rangeFrom": 123,
"rangeTo": 123,
"infiniteTo": true
}
]
}
]
},
"showPricingTable": true
},
"booking": {
"bookingType": {
"lcd": true,
"lld": true,
"event": true
},
"instantBooking": {
"lcd": true,
"lld": true
},
"fixedDurations": {
"enabled": true,
"durations": [
{
"id": "64b64c4f5f3c2a6d8e7f9b0e",
"minutes": 60,
"hours": 1,
"label": "1 hour"
}
]
},
"rules": {
"timeAnchors": {
"startTimes": [
{
"hours": 9,
"minutes": 30
}
],
"endTimes": [
{
"hours": 9,
"minutes": 30
}
]
},
"leadTime": {
"minHours": 2
},
"duration": {
"minHours": 1,
"maxHours": 24
}
}
},
"metadata": {
"timestamps": {
"createdAt": "2024-10-15T10:30:00.000Z"
}
},
"name": "My Store",
"logoURL": "https://bucket-prod.getlokki.com/****+/logo.png",
"bannerURL": [
"https://bucket-prod.getlokki.com/****+/banner1.png",
"https://bucket-prod.getlokki.com/****+/banner2.png"
],
"pageUrl": "https://www.lokki.rent/loueur/my-store?utm_source=partner&utm_medium=social&utm_campaign=spring-sale",
"currency": {
"isoName": "EUR",
"symbol": "€"
},
"lat": 50.62925,
"lng": 3.057256,
"address": "1 Place du Général de Gaulle, 59000 Lille, France",
"addressComponents": {
"administrativeAreaLevel1": "Hauts-de-France",
"administrativeAreaLevel2": "Nord",
"city": "Lille",
"country": "France",
"placeId": "ChIJCSaqfIjVwkcRhvxuup4tznk",
"postalCode": "59000",
"street": "Place du Général de Gaulle",
"streetNumber": "1"
},
"googleRating": 4.5,
"googleReviewsNb": 120,
"verticales": [
"BIKE"
],
"rentalPointSlug": "my-rental-point",
"distance": 5
}Authorizations
Path Parameters
The unique ID or slug of the store
Query Parameters
Fields to include in the response
Language for localized content
fr, en, nl, de, it, pt, es, pl Response
Unique identifier for the booking store - MongoDB ObjectId
"64b64c4f5f3c2a6d8e7f9b0a"
Unique identifier for the store. Used for URL paths (e.g., https://www.lokki.rent/loueur/my-store)
"my-store"
Store general profile information (name, description, verticales)
Show child attributes
Show child attributes
Store localization information (current, default, available languages)
Show child attributes
Show child attributes
Store contact information (email, phone, website, social media, etc.)
Show child attributes
Show child attributes
Store branding information (banners, colors, etc.)
Show child attributes
Show child attributes
Store geographical information (main and secondary locations)
Show child attributes
Show child attributes
Store modules settings (delivery, online payment, insurance, etc.)
Show child attributes
Show child attributes
Store reviews from external platforms (e.g., Google Reviews)
Show child attributes
Show child attributes
Store temporal settings (opening hours, timezone, etc.)
Show child attributes
Show child attributes
Store pricing settings (currency, tax, discounts, etc.)
Show child attributes
Show child attributes
Booking settings
Show child attributes
Show child attributes
Store technical metadata and timestamps
Show child attributes
Show child attributes
Name of the store.
Deprecated, use profile.name instead.
"My Store"
URL to the store logo image
Deprecated, use branding.logoURL instead.
"https://bucket-prod.getlokki.com/****+/logo.png"
URLs to the store banner images
Deprecated, use branding.banners.urls instead.
[
"https://bucket-prod.getlokki.com/****+/banner1.png",
"https://bucket-prod.getlokki.com/****+/banner2.png"
]
Public URL for the online store page. UTM parameters may be appended for tracking.
"https://www.lokki.rent/loueur/my-store?utm_source=partner&utm_medium=social&utm_campaign=spring-sale"
Currency used by the store
Deprecated, use pricing.currency instead.
Show child attributes
Show child attributes
Latitude of the store location
Deprecated, use geo.location.point.lat instead.
50.62925
Longitude of the store location
Deprecated, use geo.location.point.lng instead.
3.057256
Full address of the store
Deprecated, use geo.location.address instead.
"1 Place du Général de Gaulle, 59000 Lille, France"
Address components of the store
Deprecated, use geo.location.components instead.
Show child attributes
Show child attributes
Google rating of the store
Deprecated, use reviews.google.rating instead.
4.5
Number of Google reviews for the store
Deprecated, use reviews.google.total instead.
120
Verticals associated with the store
Deprecated, use profile.verticales instead.
BIKE, ELECTRIC_BIKE, MOPED, MOTORCYCLE, CAR, SCOOTER, SKI, CLIMBING, SNOWSHOES, SURF, PADDLE, CANOE_KAYAK, BOAT, EVENT, MOTOCULTURE, TOOLING Slug of the rental point to get details for. If not provided, main store location is used.
"my-rental-point"
Distance from the queried location (in km)
5