NAV
shell

Introduction

Welcome to the Remedive API! You can use our API to access Remedive API endpoints.

We have language bindings in Shell! You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right.

This example API documentation page was created with Slate. Feel free to edit it and use it as a base for your own API's documentation.

Authentication

Login

curl --location --request POST '/api/v1/user/auth/login' \
--form 'phone=":phone_number"'

This endpoint processes user login request and sends OTP.

Please note: if user doesn't already exists, this endpoint will register the user.

HTTP Request

POST /api/v1/user/auth/login

Query Parameters

Parameter Required Type Description
phone true string phone number

HTTP Status Codes

Code Reason
200 Login request successful.
400 Invalid form input.

Verify Login OTP

curl --location --request POST '/api/v1/user/auth/login/otp/confirm' \
--form 'phone=":phone_number"' \
--form 'otp=":otp"' \
--form 'cart_session="session"'

This endpoint verifies OTP and confirms login.

HTTP Request

POST /api/v1/user/auth/login/otp/confirm

Query Parameters

Parameter Required Type Description
phone true string phone number
otp true string OTP
cart_session false string Cart Session (if exists)

HTTP Status Codes

Code Reason
201 Login confirmed.
400 Invalid OTP.

Logout

curl --location --request POST '/api/v1/user/auth/logout' \
--header 'Accept: application/json' \
--form 'cart_session="session"'

This endpoint logs out a user.

HTTP Request

GET /api/v1/user/auth/logout

Query Parameters

Parameter Required Type Description
cart_session false string Cart Session (if exists)

HTTP Status Codes

Code Reason
200 Logout successful.

API Authorization

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "api_endpoint_here" \
  -H "Authorization: Bearer token_here"

Make sure to replace token_here with your Token.

Remedive uses Authorization Token to allow access to the API. Without it, APIs will respond with 401 HTTP status code.

Please also send bellow headers with each API request:

Name Value
Accept application/json

User

User Profile

curl --request GET \
  --url /api/v1/user/profile

This endpoint shows profile of logged user.

HTTP Request

GET /api/v1/user/profile

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized

Edit User Profile

curl --request POST \
  --url /api/v1/user/profile/edit \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data name=John \
  --data email=email@example.com
  --data phone=017xxxxxxxx
  --data 'otp=":otp"' \

This endpoint edits profile of logged user. This API requires OTP verification. Use "anonymous send otp" API to send OTP before using this API.

HTTP Request

POST /api/v1/user/profile/edit

Input Parameters

Parameter Required Type Description
name true string User full name
email false string email address
phone true string user phone number
otp true string OTP code

HTTP Status Codes

Code Reason
201 Profile edit successful.
400 Invalid form input.

Upload User Avatar

curl --request POST \
  --url /api/v1/user/upload/avatar \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data image=base64:data

This endpoint upload profile image of logged user.

HTTP Request

POST /api/v1/user/upload/avatar

Input Parameters

Parameter Required Type Description
image true string Base64 data of image

HTTP Status Codes

Code Reason
201 Upload successful.
400 Invalid image data.

User Addresses

User Address List

curl --request GET \
  --url /api/v1/user/address/list

This endpoint shows all address of logged user.

HTTP Request

GET /api/v1/user/address/list

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized

Add User Address

curl --request POST \
  --url /api/v1/user/address/add \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data name=John \
  --data email=email@example.com \
  --data phone=017xxxxxxxx \
  --data address="full address" \
  --data area=Mogbazar \
  --data city=Dhaka \
  --data type=billing \
  --data is_default=0

This endpoint creates new address of logged user.

HTTP Request

POST /api/v1/user/address/add

Query Parameters

Parameter Required Type Description
name true string User full name
email true string email address
phone true string user phone number
address true string user full address
area true string user area
city true string user city
type true string shipping or billing
is_default true bool is this address default

HTTP Status Codes

Code Reason
201 address added successful.
422 Invalid form input.

Edit User Address

curl --request POST \
  --url /api/v1/user/address/edit \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data address_id=1 \
  --data name=John \
  --data email=email@example.com \
  --data phone=017xxxxxxxx \
  --data address="full address" \
  --data area=Mogbazar \
  --data city=Dhaka \
  --data type=billing \
  --data is_default=0

