# Swifty API Overview ## Domains and Tenants SwiftyRx is multi-tenant, with each tenant corresponding to a virtual pharmacy. In each environment, there is a `bootstrap` tenant that is used for initial authentication and to get a list of tenants that the logged in account has access to. Each tenant has the concept of a `slug` that is used as the first part of the domain in the subsequent API calls. For example, in our development environment (which runs on the `swiftyrx.dev` domain), the bootstrap url is `https://bootstrap.swiftyrx.dev`. One of the tenants for demo purposes is Acme Pharmacy which has a slug of `acme`. As such, to access the Acme tenant via API, you would then use the domain `acme.swiftyrx.dev`. ## OAuth API We are still working on publishing this out to a hosted server. However, you can download the current openapi_auth.yaml file for further review. * [openapi_oauth.yaml](../../swifty_django/openapi_spec/openapi_oauth.yaml) * [oauth.yaml](../../swifty_django/openapi_spec/oauth.yaml) With this API, you can perform a login with a username and password and receive a Bearer token that can then be used to interact with the main API. ## Main API The main API Swagger UI can be viewed for any tenant at the /api/ui/ root of the main domain. For example, you can look at the latest API documentation for our Development Environment at [Main Swagger API](https://acme.swiftyrx.dev/api/ui/). With this API, you can send in patient registration information, search for prescriptions, search for patients, search for medications, validate a US address, get the details for a patient, get the details for a prescription, search for providers and pharmacies, etc.