openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 45.2 kB
JSON
{"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://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":"2025-04-15T13:50:54.783Z","companies":[{"id":10,"name":"EcoTa.co","type_relation":"company_manager","user_id":18}],"created_at":"2025-04-15T13:50:54.783Z","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":"2025-04-15T13:50:54.783Z"}}}}}},"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":"2025-04-15T13:50:54.783Z","companies":[{"id":10,"name":"EcoTa.co","type_relation":"company_manager","user_id":18}],"created_at":"2025-04-15T13:50:54.783Z","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":"2025-04-15T13:50:54.783Z"}}}}}},"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":"2025-04-15T13:50:54.783Z","companies":[{"id":10,"name":"EcoTa.co","type_relation":"company_manager","user_id":18}],"created_at":"2025-04-15T13:50:54.783Z","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":"2025-04-15T13:50:54.783Z"}}}}}},"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":"2025-04-15T13:50:54.783Z","companies":[{"id":10,"name":"EcoTa.co","type_relation":"company_manager","user_id":18}],"created_at":"2025-04-15T13:50:54.783Z","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":"2025-04-15T13:50:54.783Z"}}}}}},"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":"2025-04-15T13:50:54.784Z","companies":[{"id":10,"name":"EcoTa.co","type_relation":"company_manager","user_id":18}],"created_at":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z"}}}}}},"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":"2025-04-15T13:50:54.784Z","companies":[{"id":10,"name":"EcoTa.co","type_relation":"company_manager","user_id":18}],"created_at":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z"}}}}}},"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":"2025-04-15T13:50:54.784Z","end_date":"2025-04-15T13:50:54.784Z","id":4,"label":"Parrainage chauffeur","promotional_type":"pourcent","start_date":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","estimated_start":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","distance":24.248,"driver":{"first_name":"Céline","phone":"0629453814"},"driver_arrival":null,"duration":1424,"estimated_end":"2025-04-15T13:50:54.784Z","estimated_start":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","reserved_by_phone":false,"status":"cancelled","total_price":39.8,"train_number":null,"updated_at":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","distance":24.248,"driver":{"first_name":"Céline","phone":"0629453814"},"driver_arrival":null,"duration":1424,"estimated_end":"2025-04-15T13:50:54.784Z","estimated_start":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","reserved_by_phone":false,"status":"estimated","total_price":39.8,"train_number":null,"updated_at":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","distance":24.248,"driver":{"first_name":"Céline","phone":"0629453814"},"driver_arrival":null,"duration":1424,"estimated_end":"2025-04-15T13:50:54.784Z","estimated_start":"2025-04-15T13:50:54.784Z","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":"2025-04-15T13:50:54.784Z","reserved_by_phone":false,"status":"sent","total_price":39.8,"train_number":null,"updated_at":"2025-04-15T13:50:54.785Z","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":"2025-04-15T13:50:54.785Z","distance":null,"driver":{"first_name":"Céline","phone":"0629453814"},"driver_arrival":null,"duration":null,"estimated_end":null,"estimated_start":"2025-04-15T13:50:54.785Z","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":"2025-04-15T13:50:54.785Z","reserved_by_phone":false,"status":null,"total_price":0,"train_number":null,"updated_at":"2025-04-15T13:50:54.785Z","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":{}}}}