This endpoint edits an existing address of logged user.

HTTP Request

POST /api/v1/user/address/edit

Query Parameters

Parameter Required Type Description
address_id true string Existing address ID
name false string User full name
email false string email address
phone false string user phone number
address false string user full address
area true string user area
city false string user city
type false string shipping or billing
is_default false bool is this address default

HTTP Status Codes

Code Reason
200 address updated successful.
422 Invalid form input.

Remove User Address

curl --request POST \
  --url /api/v1/user/address/remove \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data address_id=1

This endpoint removes an existing address of logged user.

HTTP Request

POST /api/v1/user/address/remove

Query Parameters

Parameter Required Type Description
address_id true string Existing address ID

HTTP Status Codes

Code Reason
200 address removed successful.
422 Invalid form input.

User Orders

User Order List

curl --request GET \
  --url /api/v1/user/order/list

This endpoint shows all orders & all prescriptions submitted for order of logged user

HTTP Request

GET /api/v1/user/order/list

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized

View Single User Order

curl --request POST \
  --url /api/v1/user/order/view

This endpoint returns single order of logged in user.

HTTP Request

POST /api/v1/user/order/view

Input Parameters

Parameter Required Type Description
id true string Existing order ID

HTTP Status Codes

Code Reason
200 order returned successfuly.
422 Invalid form input.

Add Prescription Of single Order

curl --request POST \
  --url /api/order/v1/user/order/prescription/add
  --data id=1 \
  --data prescription=Base64 converted prescription Imgae

This endpoint returns content of prescription of a order.

HTTP Request

POST /api/order/v1/user/order/prescription/add

Input Parameters

Parameter Required Type Description
id true unsigned integer Existing order ID
prescription true string Base64 Image

HTTP Status Codes

Code Reason
200 Prescription submitted successfuly.
422 Invalid form input.
403 Unauthorized Order! Prescription is not available.
404 No Prescription available for this order.

View Prescription Of single Order

curl --request POST \
  --url /api/order/v1/user/order/prescription/view
  --data id=1

This endpoint returns content of prescription of a order.

HTTP Request

POST /api/order/v1/user/order/prescription/view

Input Parameters

Parameter Required Type Description
id true unsigned integer Existing order ID

HTTP Status Codes

Code Reason
200 prescription returned successfuly.
422 Invalid form input.
403 Unauthorized Order! Prescription is not available.
404 No Prescription available for this order.

Anonymous Otp

Send OTP

curl --location --request POST '/v1/user/anonymous/otp/send' \
--form 'phone=":phone_number"'

This endpoint sends OTP ode to provided phone number.

HTTP Request

POST /v1/user/anonymous/otp/send

Query Parameters

Parameter Required Type Description
phone true string phone number

HTTP Status Codes

Code Reason
201 OTP sent.
422 Invalid form input.

Hospital

Get List

curl --request GET \
  --url /api/v1/hospitals

This endpoint shows list of all hospitals.

HTTP Request

GET /api/v1/hospitals

HTTP Status Codes

Code Reason
200 Request successful

Departments

curl --request GET \
  --url /api/v1/hospitals/:hospital_slug/departments

This endpoint shows list of departments of a hospital.

HTTP Request

GET /api/v1/hospitals/:hospital_slug/departments

HTTP Status Codes

Code Reason
200 Request successful

Department

Get List

curl --request GET \
  --url /api/v1/departments

This endpoint shows list of all departments.

HTTP Request

GET /api/v1/departments

HTTP Status Codes

Code Reason
200 Request successful

Doctor

Get Doctors by Filter

curl --request POST \
  --url /api/v1/doctors

This endpoint shows list of all doctor by matching filters.

HTTP Request

POST /api/v1/doctors

Input Parameters

Parameter Required Type Description
hospital_branch_slug false string Hospital Slug string
department_slug false string Department slug string
location_id false int Location ID
search_query false string Query to search doctor by name or department

HTTP Status Codes

