# Beauty Router API

The Beauty Router API connects your salon app to the Beauty Router marketplace. It logs in your users, links the
catalog files, searches the catalog, returns product details, matches the products your users typed in, collects
company details for verification, saves the services a company offers, lists suppliers, and creates, lists, and
changes orders.

Every request sends a token as `Authorization: Bearer <token>`. `POST /v1/login`, `GET /v1/catalog/files`, and
`GET /v1/catalog/search` send your app token, from your server only. Every other endpoint sends the user token, and
your frontend can make those requests. See [Authentication](/authentication/) and [Conventions](/conventions/).

For endpoints the API does not have, write to [dev@beautyrouter.com](mailto:dev@beautyrouter.com).


- [Log in a user](/api/operations/login.md): `POST /v1/login`
- [Log out a user](/api/operations/logout.md): `POST /v1/logout`
- [Get the company](/api/operations/getcompany.md): `GET /v1/company`
- [Update the company](/api/operations/updatecompany.md): `PUT /v1/company`
- [List licenses](/api/operations/listlicenses.md): `GET /v1/company/licenses`
- [Upload a license](/api/operations/createlicense.md): `POST /v1/company/licenses`
- [Delete a license](/api/operations/deletelicense.md): `DELETE /v1/company/licenses/{licenseId}`
- [List exemption certificates](/api/operations/listexemptioncertificates.md): `GET /v1/company/exemption-certificates`
- [Upload an exemption certificate](/api/operations/createexemptioncertificate.md): `POST /v1/company/exemption-certificates`
- [Delete an exemption certificate](/api/operations/deleteexemptioncertificate.md): `DELETE /v1/company/exemption-certificates/{certificateId}`
- [Submit for review](/api/operations/submitverification.md): `POST /v1/company/verification`
- [List services](/api/operations/listservices.md): `GET /v1/services`
- [Get the company's services](/api/operations/getcompanyservices.md): `GET /v1/company/services`
- [Update the company's services](/api/operations/updatecompanyservices.md): `PUT /v1/company/services`
- [Get the user's services](/api/operations/getuserservices.md): `GET /v1/user/services`
- [Set the user's services](/api/operations/updateuserservices.md): `PUT /v1/user/services`
- [Remove the user's services](/api/operations/deleteuserservices.md): `DELETE /v1/user/services`
- [List payment cards](/api/operations/listpaymentcards.md): `GET /v1/company/payment-cards`
- [List suppliers](/api/operations/listcompanysuppliers.md): `GET /v1/company/suppliers`
- [Archive a supplier](/api/operations/archivecompanysupplier.md): `POST /v1/company/suppliers/{supplierId}/archive`
- [Restore a supplier](/api/operations/restorecompanysupplier.md): `POST /v1/company/suppliers/{supplierId}/restore`
- [Get delivery estimates](/api/operations/getdeliveryestimates.md): `GET /v1/company/delivery-estimates`
- [Get offers](/api/operations/getproductoffers.md): `POST /v1/products/offers`
- [Get a quote](/api/operations/quoteorders.md): `POST /v1/orders/quote`
- [Place orders](/api/operations/createorders.md): `POST /v1/orders/batch`
- [List orders](/api/operations/listorders.md): `GET /v1/orders`
- [Get an order](/api/operations/getorder.md): `GET /v1/orders/{orderId}`
- [Delete a draft](/api/operations/deletedraftorder.md): `DELETE /v1/orders/{orderId}`
- [Cancel an order](/api/operations/cancelorder.md): `POST /v1/orders/{orderId}/cancel`
- [Change the delivery address](/api/operations/updateorderdeliveryaddress.md): `PUT /v1/orders/{orderId}/delivery-address`
- [Get the catalog files](/api/operations/getcatalogfiles.md): `GET /v1/catalog/files`
- [Search the catalog](/api/operations/searchcatalog.md): `GET /v1/catalog/search`
- [Get product details](/api/operations/getcatalogproduct.md): `GET /v1/catalog/products/{productId}`
- [List product matches](/api/operations/listproductmatches.md): `GET /v1/product-matches`
- [Send products for matching](/api/operations/createproductmatches.md): `POST /v1/product-matches`
- [Get a product match](/api/operations/getproductmatch.md): `GET /v1/product-matches/{matchId}`
- [Answer a product match question](/api/operations/replytoproductmatch.md): `PUT /v1/product-matches/{matchId}`
