api.ecota.co v2
The API ecotaco allows you to connect, create an account,
COMMUNITYNO AUTH0 INSTALLS
OpenAPI Specificationv3.0
{
"openapi": "3.0.0",
"servers": [
{
"url": "http://api.staging-ecotaco.com"
}
],
"info": {
"description": "The API ecotaco allows you to connect, create an account,\nmanage your credit cards and order rides.\n\n# Authentication\n\nEcotaco API use a system of application key and authentification token.\n\n## Application key :\n\nThe application key is generated by Ecota.co and unique to an application.\n\nBefore accessing EcoTa.co APIs, you need to register your application. Please supply the following information to dev@ecota.co:\n\n- Application name\n\n- Company (if appropriate)\n\n- Contact name, phone and address\n\n- Contact email\n\n- Is this a web application, a desktop application, or an application running on a device?\n\n- Short description of your application\n\nIt **must** be passed on request : \"accounts -> login\", \"accounts -> facebook login\" and \"accounts -> register\" .\n\n## Authentification token :\n\nThe authentification token is retrieved at login or register of an user.\n\nIt **must** be passed in request for authenticate action in Authorization HTTP header.\n\nExample :\n\nAuthorization: Token token=e55887022c1aca4c86abcc49e85ceb8a0c855d2af4d9fac75c08040a583dcde4\n\n# Language\n\nOn some of our resources, we filter the content displayed based on the Accept-Language header.\nIf the language is not defined or if we don't use the language defined in this header, we automatically use French as the default language.\nEcoTa.co currently support two languages: English, French. (\"en\" and \"fr\")\n\n# Encoding\n\nAll requests and answers on EcoTa.co are in UTF-8.",
"title": "api.ecota.co v2",
"version": "1.0.0",
"x-apisguru-categories": [
"location"
],
"x-logo": {
"backgroundColor": "#FFFFFF",
"url": "https://api.apis.guru/v2/cache/logo/https_pbs.twimg.com_profile_images_674904964125368320_5Z7DncLT_400x400.png"
},
"x-origin": [
{
"converter": {
"url": "https://github.com/mermade/oas-kit",
"version": "7.0.4"
},
"format": "openapi",
"url": "https://ecotaco.docs.apiary.io/api-description-document",
"version": "3.0"
}
],
"x-providerName": "staging-ecotaco.com"
},
"tags": [
{
"name": "EcoTa.co API Root"
},
{
"description": "The account methods use the User ressource.\n\nThe User ressource has the following attributes :\n\n- **id** (required, unique, integer) : ID of the User\n\n- **name** (required, string) : Name of the User\n\n- **first_name** (required, string) : First name of the User\n\n- **email** (required, unique, string) : Email of the User\n\n- **phone** (required, string) : Phone of the User\n\n- **birth_date** (optional, string) : Birth date of the User\n\n- **language** (required, string) : Language of the User (fixed by the application)\n\n- **referral_code** (optional, string) : Driver referal code\n\n- **avatar_url** (optional, string) : Avatar Url of the User (fixed by the application, gravatar or facebook)\n\n- **newsletter** (required, boolean) : True if User want to receive the newsletter\n\n- **addresses** : An Array of addresses (see *Addresses*)\n\n- **companies** : An Array of companies (see *Companies*)\n\nThe User have a array of **Addresses** with the following attributes :\n\n- **city** (required, string) : City\n\n- **country** (required, string) : Country\n\n- **latitude** (required, float) : Latitude of the Address\n\n- **longitude** (required, float) : Longitude of the Address\n\n- **postal_code** (required, integer) : Postal Code\n\n- **type_address** (required, string) : Address Type (HOME of User)\n\n- **address_complement** (optional, string) : Address complement\n\n- **label** (optional, string) : Address Type (HOME of User)\n\nThe User have a array of **Companies** with the following attributes :\n\n- **id** (required, string) : Id\n\n- **user_id** (required, string) : Id of user attached to the company\n\n- **type_relation** (required, float) : Relation and role in the company\n\n- **name** (required, float) : Name of company\n\n**type_relation** :\n\n- company_manager : Can manage user and reserve for others user with relation on the company\n\n- visitor : Visitor of the company\n\n- collaborator : Collaborator of the company",
"name": "Accounts"
},
{
"description": "CreditCards resource\n\nThe Credit Card ressource has the following attributes :\n\n- **id** (required, unique, integer) : ID of the credit card\n\n- **card_id** (required, string) : External stripe ID\n\n- **card_type** (required,string) : Card Type\n\n- **client** (required,string) : External stripe Customer ID\n\n- **expire_month** (required, integer) : Expire Mouth\n\n- **expire_year** (required, integer) : Expire Year\n\n- **label** (required, string) : Label of the Card\n\n- **last4** (required, string) : Last four digit in the card\n\n- **type_transaction** (required, string) : Type transaction (default : card)\n\n- **user_id** (required, integer) : ID of the User",
"name": "CreditCards"
},
{
"description": "The Ride resource has the following attributes :\n\n- **id** (required, unique, integer) : ID of the Ride\n\n- **booking_user_id** (integer) : ID of user who have create the ride\n\n- **company_id** (integer) : ID of company who have create the ride\n\n- **requested_start** (required, date) : Requested date of the ride\n\n- **flight_number** (string) : Fligth number\n\n- **train_number** (string) : Train number\n\n- **nb_passengers** (required, integer) : Number of passengers (de 1 à 8)\n\n- **pick_up_or_tacking_out** (boolean) : If pick up or tacking out in station or other\n\n- **comment** (string) : Comment of ride forward to driver\n\n- **points** : Array of Points (see *Points*)\n one start point and one end point is required to create a ride\n\n- **passengers** : Array of Passengers (see *Passengers*)\n One passenger (attribute main: true) is mandatory to book a ride\n\n- **distance** (float) : Distance in Km\n\n- **driver_arrival** (date) : Date of real driver arrival\n\n- **duration** (integer) : Duration of the Ride in seconds\n\n- **price** (float) : price of the ride (without promotion)\n\n- **total_price** (float) : total price of the Ride\n\n- **real_end** (date) : Date of real end of ride\n\n- **real_start** (date) : Date of real start of ride\n\n- **refused_label** (string) : Refused Label (see *REFUSED_LABELS*)\n\n- **status** (string) : Status of the ride (see *STATUSES*)\n\n- **eta** (integer) : Estimated Time of arrival\n\n- **driver** (hash) : Information about driver (see *Driver*)\n\n- **vehicle** (hash) : Information about vehicle (see *Vehicle*)\n\n- **estimated_start** (date) : Estimated Start date of the ride\n\n- **estimated_end** (date) : Estimated End date of the ride\n\n- **promotional_code_used** : Promotional code use if any\n\n**STATUSES** :\n\n- NONE = ''\n\n- REFUSED = 'refused'\nThe ride can not be reserved\n\n- ESTIMATED = 'estimated'\nWe have availability for the ride, it can be reserved\n\n- RESERVED = 'reserved'\n\n- AFFECTED = 'affected'\n\n- SENT = 'sent'\n\n- IN_PROGRESS = 'in_progress'\n\n- CANCELLED = 'cancelled'\n\n- CUSTOMER_MISSING = 'customer_missing'\n\n- FINISHED = 'finished'\n\n- FAILED = 'failed'\n\n**REFUSED_LABELS** :\n\n- NOT_IN_A_CATCHEMENT_AREA = 'not_in_a_catchement_area'\n\n- ROUTE_COULD_NOT_BE_CALCULATE = 'route_could_not_be_calculate'\n\n- NO_DRIVER_AVAILABLE_WITH_MORE_THAN_4_PLACES = 'no_driver_available_with_vehicle_with_more_4_places'\n\n- NO_DRIVER_AVAILABLE = 'no_driver_available'\n\n- PLANNED_DRIVERS_BUT_NOT_CONNECTED = 'planned_drivers_but_not_conected'\n\n- ERROR_ON_ONLINE_AND_NEAR_OF = 'error_on_online_and_near_of'\n\n- TOMTOM_QUOTA_REACHED = 'tomtom_error_request_quota_reached'\n\n- AUTHORIZATION_REFUSED = 'authorization_refused'\n\nThe Ride have a array of **Points** with the following attributes :\n\nOnly one point with type start and only one point with type start\n\n- **id** (required, unique, integer) : ID of the Point\n\n- **longitude** (required, float) : Longitude of the Point\n\n- **latitude** (required, float) : Latitude of the Point\n\n- **type_point** (required, string) : Point Type ( 'start' or 'end' )\n\n- **address** (optional, string) : Address of the Point\n\n- **address_complement** (optional, string) : Address Complement of the Point\n\n- **postal_code** (optional, integer) : Postal Code of the Point\n\n- **city** (optional, string) : City of the Point\n\n- **country** (optional, string) : Country of the Point\n\n- **user_input** (optional, string) : User Input for the Point\n\n- **catchement_areas_id** (required, string) : Catchement Areas ID of the Point (fixed by the application)\n\n- **ride_id** (required, integer) : The Ride ID (fixed by the application)\n\n- **comment** (optional, string): Additionnals informations or comment\n\n- **contacts** (optional, array): Array of Contacts (see *Contacts*)\n\nThe Point may have a array of **Contacts** with the following attributes :\n\nThe contact on the pick up or drop off point\n\n- **email** (optional, string) : Email of the Contact\n\n- **first_name** (optional, string) : Fist Name of the Contact\n\n- **last_name** (optional, string) : Name of the Contact\n\n- **phone** (optional, string) : Phone number of the Contact\n\nThe Ride have a array of **Passengers** with the following attributes :\n\nOne main passenger (with main attribute at true) is required to book a ride\n\n- **main** (required, boolean) : If the passenger is the main passenger\n\n- **first_name** (optional, string) : Fist Name of the Passenger\n\n- **name** (optional, string) : Last Name of the Passenger\n\n- **phone** (optional, string) : Phone number of the Passenger (in international format)\n\n- **email** (optional, string) : Email of the Passenger (required for create user)\n\n- **user_id** (optional, integer) : The User ID related to the passenger if exist\n\n- **company_relation** (optional, integer) : The type of relation with the company for the passenger (if register is true)\n\n- **register** (optional, integer) : for register the passenger\n\nThe Ride have a hash of **Driver** with the following attributes :\n\nThis information is provided when the ride is in_progress status\n\n- **first_name** (optional, string) : Fist Name of the driver\n\n- **phone** (optional, string) : Phone number of the driver\n\n- **latitude** (optional, string) : Latitude of driver\n\n- **longitude** (optional, string) : Longitude of driver\n\nThe Ride have a hash of **Vehicle** with the following attributes :\n\nThis information is provided when the ride is in_progress status\n\n- **manufacturer** (optional, string) : Manufacturer of the vehicle\n\n- **color** (optional, string) : Color of the vehicle\n\n- **model** (optional, string) : Model of the vehicle",
"name": "Rides"
},
{
"description": "Promotional Codes resource\n\nThe Promotional Codes ressource has the following attributes :\n\n- **id** (required, unique, integer) : ID of the affected promotional code\n\n- **status** (required, string) : Status of the affected promotional code ('used' or 'notused')\n\n- **code** (required, string) : The code of the promotional code\n\n- **label** (required, string) : Label of the promotional code\n\n- **promotional_type** (required, string) : The type of promotional code ('pourcent', 'amount' or 'km')\n\n- **value** (required, float) : the value of the promotional code\n\n- **start_date** (required, date) : Start Date for the promotional code\n\n- **end_date** (required, date) : End Date for the promotional code",
"name": "Promotional Codes"
},
{
"description": "The Addresses use google API for searching places, and also user favorite or best places.",
"name": "Adresses"
},
{
"description": "Catchement area resource\n\nThe catchement area ressource has the following attributes :\n\n- **id** (required, unique, integer) : ID of the catchement area\n\n- **label** (required, string) : Label\n\n- **launch_at** (required, date) : Launch date of catchement area\n\n- **coordinates** (required, array) : coordinates\n\n**Coordinates** :\n\n- **id** (required, unique, integer) : ID of the coordinates\n\n- **latitude** (required, float) : Latitude of the coordinates\n\n- **longitude** (required, float) : Longitude of the coordinates\n\n- **rank** (required, integer) : Rank to order coordinates of th catchement area\n\nWe provide json or geojson format",
"name": "Catchement Areas"
},
{
"description": "Product resource\n\nThe product ressource has the following attributes :\n\n- **id** (required, unique, integer) : ID of the product\n\n- **product_type** (required, string) : Product type (See *TYPES*)\n\n- **name** (required, dastringte) : Name of product\n\n- **description** (required, string) : Description of product\n\n**TYPES** :\n\n- transport_person : On demand transport person\n\n- package_delivery : Package delivery",
"name": "Products"
}
],
"paths": {
"/": {
"get": {
"description": "",
"operationId": "Retrieve the version API",
"responses": {
"200": {
"content": {
"application/vnd.siren+json": {
"examples": {
"response": {
"value": {
"links": {
"self": "https://api.ecota.co",
"v2": "https://api.ecota.co/v2"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Retrieve the version API",
"tags": [
"EcoTa.co API Root"
]
}
},
"/accounts": {
"get": {
"description": "",
"operationId": "Get current user",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"user": {
"addresses": [
{
"address_complement": null,
"city": null,
"company_id": null,
"country": null,
"id": 29,
"label": null,
"latitude": null,
"longitude": null,
"postal_code": null,
"street": null,
"type_address": "home"
}
],
"auth_token": "c1cb860b4fa68ff9f3d94791d28a8c89f89f4b4eceded8eec9f1e6fc10ee4e8c",
"avatar_url": "https://gravatar.com/avatar/45def3303a8c2b379605f3db4f61ebcc.png?s=200&d=http%3A%2F%2Fapp.ecota.co%2Fassets%2Fguest.png",
"birth_date": "1983-05-12",
"companies": [
{
"id": 10,
"name": "EcoTa.co",
"type_relation": "company_manager",
"user_id": 18
}
],
"created_at": "2015-05-25T13:37:43+02:00",
"email": "maxime.lenne@ecota.co",
"first_name": "Lenne",
"free_km_counter": 0,
"free_used_km_counter": 0,
"id": 18,
"language": "fr",
"name": "Maxime",
"newsletter": "1",
"phone": "0629453814",
"referral_code": "v8dlb",
"updated_at": "2015-05-25T15:41:11+02:00"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Get current user",
"tags": [
"Accounts"
]
},
"post": {
"description": "",
"operationId": "Create a new account with an application key",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"user": {
"addresses": [
{
"address_complement": null,
"city": null,
"company_id": null,
"country": null,
"id": 29,
"label": null,
"latitude": null,
"longitude": null,
"postal_code": null,
"street": null,
"type_address": "home"
}
],
"auth_token": "c1cb860b4fa68ff9f3d94791d28a8c89f89f4b4eceded8eec9f1e6fc10ee4e8c",
"avatar_url": "https://gravatar.com/avatar/45def3303a8c2b379605f3db4f61ebcc.png?s=200&d=http%3A%2F%2Fapp.ecota.co%2Fassets%2Fguest.png",
"birth_date": "1983-05-12",
"companies": [
{
"id": 10,
"name": "EcoTa.co",
"type_relation": "company_manager",
"user_id": 18
}
],
"created_at": "2015-05-25T13:37:43+02:00",
"email": "maxime.lenne@ecota.co",
"first_name": "Lenne",
"free_km_counter": 0,
"free_used_km_counter": 0,
"id": 18,
"language": "fr",
"name": "Maxime",
"newsletter": "1",
"phone": "0629453814",
"referral_code": "v8dlb",
"updated_at": "2015-05-25T15:41:11+02:00"
}
}
}
}
}
},
"description": "Created",
"headers": {}
}
},
"summary": "Create a new account with an application key",
"tags": [
"Accounts"
]
},
"put": {
"description": "",
"operationId": "Update User",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"user": {
"addresses": [
{
"address_complement": null,
"city": null,
"company_id": null,
"country": null,
"id": 29,
"label": null,
"latitude": null,
"longitude": null,
"postal_code": null,
"street": null,
"type_address": "home"
}
],
"auth_token": "c1cb860b4fa68ff9f3d94791d28a8c89f89f4b4eceded8eec9f1e6fc10ee4e8c",
"avatar_url": "https://gravatar.com/avatar/45def3303a8c2b379605f3db4f61ebcc.png?s=200&d=http%3A%2F%2Fapp.ecota.co%2Fassets%2Fguest.png",
"birth_date": "1983-05-12",
"companies": [
{
"id": 10,
"name": "EcoTa.co",
"type_relation": "company_manager",
"user_id": 18
}
],
"created_at": "2015-05-25T13:37:43+02:00",
"email": "maxime.lenne@ecota.co",
"first_name": "Lenne",
"free_km_counter": 0,
"free_used_km_counter": 0,
"id": 18,
"language": "fr",
"name": "Maxime",
"newsletter": "1",
"phone": "0629453814",
"referral_code": "v8dlb",
"updated_at": "2015-05-25T15:41:11+02:00"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Update User",
"tags": [
"Accounts"
]
}
},
"/accounts/password": {
"post": {
"description": "",
"operationId": "Forget password with email",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "Created",
"headers": {}
}
},
"summary": "Forget password with email",
"tags": [
"Accounts"
]
}
},
"/accounts/payment_methods": {
"get": {
"description": "",
"operationId": "Payment Methods",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"payment_methods": [
{
"at": "ride_end",
"by_id": 13,
"by_type": "User",
"credit_card_id": 1,
"credit_card_label": "perso",
"method": "credit_card",
"to": "ecotaco"
},
{
"at": "ride_end",
"by_id": 7,
"by_type": "Company",
"credit_card_id": 2,
"credit_card_label": "Pro entrep",
"method": "credit_card",
"to": "ecotaco"
},
{
"at": "month_end",
"by_id": 7,
"by_type": "Company",
"method": "transfer",
"to": "ecotaco"
},
{
"at": "ride_end",
"by_id": 13,
"by_type": "User",
"method": "cash",
"to": "driver"
}
]
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Payment Methods",
"tags": [
"Accounts"
]
}
},
"/accounts/settings": {
"post": {
"description": "",
"operationId": "Settings",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"user": {
"addresses": [
{
"address_complement": null,
"city": null,
"company_id": null,
"country": null,
"id": 29,
"label": null,
"latitude": null,
"longitude": null,
"postal_code": null,
"street": null,
"type_address": "home"
}
],
"auth_token": "c1cb860b4fa68ff9f3d94791d28a8c89f89f4b4eceded8eec9f1e6fc10ee4e8c",
"avatar_url": "https://gravatar.com/avatar/45def3303a8c2b379605f3db4f61ebcc.png?s=200&d=http%3A%2F%2Fapp.ecota.co%2Fassets%2Fguest.png",
"birth_date": "1983-05-12",
"companies": [
{
"id": 10,
"name": "EcoTa.co",
"type_relation": "company_manager",
"user_id": 18
}
],
"created_at": "2015-05-25T13:37:43+02:00",
"email": "maxime.lenne@ecota.co",
"first_name": "Lenne",
"free_km_counter": 0,
"free_used_km_counter": 0,
"id": 18,
"language": "fr",
"name": "Maxime",
"newsletter": "1",
"phone": "0629453814",
"referral_code": "v8dlb",
"updated_at": "2015-05-25T15:41:11+02:00"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Settings",
"tags": [
"Accounts"
]
}
},
"/accounts/sign_in": {
"post": {
"description": "",
"operationId": "Login with email, password and application key",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"user": {
"addresses": [
{
"address_complement": null,
"city": null,
"company_id": null,
"country": null,
"id": 29,
"label": null,
"latitude": null,
"longitude": null,
"postal_code": null,
"street": null,
"type_address": "home"
}
],
"auth_token": "c1cb860b4fa68ff9f3d94791d28a8c89f89f4b4eceded8eec9f1e6fc10ee4e8c",
"avatar_url": "https://gravatar.com/avatar/45def3303a8c2b379605f3db4f61ebcc.png?s=200&d=http%3A%2F%2Fapp.ecota.co%2Fassets%2Fguest.png",
"birth_date": "1983-05-12",
"companies": [
{
"id": 10,
"name": "EcoTa.co",
"type_relation": "company_manager",
"user_id": 18
}
],
"created_at": "2015-05-25T13:37:43+02:00",
"email": "maxime.lenne@ecota.co",
"first_name": "Lenne",
"free_km_counter": 0,
"free_used_km_counter": 0,
"id": 18,
"language": "fr",
"name": "Maxime",
"newsletter": "1",
"phone": "0629453814",
"referral_code": "v8dlb",
"updated_at": "2015-05-25T15:41:11+02:00"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Login with email, password and application key",
"tags": [
"Accounts"
]
}
},
"/accounts/update_password": {
"put": {
"description": "",
"operationId": "Update Password",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"user": {
"addresses": [
{
"address_complement": null,
"city": null,
"company_id": null,
"country": null,
"id": 29,
"label": null,
"latitude": null,
"longitude": null,
"postal_code": null,
"street": null,
"type_address": "home"
}
],
"auth_token": "c1cb860b4fa68ff9f3d94791d28a8c89f89f4b4eceded8eec9f1e6fc10ee4e8c",
"avatar_url": "https://gravatar.com/avatar/45def3303a8c2b379605f3db4f61ebcc.png?s=200&d=http%3A%2F%2Fapp.ecota.co%2Fassets%2Fguest.png",
"birth_date": "1983-05-12",
"companies": [
{
"id": 10,
"name": "EcoTa.co",
"type_relation": "company_manager",
"user_id": 18
}
],
"created_at": "2015-05-25T13:37:43+02:00",
"email": "maxime.lenne@ecota.co",
"first_name": "Lenne",
"free_km_counter": 0,
"free_used_km_counter": 0,
"id": 18,
"language": "fr",
"name": "Maxime",
"newsletter": "1",
"phone": "0629453814",
"referral_code": "v8dlb",
"updated_at": "2015-05-25T15:41:11+02:00"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Update Password",
"tags": [
"Accounts"
]
}
},
"/addresses/places_autocomplete": {
"post": {
"description": "For searching places just send the following attributes :\n\n- **longitude** (optional, float) : The location longitude for the seach\n\n- **latitude** (optional, float) : The location latitude for the seach\n\n- **search** (required, string) : The search text (most than 3 char)",
"operationId": "Get autocomplete places",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"headers": {}
}
},
"summary": "Get autocomplete places",
"tags": [
"Adresses"
]
}
},
"/addresses/places_details": {
"post": {
"description": "",
"operationId": "Get autocomplete places details",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"city": "Lille",
"country": "France",
"formatted_address": "Lille, France",
"lat": 50.637528,
"lng": 3.070923,
"name": "Gare Lille Flandres",
"postal_code": "59800",
"reference": "CnRtAAAAnFiSmz9OFYi4ee_IeN8WgX0kjB50NtCCTTxJdTQzz9F33kC5eit_Z2DIW-MyrbwN9_cJ7lkBznVZ6o_Da52wCTzmKvbHvImkYTD24su-vjUfszNnJRWnV2M0ckZEdJ5vpG1S02m6jgzJ_FmOnImI2BIQh6x7kos53RZHQujnMlRkABoU28Ivbhnf72dh3L6yfqeB-oaIHYs",
"region": null,
"street": null,
"street_number": null,
"vicinity": "Lille"
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Get autocomplete places details",
"tags": [
"Adresses"
]
}
},
"/catchement_areas": {
"get": {
"description": "",
"operationId": "List all catchement areas",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/vnd.geo+json": {
"examples": {
"response": {
"value": {
"features": [
{
"geometry": {
"coordinates": [
[
[
2.653829,
50.642377
],
[
2.648937,
50.627461
],
[
2.780256,
50.586548
],
[
2.900204,
50.663704
],
[
2.831196,
50.705252
],
[
2.778325,
50.700468
],
[
2.653829,
50.642377
]
]
],
"type": "Polygon"
},
"properties": {
"id": 4,
"label": "Lille forbidden"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
[
[
2.85468817138667,
50.7209296468011
],
[
2.82172918701167,
50.6948395473376
],
[
2.75512457275386,
50.6582890133086
],
[
2.69401312255854,
50.6391321348964
],
[
2.80318975830073,
50.5240267810597
],
[
2.92953253173823,
50.4803527849672
],
[
3.02772283935542,
50.4742352023462
],
[
3.25980902099604,
50.4571891900493
],
[
3.31817388916011,
50.5558832982945
],
[
3.43709230804438,
50.6039001101805
],
[
3.34576845550532,
50.6888041447647
],
[
3.32585573577876,
50.7431491302235
],
[
3.11780214691157,
50.8208614514023
],
[
2.89120912933345,
50.7431491302235
],
[
2.85468817138667,
50.7209296468011
]
]
],
"type": "Polygon"
},
"properties": {
"id": 1,
"label": "Lille"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
[
[
1.34239196777344,
43.665388118352
],
[
1.37603759765625,
43.7284369679607
],
[
1.54838562011719,
43.6713483259687
],
[
1.54220581054688,
43.4947753137023
],
[
1.34925842285156,
43.5002543647898
],
[
1.22085571289062,
43.5788986029537
],
[
1.34239196777344,
43.665388118352
]
]
],
"type": "Polygon"
},
"properties": {
"id": 2,
"label": "Toulouse"
},
"type": "Feature"
},
{
"geometry": {
"coordinates": [
[
[
2.874408,
50.702182
],
[
2.918353,
50.753905
],
[
2.833212,
50.772398
],
[
2.812956,
50.702651
],
[
2.861475,
50.656127
],
[
2.979921,
50.661786
],
[
2.874408,
50.702182
]
]
],
"type": "Polygon"
},
"properties": {
"id": 3,
"label": "Lille exclusive"
},
"type": "Feature"
}
],
"type": "FeatureCollection"
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "List all catchement areas",
"tags": [
"Catchement Areas"
]
}
},
"/catchement_areas/{id}": {
"get": {
"description": "",
"operationId": "Get a Catchement Area",
"parameters": [
{
"description": "Numeric `id` of the Catchement Area",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/vnd.geo+json": {
"examples": {
"response": {
"value": {
"geometry": {
"coordinates": [
[
[
2.85468817138667,
50.7209296468011
],
[
2.82172918701167,
50.6948395473376
],
[
2.75512457275386,
50.6582890133086
],
[
2.69401312255854,
50.6391321348964
],
[
2.80318975830073,
50.5240267810597
],
[
2.92953253173823,
50.4803527849672
],
[
3.02772283935542,
50.4742352023462
],
[
3.25980902099604,
50.4571891900493
],
[
3.31817388916011,
50.5558832982945
],
[
3.43709230804438,
50.6039001101805
],
[
3.34576845550532,
50.6888041447647
],
[
3.32585573577876,
50.7431491302235
],
[
3.11780214691157,
50.8208614514023
],
[
2.89120912933345,
50.7431491302235
],
[
2.85468817138667,
50.7209296468011
]
]
],
"type": "Polygon"
},
"properties": {
"id": 1,
"label": "Lille"
},
"type": "Feature"
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Get a Catchement Area",
"tags": [
"Catchement Areas"
]
}
},
"/credit_cards": {
"get": {
"description": "",
"operationId": "List all CreditCards for the current User",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"headers": {}
}
},
"summary": "List all CreditCards for the current User",
"tags": [
"CreditCards"
]
}
},
"/credit_cards/{id}": {
"get": {
"description": "",
"operationId": "Get a CreditCard",
"parameters": [
{
"description": "Numeric `id` of the Credit Card",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "OK",
"headers": {}
}
},
"summary": "Get a CreditCard",
"tags": [
"CreditCards"
]
}
},
"/products": {
"get": {
"description": "",
"operationId": "List all products",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": [
{
"product": {
"description": "Transport de personne à la demande (VTC / DREAL / Taxi)",
"id": 1,
"name": "Transport à la demande",
"product_type": "transport_person"
}
},
{
"product": {
"description": "Transport de colis",
"id": 2,
"name": "Transport de colis",
"product_type": "package_delivery"
}
}
]
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "List all products",
"tags": [
"Products"
]
}
},
"/products/{id}": {
"get": {
"description": "",
"operationId": "Get a Product",
"parameters": [
{
"description": "Numeric `id` of the Product",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"product": {
"description": "Transport de personne à la demande (VTC / DREAL / Taxi)",
"id": 1,
"name": "Transport à la demande",
"product_type": "transport_person"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Get a Product",
"tags": [
"Products"
]
}
},
"/promotional_codes": {
"get": {
"description": "",
"operationId": "Get all promotional codes for user",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": [
{
"promotional_code": {
"code": "PROMOCODE",
"created_at": "2014-07-02T17:38:42+02:00",
"end_date": "2099-01-31T00:00:00+01:00",
"id": 4,
"label": "Parrainage chauffeur",
"promotional_type": "pourcent",
"start_date": "2012-11-01T00:00:00+01:00",
"status": "notused",
"value": 10
}
}
]
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Get all promotional codes for user",
"tags": [
"Promotional Codes"
]
},
"post": {
"description": "",
"operationId": "Add a promotional code",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": "Created",
"headers": {}
}
},
"summary": "Add a promotional code",
"tags": [
"Promotional Codes"
]
}
},
"/rides/{id}": {
"get": {
"description": "",
"operationId": "Get a ride",
"parameters": [
{
"description": "Numeric `id` of Ride",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"ride": {
"booking_user_id": 11,
"comment": null,
"company_id": null,
"distance": 10.079,
"driver": {
"first_name": "Céline",
"phone": "0629453814"
},
"driver_arrival": null,
"duration": 1096,
"estimated_end": "2014-06-12T17:03:55+02:00",
"estimated_start": "2014-06-12T16:45:39+02:00",
"eta": 1357,
"flight_number": null,
"id": 322,
"nb_passengers": 1,
"passengers": [
{
"email": "admin@ecota.co",
"first_name": "Jean-Phil",
"id": 315,
"main": true,
"name": "Monslip",
"phone": "0629453814",
"user_id": 11
}
],
"pick_up_or_tacking_out": false,
"points": [
{
"address": "53-57 Rue Masséna",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Lille",
"comment": null,
"contacts": [
{
"email": "",
"first_name": "",
"last_name": "",
"phone": ""
}
],
"country": "France",
"id": 631,
"latitude": 50.63217,
"longitude": 3.054924,
"postal_code": 59800,
"type_point": "start",
"user_input": "53-57 Rue Masséna"
},
{
"address": "Rue de l'Harmonie",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Villeneuve-d'Ascq",
"country": "France",
"id": 632,
"latitude": 50.60511,
"longitude": 3.15199,
"postal_code": 59650,
"ride_id": 322,
"type_point": "end",
"user_input": "Rue de l'Harmonie"
}
],
"price": 19.8,
"product_id": 1,
"promotional_code_used": null,
"real_end": null,
"real_start": null,
"refused_label": "",
"requested_start": "2014-06-12T16:23:02+02:00",
"reserved_by_phone": false,
"status": "in_progress",
"total_price": 19.8,
"train_number": null,
"vehicle": {
"color": "gris",
"manufacturer": "Audi",
"model": "A4"
}
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Get a ride",
"tags": [
"Rides"
]
}
},
"/rides/{id}/cancel": {
"get": {
"description": "**Must be authenticate**",
"operationId": "Cancel a Ride",
"parameters": [
{
"description": "Numeric `id` of Ride",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"ride": {
"booking_user_id": 11,
"comment": null,
"company_id": null,
"created_at": "2014-07-02T17:33:55+02:00",
"distance": 24.248,
"driver": {
"first_name": "Céline",
"phone": "0629453814"
},
"driver_arrival": null,
"duration": 1424,
"estimated_end": "2014-07-02T18:05:48+02:00",
"estimated_start": "2014-07-02T17:42:04+02:00",
"eta": 397,
"flight_number": null,
"id": 378,
"nb_passengers": 1,
"passengers": [
{
"main": true,
"user_id": 11
},
{
"company_relation": null,
"email": "passager@gmail.com",
"first_name": "Non registered",
"main": false,
"name": "Passenger",
"phone": "0606060606",
"register": false
},
{
"company_relation": "collaborator",
"email": "passager2@gmail.com",
"first_name": "To registered",
"main": false,
"name": "Passenger",
"phone": "0606060606",
"register": true
}
],
"pick_up_or_tacking_out": false,
"points": [
{
"address": "53-57 Rue Masséna",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Lille",
"comment": null,
"contacts": [
{
"email": "",
"first_name": "",
"last_name": "",
"phone": ""
}
],
"country": "France",
"id": 631,
"latitude": 50.63217,
"longitude": 3.054924,
"postal_code": 59800,
"type_point": "start",
"user_input": "53-57 Rue Masséna"
},
{
"address": "Rue de l'Harmonie",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Villeneuve-d'Ascq",
"country": "France",
"id": 632,
"latitude": 50.60511,
"longitude": 3.15199,
"postal_code": 59650,
"ride_id": 322,
"type_point": "end",
"user_input": "Rue de l'Harmonie"
}
],
"price": 39.8,
"promotional_code_used": null,
"real_end": null,
"real_start": null,
"refused_label": "",
"requested_start": "2014-07-02T17:35:27+02:00",
"reserved_by_phone": false,
"status": "cancelled",
"total_price": 39.8,
"train_number": null,
"updated_at": "2014-07-02T17:35:34+02:00",
"vehicle": {
"color": "gris",
"manufacturer": "Audi",
"model": "A4"
}
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Cancel a Ride",
"tags": [
"Rides"
]
}
},
"/rides/{id}/cancel_fees": {
"get": {
"description": "**Must be authenticate**",
"operationId": "Cancel fee of a Ride",
"parameters": [
{
"description": "Numeric `id` of Ride",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"fee_percent": 0,
"fee_total": 0,
"message": "No cancellation fee."
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Cancel fee of a Ride",
"tags": [
"Rides"
]
}
},
"/rides/{id}/estimate": {
"get": {
"description": "",
"operationId": "Estimate a ride",
"parameters": [
{
"description": "Numeric `id` of Ride",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"ride": {
"booking_user_id": 11,
"comment": null,
"company_id": null,
"created_at": "2014-07-02T17:33:55+02:00",
"distance": 24.248,
"driver": {
"first_name": "Céline",
"phone": "0629453814"
},
"driver_arrival": null,
"duration": 1424,
"estimated_end": "2014-07-02T18:03:56+02:00",
"estimated_start": "2014-07-02T17:40:12+02:00",
"eta": 397,
"flight_number": null,
"id": 378,
"nb_passengers": 1,
"pick_up_or_tacking_out": false,
"points": [
{
"address": "53-57 Rue Masséna",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Lille",
"comment": null,
"contacts": [
{
"email": "",
"first_name": "",
"last_name": "",
"phone": ""
}
],
"country": "France",
"id": 631,
"latitude": 50.63217,
"longitude": 3.054924,
"postal_code": 59800,
"type_point": "start",
"user_input": "53-57 Rue Masséna"
},
{
"address": "Rue de l'Harmonie",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Villeneuve-d'Ascq",
"country": "France",
"id": 632,
"latitude": 50.60511,
"longitude": 3.15199,
"postal_code": 59650,
"ride_id": 322,
"type_point": "end",
"user_input": "Rue de l'Harmonie"
}
],
"price": 39.8,
"promotional_code_used": null,
"real_end": null,
"real_start": null,
"refused_label": "",
"requested_start": "2014-07-02T17:33:35+02:00",
"reserved_by_phone": false,
"status": "estimated",
"total_price": 39.8,
"train_number": null,
"updated_at": "2014-07-02T17:34:02+02:00",
"vehicle": {
"color": "gris",
"manufacturer": "Audi",
"model": "A4"
}
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Estimate a ride",
"tags": [
"Rides"
]
}
},
"/rides/{id}/reserve": {
"post": {
"description": "To book, the ride must belong to the connected user. The ride must have a main passenger at least, the booking user id and the payment hash must be set.\n\n**Must be authenticate**",
"operationId": "Reserve a ride",
"parameters": [
{
"description": "Numeric `id` of Ride",
"example": "1",
"in": "path",
"name": "id",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"ride": {
"booking_user_id": 11,
"comment": null,
"company_id": null,
"created_at": "2014-07-02T17:33:55+02:00",
"distance": 24.248,
"driver": {
"first_name": "Céline",
"phone": "0629453814"
},
"driver_arrival": null,
"duration": 1424,
"estimated_end": "2014-07-02T18:05:48+02:00",
"estimated_start": "2014-07-02T17:42:04+02:00",
"eta": 397,
"flight_number": null,
"id": 378,
"nb_passengers": 1,
"passengers": [
{
"main": true,
"user_id": 11
},
{
"company_relation": null,
"email": "passager@gmail.com",
"first_name": "Non registered",
"main": false,
"name": "Passenger",
"phone": "0606060606",
"register": false
},
{
"company_relation": "collaborator",
"email": "passager2@gmail.com",
"first_name": "To registered",
"main": false,
"name": "Passenger",
"phone": "0606060606",
"register": true
}
],
"pick_up_or_tacking_out": false,
"points": [
{
"address": "53-57 Rue Masséna",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Lille",
"comment": null,
"contacts": [
{
"email": "",
"first_name": "",
"last_name": "",
"phone": ""
}
],
"country": "France",
"id": 631,
"latitude": 50.63217,
"longitude": 3.054924,
"postal_code": 59800,
"type_point": "start",
"user_input": "53-57 Rue Masséna"
},
{
"address": "Rue de l'Harmonie",
"address_complement": null,
"catchement_areas_id": [
1
],
"city": "Villeneuve-d'Ascq",
"country": "France",
"id": 632,
"latitude": 50.60511,
"longitude": 3.15199,
"postal_code": 59650,
"ride_id": 322,
"type_point": "end",
"user_input": "Rue de l'Harmonie"
}
],
"price": 39.8,
"promotional_code_used": null,
"real_end": null,
"real_start": null,
"refused_label": "",
"requested_start": "2014-07-02T17:35:27+02:00",
"reserved_by_phone": false,
"status": "sent",
"total_price": 39.8,
"train_number": null,
"updated_at": "2014-07-02T17:35:30+02:00",
"vehicle": {
"color": "gris",
"manufacturer": "Audi",
"model": "A4"
}
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Reserve a ride",
"tags": [
"Rides"
]
}
},
"/rides?page={page}&per_page={per_page}": {
"get": {
"description": "",
"operationId": "Get all user rides",
"parameters": [
{
"description": "Number of the page to load",
"example": "1",
"in": "path",
"name": "page",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "Number of items per page to load",
"example": "1",
"in": "path",
"name": "per_page",
"required": true,
"schema": {
"type": "number"
}
},
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"headers": {
"Current-Page": {
"schema": {
"type": "string"
}
},
"Link": {
"schema": {
"type": "string"
}
},
"Per-Page": {
"schema": {
"type": "string"
}
},
"Total-Entries": {
"schema": {
"type": "string"
}
},
"Total-Page": {
"schema": {
"type": "string"
}
}
}
}
},
"summary": "Get all user rides",
"tags": [
"Rides"
]
},
"post": {
"description": "",
"operationId": "Create a ride",
"parameters": [
{
"description": "e.g. application/json",
"example": "application/json",
"in": "header",
"name": "Accept",
"required": false,
"schema": {
"type": "string"
}
},
{
"description": "e.g. en",
"example": "en",
"in": "header",
"name": "Accept-Language",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"content": {
"application/json": {
"examples": {
"response": {
"value": {
"ride": {
"booking_user_id": 11,
"comment": null,
"company_id": null,
"created_at": "2014-07-02T17:33:55+02:00",
"distance": null,
"driver": {
"first_name": "Céline",
"phone": "0629453814"
},
"driver_arrival": null,
"duration": null,
"estimated_end": null,
"estimated_start": "2014-07-02T17:33:35+02:00",
"eta": 0,
"flight_number": null,
"id": 378,
"nb_passengers": 1,
"passengers": [],
"pick_up_or_tacking_out": false,
"points": [
{
"address": "Rue de l'Harmonie",
"city": "Villeneuve-d'Ascq",
"comment": "Sonner",
"contacts": [
{
"email": "",
"first_name": "",
"last_name": "",
"phone": ""
}
],
"country": "France",
"latitude": 50.60511,
"longitude": 3.15199,
"postal_code": 59650,
"type_point": "start",
"user_input": "Rue de l'Harmonie Villeneuve-d'Ascq France"
},
{
"address": "101 Rue de l'Echauffour..e",
"city": "Mouscron",
"comment": "Sonner",
"country": "Belgium",
"latitude": 50.75434,
"longitude": 3.181706,
"postal_code": 7700,
"type_point": "end",
"user_input": "101 Rue de l'Echauffour..e"
}
],
"price": null,
"promotional_code_used": null,
"real_end": null,
"real_start": null,
"refused_label": null,
"requested_start": "2014-07-02T17:33:35+02:00",
"reserved_by_phone": false,
"status": null,
"total_price": 0,
"train_number": null,
"updated_at": "2014-07-02T17:33:55+02:00",
"vehicle": {
"color": "gris",
"manufacturer": "Audi",
"model": "A4"
}
}
}
}
}
}
},
"description": "Created",
"headers": {}
}
},
"summary": "Create a ride",
"tags": [
"Rides"
]
}
},
"/{version}": {
"get": {
"description": "",
"operationId": "Retrieve the Entry Point on Version",
"parameters": [
{
"description": "Ecotaco API version",
"in": "path",
"name": "version",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"content": {
"application/vnd.siren+json": {
"examples": {
"response": {
"value": {
"links": {
"accounts": "https://api.ecota.co/v2/accounts",
"addresses": "https://api.ecota.co/v2/addresses",
"catchement_areas": "https://api.ecota.co/v2/catchement_areas",
"products": "https://api.ecota.co/v2/products",
"promotional_codes": "https://api.ecota.co/v2/promotional_codes",
"rides": "https://api.ecota.co/v2/rides",
"self": "https://api.ecota.co/v2"
}
}
}
}
}
},
"description": "OK",
"headers": {}
}
},
"summary": "Retrieve the Entry Point on Version",
"tags": [
"EcoTa.co API Root"
]
}
}
},
"components": {
"schemas": {
"Autocomplete_places": {},
"Autocomplete_places_details": {},
"Cancel_Ride": {},
"Cancel_fee": {},
"Catchement_Area": {},
"Collection_of_catchement_areas": {},
"Collection_of_products": {},
"Credit_card": {},
"Current_User": {},
"Endpoint": {},
"Estimate_Ride": {},
"Forget_password": {},
"Login": {},
"Password": {},
"Payment_Methods": {},
"Product": {},
"Register": {},
"Reserve_Ride": {},
"Settings": {},
"User_Credit_Cards": {},
"User_Promotional_Codes": {},
"User_Ride": {},
"User_Rides": {},
"Version": {}
}
}
}