Code Reason
200 Request successful
422 Input validation error

Get Profile

curl --request GET \
  --url /api/v1/hospitals/:hospital_slug/doctors/:slug/profile

This endpoint shows profile of a doctor.

HTTP Request

GET /api/v1/hospitals/:hospital_slug/doctors/:slug/profile

HTTP Status Codes

Code Reason
200 Request successful.
404 Doctor not found

Patient

Show Info

curl --request GET \
  --url /api/v1/patient/:id

This endpoint shows details of a patient.

HTTP Request

GET /api/v1/patient/:id

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized
404 Patient Not Found

Show List

curl --request GET \
  --url /api/v1/patient/list

This endpoint shows list of all patients of logged user.

HTTP Request

GET /api/v1/patient/list

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized

Create Patient

curl --request POST \
  --url /api/v1/patient/create \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data 'name="Patient Name"' \
  --data 'birth_date="2000-01-01"' \
  --data 'gender="1"'

This endpoint creates a patient.

HTTP Request

POST /v1/patient/create

Query Parameters

Parameter Required Type Description
name true string Patient full name
birth_date true string Birth Date (Y-m-d)
gender true integer Gender (1 = Male, 2 = Female, 3 = Other)

HTTP Status Codes

Code Reason
201 create successful.
400 Invalid form input.

Appointment

Book an appointment

curl --location --request POST '/api/v1/appointment/apply' \
--header 'Accept: application/json' \
--form 'patient_id="1"' \
--form 'doctor_id="1"' \
--form 'hospital_branch_id="1"' \
--form 'timeslots[0][date]="2022-03-23"' \
--form 'timeslots[0][slot]="10:00AM - 12:00PM"' \
--form 'appointment_type="1"' \
--form 'accepted_tos="1"' \
--form 'symptoms="this is symptoms"' \

This endpoint books an appointment of a patient.

HTTP Request

POST /api/v1/appointment/apply

Input Parameters

Parameter Required Type Description
patient_id true int Patient ID
doctor_id true int Doctor ID
hospital_branch_id true int Hospital Branch ID
timeslots true array array of "date" and "slot". Example "2022-03-24" and "04:00PM - 07:00PM"
appointment_type int string Appointment type ID
symptoms false string Symtoms of patient
accepted_tos true int Must be 1

HTTP Status Codes

Code Reason
200 Request successful.
400 Invalid Input

Appointment Type List

curl --request GET \
  --url /api/v1/appointment/types

This endpoint shows list of all appointment types.

HTTP Request

GET /api/v1/appointment/types

HTTP Status Codes

Code Reason
200 Request successful

Appointment History

curl --request GET \
  --url /api/v1/appointment/history

This endpoint shows list of all previous appointments.

HTTP Request

GET /api/v1/appointment/history

HTTP Status Codes

Code Reason
200 Request successful

Appointment Details

curl --request GET \
  --url /api/v1/appointment/:id

This endpoint shows details of a specific appointment.

HTTP Request

GET /api/v1/appointment/:id

HTTP Status Codes

Code Reason
200 Request successful

Payment

Start Payment for Appointment

curl --location --request POST '/api/v1/appointment/payment/start' \
--header 'Accept: application/json' \
--form 'appointment_id="1"' \
--form 'name="John Doe"' \
--form 'email="john@example.com"' \
--form 'phone="01000000000"' \
--form 'address="user address"' \
--form 'area="mogbazar"'
--form 'city="dhaka"'

This endpoint returns payment url for an appointment.

HTTP Request

POST /api/v1/appointment/payment/start

Input Fields

Parameter Required Type Description
appointment_id true int Appointment ID
name if not already exists string User full name
email if not already exists string email address
phone if not already exists string user phone number
address if not already exists string user address
area if not already exists string user area
city if not already exists string user city

HTTP Status Codes

Code Reason
201 Payment url generated successfully.
403 This appointment was not booked by this user.
404 Appointment not found
422 A required input field missing
500 Backend failed to generate payment url

Location

Location List

curl --request GET \
  --url /api/v1/location

This endpoint shows list of all location (currently only cities).

HTTP Request

GET /api/v1/location

HTTP Status Codes

Code Reason
200 Request successful.

Promotional Banner

Promotional Banner List

curl --request POST \
  --url /api/v1/promotion/banner/list

This endpoint shows list of all promotinal banners.

HTTP Request

POST /api/v1/promotion/banner/list

HTTP Status Codes

Code Reason
200 Request successful.

Store Category

Store Category List

curl --request POST \
  --url /api/store/v1/categories
  --form 'is_otc=1'

This endpoint shows list of all categories with count of available products.

HTTP Request

POST /api/store/v1/categories

Input Fields

Parameter Required Type Description
is_otc false int If 1, only OTC categories will be returned

HTTP Status Codes

Code Reason
200 Request successful

Store Items

Store Items List

curl --request POST \
  --url /api/store/v1/item/list

This endpoint shows list of all items.

You can pass additional data via post body to filter result set.

Allowed filters are:

If "cart_session" is provided, item variants will have "in_cart" object if that variant is added to this cart.

HTTP Request

POST /api/store/v1/item/list

Input Parameters

Parameter Required Type Description
is_otc false int If 1, only OTC items will be returned
store_category_slug false string Category slug
store_generic_slug false string Generic slug
store_manufacturer_slug false string Manufacturer slug
cart_session false string Cart Session ID
search_query false string Query to search items

HTTP Status Codes

Code Reason
200 Request successful
422 Input validation error

Single Item Page

curl --request POST \
  --url /api/store/v1/item/view

This endpoint shows details of single item.

HTTP Request

POST /api/store/v1/item/view

Input Parameters

Parameter Required Type Description
slug require string Item slug
cart_session false string Cart Session ID

HTTP Status Codes

Code Reason
200 Request successful.
422 Input validation error

Store Shop

Store Shop List

curl --location --request POST '/api/store/v1/shop/list' \
--form 'location_id="1"'

This endpoint shows list of all shops. Optionally it filters shops with provided location id.

HTTP Request

POST /api/store/v1/shop/list

Input Parameters

Parameter Required Type Description
location_id false int Location ID (from /api/v1/location)

HTTP Status Codes

Code Reason
200 Request successful

Store Location List

curl --location --request POST '/api/store/v1/shop/location/list' \
--form 'location_id="1"'

This endpoint shows list of all locations that have available shops.

HTTP Request

POST /api/store/v1/shop/location/list

HTTP Status Codes

Code Reason
200 Request successful

Store Cart

Store Cart Details

curl --request POST \
  --url /api/store/v1/cart/item/list

This endpoint shows list of all items of a cart.

If no session id has been passed, new cart session will be created and returned.

HTTP Request

POST /api/store/v1/cart/item/list

Input Parameters

Parameter Required Type Description
cart_session false string Cart Session ID

HTTP Status Codes

Code Reason
201 Request successful

Store Add item to cart

curl --request POST \
  --url /api/store/v1/cart/item/add

This endpoint adds or syncs a item to a cart.

If no session id has been passed, new cart session will be created.

If item is already in the cart, quantity will be updated with new value.

HTTP Request

POST /api/store/v1/cart/item/add

Input Parameters

Parameter Required Type Description
cart_session false string Cart Session ID
item_variant_id true int Item variant ID
quantity true int Quantity of the item

HTTP Status Codes

Code Reason
201 Request successful

Store Remove item from cart

curl --request POST \
  --url /api/store/v1/cart/item/remove

This endpoint removes item from a cart.

If no session id has been passed, new cart session will be created.

HTTP Request

POST /api/store/v1/cart/item/remove

Input Parameters

Parameter Required Type Description
cart_session false string Cart Session ID
item_variant_id true int Item variant ID

HTTP Status Codes

Code Reason
201 Request successful

Store Add item to cart from order

curl --request POST \
  --url /api/store/v1/cart/populate/order

This endpoint adds or syncs items from previous order.

If item is already in the cart, quantity will be updated with highest value.

HTTP Request

POST /api/store/v1/cart/populate/order

Input Parameters

Parameter Required Type Description
cart_session false string Cart Session ID
order_id true int Order ID

HTTP Status Codes

Code Reason
200 Request successful

Store Coupon

Apply Coupon to cart

curl --location --request POST '/store/v1/cart/coupon/apply' \
--form 'cart_session="SESSION"' \
--form 'code="COUPON_CODE"'

This endpoint applies a coupon code to a cart.

HTTP Request

POST /store/v1/cart/coupon/apply

Input Parameters

Parameter Required Type Description
cart_session true string Cart Session ID
code true string Coupon Code

HTTP Status Codes

Code Reason
200 Request successful
404 Coupon is not applicable

Discard Coupon from cart

curl --location --request POST '/store/v1/cart/coupon/discard' \
--form 'cart_session="SESSION"'

This endpoint discard coupon code from a cart.

HTTP Request

POST /store/v1/cart/coupon/discard

Input Parameters

Parameter Required Type Description
cart_session true string Cart Session ID

HTTP Status Codes

Code Reason
200 Request successful

Store Point

Apply Point to cart

curl --location --request POST '/store/v1/cart/point/apply' \
--form 'cart_session="SESSION"' \
--form 'point=50'

This endpoint applies a point to a cart.

HTTP Request

POST /store/v1/cart/point/apply

Input Parameters

Parameter Required Type Description
cart_session true string Cart Session ID
point true int amount of point

HTTP Status Codes

Code Reason
200 Request successful
422 Point is not applicable

Discard Point from cart

curl --location --request POST '/store/v1/cart/point/discard' \
--form 'cart_session="SESSION"'

This endpoint discard point from a cart.

HTTP Request

POST /store/v1/cart/point/discard

Input Parameters

Parameter Required Type Description
cart_session true string Cart Session ID

HTTP Status Codes

Code Reason
200 Request successful

Store Order

Submit Order for Store Items

curl --location --request POST '/api/store/v1/order/submit' \
--form 'cart_session="CART_SESSION"' \
--form 'shipping_name="John Doe"' \
--form 'shipping_email="john@example.com"' \
--form 'shipping_phone="MOBILE_NUMBER"' \
--form 'shipping_address="user adress"' \
--form 'shipping_area="mogbazar"' \
--form 'shipping_city="dhaka"' \
--form 'note="something"' \
--form 'is_cash_on_delivery="1"'

This endpoint creates an order for current cart items.

HTTP Request

POST /api/store/v1/order/submit

Input Fields

Parameter Required Type Description
cart_session required string Current Session ID
shipping_name required string Name To be used for shipping
shipping_email required string Email To be used for shipping
shipping_phone required string Phone number To be used for shipping
shipping_address required string Address To be used for shipping
shipping_area required string Area To be used for shipping
shipping_city required string City To be used for shipping
billing_name optional string Name To be used for shipping
billing_email optional string Email To be used for shipping
billing_phone optional string Phone number To be used for shipping
billing_address optional string Address To be used for shipping
billing_area optional string Area To be used for shipping
billing_city optional string City To be used for shipping
note optional string Users Note on order
prescription optional string Base64 encoded value of prescription image
store_shop_id optional int ID of a store (from /api/store/v1/shop/list)
is_cash_on_delivery required int 1 = Cash on delivery, 0 = Pre-paid

HTTP Status Codes

Code Reason
200 Successful
422 Something wrong with the input or cart

Start Payment for Store Order

curl --location --request POST '/api/store/v1/order/payment/start' \
--form 'order_id="1"'

This endpoint starts a payment transaction for store item order.

HTTP Request

POST /api/store/v1/order/payment/start

Input Fields

Parameter Required Type Description
order_id required int Order ID

HTTP Status Codes

Code Reason
200 Successful
403 Can't pay for this order
422 A required input field missing
500 Backend failed to generate payment url

Contact Us

Contact Us Form

curl --request GET \
  --url /api/v1/contact
  --form form_type_slug=contact-us
  --form name=Name
  --form email=Email
  --form phone=Phone
  --form subject=Subject
  --form message=Message

This endpoint sends email to admin about contact message & also sends an Auto-Reply email to user. .

HTTP Request

GET /api/v1/contact

Input Parameters

Parameter Required Type Description
form_type_slug true string value should be "contact-us"
name true string User full name
email true string email address
phone true string user phone number
subject true string user phone number
message true string user phone number

HTTP Status Codes

Code Reason
200 Request successful.

Report Medicine

Report Medicine Form

curl --request POST \
  --url /api/v1/report/medicine
  --form form_type_slug=medicine-report
  --form name=Name
  --form email=Email
  --form phone=Phone
  --form reportType=Wrong Picture 
  --form medicineId=121 
  --form message=Message

This endpoint sends email to admin about reported medicine & also sends an Auto-Reply email to user.

HTTP Request

POST /api/v1/report/medicine

Input Parameters

Parameter Required Type Description
form_type_slug true string value should be "medicine-report"
name true string User full name
email true string email address
phone true string user phone number
reportType true string selected report type from: (Wrong Information,Price incorrect,Wrong picture,Wrong generic,Multiple product,Other)
medicineId true int reporting medicine's Id
message true string message about medicine

HTTP Status Codes

Code Reason
200 Request successful.

Request Medicine

Request Medicine Form

curl --request POST \
  --url /api/v1/request/medicine
  --form form_type_slug=request-medicine
  --form name=Name
  --form email=Email
  --form phone=Phone
  --form reportType=Request Medicine 
  --form medicineId=121 
  --form message=Message

This endpoint sends email to admin about reported medicine & also sends an Auto-Reply email to user.

HTTP Request

POST /api/v1/request/medicine

Input Parameters

Parameter Required Type Description
form_type_slug true string value should be "request-medicine"
name true string User full name
email true string email address
phone true string user phone number
reportType true string fixed: Request Medicine
medicineId true int reporting medicine's Id
message true string message about request

HTTP Status Codes

Code Reason
200 Request successful.

Prescription Submit

Prescription-submit Form

curl --request GET \
  --url /api/v1/submit/prescription
  --form 'otp=":otp"' \
  --form form_type_slug=order-request-with-prescription
  --form name=Name
  --form phone=Phone
  --form patient_id=1
  --form prescription=prescription
  --form note=user note

This endpoint sends prescription to admin. This API requires OTP verification. Use "anonymous send otp" API to send OTP before using this API.

OTP is optional if:

HTTP Request

GET /api/v1/submit/prescription

Input Parameters

Parameter Required Type Description
otp true string OTP code
form_type_slug true string value should be "order-request-with-prescription"
name true string User full name
phone true string user phone number
patient_id false unsigned integer patients id
prescription true string Base-64 image
note true string user note

HTTP Status Codes

Code Reason
200 Request successful.

User Orders

User Order List

curl --request GET \
  --url /api/v1/user/prescriptionssubmittedForOrder/list

This endpoint shows all prescriptions submitted for order-via-prescription of logged user.

HTTP Request

GET /api/v1/user/prescriptionssubmittedForOrder/list

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized

User Orders

User Order List

curl --request POST \
  --url /api/v1/user/prescriptionssubmittedForOrder/image

This endpoint shows prescription image submitted for order-via-prescription of logged user.

HTTP Request

GET /api/v1/user/prescriptionssubmittedForOrder/image

Input Parameters

Parameter Required Type Description
id true int order by prescription ID

HTTP Status Codes

Code Reason
200 Request successful.
401 Unauthorized
422 invalid id

App link

curl --request GET \
  --url /api/v1/app/link

This endpoint sends link to latest android app via sms

HTTP Request

GET /api/v1/app/link

HTTP Status Codes

Code Reason
201 Request successful.

sitemap

sitemap

curl --request GET \
  --url /api/v1/sitemap

This endpoint returns required data to create a sitemap

HTTP Request

`GET /api/v1/sitemap

HTTP Status Codes

Code Reason
201 Request successful.

Errors

The Remedive API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your Authorization Token is wrong.
403 Forbidden
404 Not Found
405 Method Not Allowed -- You tried to access API with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
410 Gone
422 Unprocessable Entity -- Maybe you are missing a required input field!
429 Too Many Requests -- You're requesting too many APIs! Slow down!
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.