# Basics

Sendbox API are HTTP based [RESTful](https://en.wikipedia.org/wiki/Representational_state_transfer) APIs. API request and response format are in JSON. &#x20;

* All request should be issued using HTTP protocol
* All request requires authentication&#x20;
* Content type for responses will always be `application/json`&#x20;

## API Request&#x20;

To construct an API request the following components are required.&#x20;

| Component                          | Description                                                                                                                                                                                                       |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| The HTTP method                    | <p><code>GET</code>. Request  data from resource</p><p><code>POST</code> . Submit data to a resource to process </p><p><code>PUT</code> . Update a resource </p><p><code>DELETE</code> . Deletes a resource  </p> |
| The URL to the staging API service | <https://sandbox.staging.sendbox.co/shipping>                                                                                                                                                                     |
| The URL to the live API service    | [https://live.sendbox.co/shipping/](https://api.sendbox.co/shipping/)                                                                                                                                             |
| HTTP request header                | Includes the `Content-type` header with the value `application/json`                                                                                                                                              |
| A JSON request body                | required for making a request                                                                                                                                                                                     |

{% hint style="info" %}
**You are advised to make all test request on the staging API and ensure there are no errors before you deploy to users using the live API**&#x20;
{% endhint %}

## API response&#x20;

This describes the response format for Sendbox API&#x20;

Sendbox API calls return HTTP status codes in the response headers. API calls also return JSON response bodies that include information about the resource.

Each REST API request returns a success or error HTTP status code.we will talk about errors latter in the docs but for now, we will focus on success.&#x20;

| status code | Description                                                                  |
| ----------- | ---------------------------------------------------------------------------- |
| 200         | A successful `GET` request                                                   |
| 201         | A successful `POST`, `PUT` request means your request is created or updated. |

## Fetching Data

Fetching data means you will like to retrieve data from a resource. Most times, you are required to set header parameters usually the content-type and the authorization key and make a get request to an endpoint. For example, let say we want to get all shipments, we can simply make a get request and a successful request will come back with a 200 status code and return all the shipments in JSON format.

## Fetch Data

<https://sandbox.staging.sendbox.co/shipping>

[`https://live.sendbox.co/shipping/shipments`<br>](<https://api.sendbox.co/shipping/shipments&#xA;>)

In this example, we are making a get request to shipment endpoint to fetch all shipments&#x20;

{% tabs %}
{% tab title="Request" %}

## Headers&#x20;

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | String | Authorization-key |
| Content-type  | String | application/json  |
| {% endtab %}  |        |                   |

{% tab title="Response" %}
200: OK&#x20;

The response body is always in `JSON` format. It contains all shipments details&#x20;

```
{
    "next_page": "?page=2",
    "prev": null,
    "page_by": {
        "total": 79,
        "pages": 4,
        "next": 2,
        "per_page": 20,
        "prev": null,
        "page": 1
    },
    
     "print_string": "U0VMRUNUIHNoaXBtZW50LmlkIEFTIHNoaXBtZW50X2lkLCBzaGlwbWVudC5jb2RlIEFTIHNoaXBtZW50X2NvZGUsIHNoaXBtZW50LnJlZmVyZW5jZV9jb2RlIEFTIHNoaXBtZW50X3JlZmVyZW5jZV9jb2RlLCBzaGlwbWVudC5ub3RlcyBBUyBzaGlwbWVudF9ub3Rlcywgc2hpcG1lbnQuYmFyY29kZSBBUyBzaGlwbWVudF9iYXJjb2RlLCBzaGlwbWVudC5hd2Jfbm8gQVMgc2hpcG1lbnRfYXdiX25vLCBzaGlwbWVudC5hd2JfZW5kcG9pbnQgQVMgc2hpcG1lbnRfYXdiX2VuZHBvaW50LCBzaGlwbWVudC5wYWNrYWdlX3R5cGVfY29kZSBBUyBzaGlwbWVudF9wYWNrYWdlX3R5cGVfY29kZSwgc2hpcG1lbnQub3JpZ2luX21lcmNoYW50X2lkIEFTIHNoaXBtZW50X29yaWdpbl9tZXJjaGFudF9pZCwgc2hpcG1lbnQub3JpZ2luX25hbWUgQVMgc2hpcG1lbnRfb3JpZ2luX25hbWUsIHNoaXBtZW50Lm9yaWdpbl9waG9uZSBBUyBzaGlwbWVudF9vcmlnaW5fcGhvbmUsIHNoaXBtZW50Lm9yaWdpbl9lbWFpbCBBUyBzaGlwbWVudF9vcmlnaW5fZW1haWwsIHNoaXBtZW50Lm9yaWdpbl9zdHJlZXQgQVMgc2hpcG1lbnRfb3JpZ2luX3N0cmVldCwgc2hpcG1lbnQub3JpZ2luX2NpdHkgQVMgc2hpcG1lbnRfb3JpZ2luX2NpdHksIHNoaXBtZW50Lm9yaWdpbl9jaXR5X2lkIEFTIHNoaXBtZW50X29yaWdpbl9jaXR5X2lkLCBzaGlwbWVudC5vcmlnaW5fbGF0IEFTIHNoaXBtZW50X29yaWdpbl9sYXQsIHNoaXBtZW50Lm9yaWdpbl9sbmcgQVMgc2hpcG1lbnRfb3JpZ2luX2xuZywgc2hpcG1lbnQub3JpZ2luX3Bvc3RfY29kZSBBUyBzaGlwbWVudF9vcmlnaW5fcG9zdF9jb2RlLCBzaGlwbWVudC5vcmlnaW5fc3RhdGVfY29kZSBBUyBzaGlwbWVudF9vcmlnaW5fc3RhdGVfY29kZSwgc2hpcG1lbnQub3JpZ2luX2NvdW50cnlfY29kZSBBUyBzaGlwbWVudF9vcmlnaW5fY291bnRyeV9jb2RlLCBzaGlwbWVudC5kZXN0aW5hdGlvbl9tZXJjaGFudF9pZCBBUyBzaGlwbWVudF9kZXN0aW5hdGlvbl9tZXJjaGFudF9pZCwgc2hpcG1lbnQuZGVzdGluYXRpb25fbmFtZSBBUyBzaGlwbWVudF9kZXN0aW5hdGlvbl9uYW1lLCBzaGlwbWVudC5kZXN0aW5hdGlvbl9waG9uZSBBUyBzaGlwbWVudF9kZXN0aW5hdGlvbl9waG9uZSwgc2hpcG1lbnQuZGVzdGluYXRpb25fZW1haWwgQVMgc2hpcG1lbnRfZGVzdGluYXRpb25fZW1haWwsIHNoaXBtZW50LmRlc3RpbmF0aW9uX3N0cmVldCBBUyBzaGlwbWVudF9kZXN0aW5hdGlvbl9zdHJlZXQsIHNoaXBtZW50LmRlc3RpbmF0aW9uX2NpdHkgQVMgc2hpcG1lbnRfZGVzdGluYXRpb25fY2l0eSwgc2hpcG1lbnQuZGVzdGluYXRpb25fbGF0IEFTIHNoaXBtZW50X2Rlc3RpbmF0aW9uX2xhdCwgc2hpcG1lbnQuZGVzdGluYXRpb25fbG5nIEFTIHNoaXBtZW50X2Rlc3RpbmF0aW9uX2xuZywgc2hpcG1lbnQuZGVzdGluYXRpb25fcG9zdF9jb2RlIEFTIHNoaXBtZW50X2Rlc3RpbmF0aW9uX3Bvc3RfY29kZSwgc2hpcG1lbnQuZGVzdGluYXRpb25fc3RhdGVfY29kZSBBUyBzaGlwbWVudF9kZXN0aW5hdGlvbl9zdGF0ZV9jb2RlLCBzaGlwbWVudC5kZXN0aW5hdGlvbl9jb3VudHJ5X2NvZGUgQVMgc2hpcG1lbnRfZGVzdGluYXRpb25fY291bnRyeV9jb2RlLCBzaGlwbWVudC50aW1lX3NjaGVkdWxlX2NvZGUgQVMgc2hpcG1lbnRfdGltZV9zY2hlZHVsZV9jb2RlLCBzaGlwbWVudC5hY2NlcHRfdmFsdWVfb25fZGVsaXZlcnkgQVMgc2hpcG1lbnRfYWNjZXB0X3ZhbHVlX29uX2RlbGl2ZXJ5LCBzaGlwbWVudC50b3RhbF92YWx1ZSBBUyBzaGlwbWVudF90b3RhbF92YWx1ZSwgc2hpcG1lbnQuYW1vdW50X3RvX3JlY2VpdmUgQVMgc2hpcG1lbnRfYW1vdW50X3RvX3JlY2VpdmUsIHNoaXBtZW50LnBpY2t1cF9ldGEgQVMgc2hpcG1lbnRfcGlja3VwX2V0YSwgc2hpcG1lbnQubGFzdF9kaXNwYXRjaF90aW1lIEFTIHNoaXBtZW50X2xhc3RfZGlzcGF0Y2hfdGltZSwgc2hpcG1lbnQuYWNjZXB0X2N1c3RvbV9mZWUgQVMgc2hpcG1lbnRfYWNjZXB0X2N1c3RvbV9mZWUsIHNoaXBtZW50LnJhdGVfZmVlIEFTIHNoaXBtZW50X3JhdGVfZmVlLCBzaGlwbWVudC5jdXN0b21fZmVlIEFTIHNoaXBtZW50X2N1c3RvbV9mZWUsIHNoaXBtZW50LmRpc2NvdW50X2ZlZSBBUyBzaGlwbWVudF9kaXNjb3VudF9mZWUsIHNoaXBtZW50LmZlZSBBUyBzaGlwbWVudF9mZWUsIHNoaXBtZW50LmZlZV9iYWxhbmNlIEFTIHNoaXBtZW50X2ZlZV9iYWxhbmNlLCBzaGlwbWVudC5wYWlkIEFTIHNoaXBtZW50X3BhaWQsIHNoaXBtZW50LnByaW9yaXR5X3BpY2t1cF9mZWUgQVMgc2hpcG1lbnRfcHJpb3JpdHlfcGlja3VwX2ZlZSwgc2hpcG1lbnQuZGlzY291bnQgQVMgc2hpcG1lbnRfZGlzY291bnQsIHNoaXBtZW50LnZhdCBBUyBzaGlwbWVudF92YXQsIHNoaXBtZW50LmZlZV9wYXltZW50X3N0YXR1c19jb2RlIEFTIHNoaXBtZW50X2ZlZV9wYXltZW50X3N0YXR1c19jb2RlLCBzaGlwbWVudC5mZWVfcGF5bWVudF9jaGFubmVsX2NvZGUgQVMgc2hpcG1lbnRfZmVlX3BheW1lbnRfY2hhbm5lbF9jb2RlLCBzaGlwbWVudC5wYXlfb25fZGVsaXZlcnlfbWV0aG9kX2NvZGUgQVMgc2hpcG1lbnRfcGF5X29uX2RlbGl2ZXJ5X21ldGhvZF9jb2RlLCBzaGlwbWVudC50cmFuc2FjdGlvbl9jb2RlIEFTIHNoaXBtZW50X3RyYW5zYWN0aW9uX2NvZGUsIHNoaXBtZW50LnRyYW5zYWN0aW9uX2lkIEFTIHNoaXBtZW50X3RyYW5zYWN0aW9uX2lkLCBzaGlwbWVudC5pbnN0cnVjdGlvbl9jb2RlIEFTIHNoaXBtZW50X2luc3RydWN0aW9uX2NvZGUsIHNoaXBtZW50Lmxlbmd0aCBBUyBzaGlwbWVudF9sZW5ndGgsIHNoaXBtZW50LndpZHRoIEFTIHNoaXBtZW50X3dpZHRoLCBzaGlwbWVudC5oZWlnaHQgQVMgc2hpcG1lbnRfaGVpZ2h0LCBzaGlwbWVudC53ZWlnaHQgQVMgc2hpcG1lbnRfd2VpZ2h0LCBzaGlwbWVudC51c2VyX3dlaWdodCBBUyBzaGlwbWVudF91c2VyX3dlaWdodCwgc2hpcG1lbnQucXVhbnRpdHkgQVMgc2hpcG1lbnRfcXVhbnRpdHksIHNoaXBtZW50LmlzX2ZyYWdpbGUgQVMgc2hpcG1lbnRfaXNfZnJhZ2lsZSwgc2hpcG1lbnQuaXNfc3BpbGxhYmxlIEFTIHNoaXBtZW50X2lzX3NwaWxsYWJsZSwgc2hpcG1lbnQuaXNfY29uZmlkZW50aWFsIEFTIHNoaXBtZW50X2lzX2NvbmZpZGVudGlhbCwgc2hpcG1lbnQuY291cmllcl9pZCBBUyBzaGlwbWVudF9jb3VyaWVyX2lkLCBzaGlwbWVudC5hZ2VudF9pZCBBUyBzaGlwbWVudF9hZ2VudF9pZCwgc2hpcG1lbnQuY2xpZW50X2lkIEFTIHNoaXBtZW50X2NsaWVudF9pZCwgc2hpcG1lbnQubWVyY2hhbnRfaWQgQVMgc2hpcG1lbnRfbWVyY2hhbnRfaWQsIHNoaXBtZW50LmNoYW5uZWxfY29kZSBBUyBzaGlwbWVudF9jaGFubmVsX2NvZGUsIHNoaXBtZW50LnBpY2t1cF9kYXRlIEFTIHNoaXBtZW50X3BpY2t1cF9kYXRlLCBzaGlwbWVudC5pbmNvbWluZ19vcHRpb25fY29kZSBBUyBzaGlwbWVudF9pbmNvbWluZ19vcHRpb25fY29kZSwgc2hpcG1lbnQuZGVsaXZlcnlfdHlwZV9jb2RlIEFTIHNoaXBtZW50X2RlbGl2ZXJ5X3R5cGVfY29kZSwgc2hpcG1lbnQuZGVsaXZlcnlfcHJpb3JpdHlfY29kZSBBUyBzaGlwbWVudF9kZWxpdmVyeV9wcmlvcml0eV9jb2RlLCBzaGlwbWVudC5wYXltZW50X29wdGlvbl9jb2RlIEFTIHNoaXBtZW50X3BheW1lbnRfb3B0aW9uX2NvZGUsIHNoaXBtZW50Lm1pbl9xdW90ZWRfZmVlIEFTIHNoaXBtZW50X21pbl9xdW90ZWRfZmVlLCBzaGlwbWVudC5tYXhfcXVvdGVkX2ZlZSBBUyBzaGlwbWVudF9tYXhfcXVvdGVkX2ZlZSwgc2hpcG1lbnQuZGlzY291bnRfbWluX3F1b3RlZF9mZWUgQVMgc2hpcG1lbnRfZGlzY291bnRfbWluX3F1b3RlZF9mZWUsIHNoaXBtZW50LmRpc2NvdW50X21heF9xdW90ZWRfZmVlIEFTIHNoaXBtZW50X2Rpc2NvdW50X21heF9xdW90ZWRfZmVlLCBzaGlwbWVudC5zdGF0dXNfY29kZSBBUyBzaGlwbWVudF9zdGF0dXNfY29kZSwgc2hpcG1lbnQuZGVsaXZlcnlfY2FsbGJhY2sgQVMgc2hpcG1lbnRfZGVsaXZlcnlfY2FsbGJhY2ssIHNoaXBtZW50LmZpbmFuY2VfY2FsbGJhY2sgQVMgc2hpcG1lbnRfZmluYW5jZV9jYWxsYmFjaywgc2hpcG1lbnQuc2VsZWN0ZWRfY291cmllcl9pZCBBUyBzaGlwbWVudF9zZWxlY3RlZF9jb3VyaWVyX2lkLCBzaGlwbWVudC5jb3VyaWVyX2lkcyBBUyBzaGlwbWVudF9jb3VyaWVyX2lkcywgc2hpcG1lbnQuY2FuY2VsX3JlYXNvbiBBUyBzaGlwbWVudF9jYW5jZWxfcmVhc29uLCBzaGlwbWVudC5iaWxsaW5nX2NvZGUgQVMgc2hpcG1lbnRfYmlsbGluZ19jb2RlLCBzaGlwbWVudC5wbGF0Zm9ybV9pZCBBUyBzaGlwbWVudF9wbGF0Zm9ybV9pZCwgc2hpcG1lbnQuY3VycmVudF9jb25uZWN0b3JfY29kZSBBUyBzaGlwbWVudF9jdXJyZW50X2Nvbm5lY3Rvcl9jb2RlLCBzaGlwbWVudC5jdXJyZW50X2F3YiBBUyBzaGlwbWVudF9jdXJyZW50X2F3Yiwgc2hpcG1lbnQubGFiZWxfaW1hZ2UgQVMgc2hpcG1lbnRfbGFiZWxfaW1hZ2UsIHNoaXBtZW50Lmludm9pY2VfaW1hZ2UgQVMgc2hpcG1lbnRfaW52b2ljZV9pbWFnZSwgc2hpcG1lbnQudHJhbnNmZXJfbGFiZWxfaW1hZ2UgQVMgc2hpcG1lbnRfdHJhbnNmZXJfbGFiZWxfaW1hZ2UsIHNoaXBtZW50LnRyYW5zZmVyX2ludm9pY2VfaW1hZ2UgQVMgc2hpcG1lbnRfdHJhbnNmZXJfaW52b2ljZV9pbWFnZSwgc2hpcG1lbnQuZGVsaXZlcnlfbGFiZWxfaW1hZ2UgQVMgc2hpcG1lbnRfZGVsaXZlcnlfbGFiZWxfaW1hZ2UsIHNoaXBtZW50LnBpY2t1cF9udW1iZXIgQVMgc2hpcG1lbnRfcGlja3VwX251bWJlciwgc2hpcG1lbnQuY29ubmVjdG9yX3BpY2t1cF9zY2hlZHVsZV9pZCBBUyBzaGlwbWVudF9jb25uZWN0b3JfcGlja3VwX3NjaGVkdWxlX2lkLCBzaGlwbWVudC5hY2NvdW50X3R5cGUgQVMgc2hpcG1lbnRfYWNjb3VudF90eXBlLCBzaGlwbWVudC50ZXN0IEFTIHNoaXBtZW50X3Rlc3QsIHNoaXBtZW50LmlzX2ZpcnN0X3NoaXBtZW50IEFTIHNoaXBtZW50X2lzX2ZpcnN0X3NoaXBtZW50LCBzaGlwbWVudC52ZWhpY2xlX3R5cGVfY29kZSBBUyBzaGlwbWVudF92ZWhpY2xlX3R5cGVfY29kZSwgc2hpcG1lbnQucGlja3VwX2NvZGUgQVMgc2hpcG1lbnRfcGlja3VwX2NvZGUsIHNoaXBtZW50Lmhhc193YXliaWxsX2Vycm9yIEFTIHNoaXBtZW50X2hhc193YXliaWxsX2Vycm9yLCBzaGlwbWVudC53YXliaWxsX2Vycm9yIEFTIHNoaXBtZW50X3dheWJpbGxfZXJyb3IsIHNoaXBtZW50LmVzY2FsYXRpb25fb3BlbmVkIEFTIHNoaXBtZW50X2VzY2FsYXRpb25fb3BlbmVkLCBzaGlwbWVudC5kaXNwdXRlX29wZW5lZCBBUyBzaGlwbWVudF9kaXNwdXRlX29wZW5lZCwgc2hpcG1lbnQuc2FtZV9kYXkgQVMgc2hpcG1lbnRfc2FtZV9kYXksIHNoaXBtZW50LmZlZV9iZWZvcmVfY291cG9uIEFTIHNoaXBtZW50X2ZlZV9iZWZvcmVfY291cG9uLCBzaGlwbWVudC5jb3Vwb25fY29kZSBBUyBzaGlwbWVudF9jb3Vwb25fY29kZSwgc2hpcG1lbnQuY291cG9uX2lkIEFTIHNoaXBtZW50X2NvdXBvbl9pZCwgc2hpcG1lbnQucmVsZWFzZWRfYnlfbmFtZSBBUyBzaGlwbWVudF9yZWxlYXNlZF9ieV9uYW1lLCBzaGlwbWVudC5yZWxlYXNlZF9ieV9waG9uZSBBUyBzaGlwbWVudF9yZWxlYXNlZF9ieV9waG9uZSwgc2hpcG1lbnQucmVsZWFzZWRfYnlfc2lnbmF0dXJlIEFTIHNoaXBtZW50X3JlbGVhc2VkX2J5X3NpZ25hdHVyZSwgc2hpcG1lbnQucmVxdWlyZXNfZXNjcm93IEFTIHNoaXBtZW50X3JlcXVpcmVzX2VzY3Jvdywgc2hpcG1lbnQudGFyZ2V0IEFTIHNoaXBtZW50X3RhcmdldCwgc2hpcG1lbnQuYW1vdW50IEFTIHNoaXBtZW50X2Ftb3VudCwgc2hpcG1lbnQuY3VycmVuY3lfY29kZSBBUyBzaGlwbWVudF9jdXJyZW5jeV9jb2RlLCBzaGlwbWVudC5lc2Nyb3dfcmVmZXJlbmNlIEFTIHNoaXBtZW50X2VzY3Jvd19yZWZlcmVuY2UsIHNoaXBtZW50LmFwcGxpZWRfY3JlZGl0cyBBUyBzaGlwbWVudF9hcHBsaWVkX2NyZWRpdHMsIHNoaXBtZW50LmFwcGxpZWRfcmV3YXJkIEFTIHNoaXBtZW50X2FwcGxpZWRfcmV3YXJkLCBzaGlwbWVudC5yZXdhcmRfdmFsdWUgQVMgc2hpcG1lbnRfcmV3YXJkX3ZhbHVlLCBzaGlwbWVudC5wYWNrYWdlX2NvdXJpZXJfaWQgQVMgc2hpcG1lbnRfcGFja2FnZV9jb3VyaWVyX2lkLCBzaGlwbWVudC5wYWNrYWdlX2FnZW50X2lkIEFTIHNoaXBtZW50X3BhY2thZ2VfYWdlbnRfaWQsIHNoaXBtZW50LnBhY2thZ2VfcmVjZWl2ZWRfYnkgQVMgc2hpcG1lbnRfcGFja2FnZV9yZWNlaXZlZF9ieSwgc2hpcG1lbnQucGFja2FnZV9yZWNlaXZlZF9ieV9waG9uZSBBUyBzaGlwbWVudF9wYWNrYWdlX3JlY2VpdmVkX2J5X3Bob25lLCBzaGlwbWVudC5wYWNrYWdlX3JlY2VpdmVkX2J5X3NpZ25hdHVyZSBBUyBzaGlwbWVudF9wYWNrYWdlX3JlY2VpdmVkX2J5X3NpZ25hdHVyZSwgc2hpcG1lbnQucGFja2FnZV9kYXRlX2NyZWF0ZWQgQVMgc2hpcG1lbnRfcGFja2FnZV9kYXRlX2NyZWF0ZWQsIHNoaXBtZW50LnBhY2thZ2VfbGFzdF91cGRhdGVkIEFTIHNoaXBtZW50X3BhY2thZ2VfbGFzdF91cGRhdGVkLCBzaGlwbWVudC5wYWNrYWdlX2RhdGVfcmVjZWl2ZWQgQVMgc2hpcG1lbnRfcGFja2FnZV9kYXRlX3JlY2VpdmVkLCBzaGlwbWVudC5wYWNrYWdlX3JlamVjdGlvbl9yZWFzb24gQVMgc2hpcG1lbnRfcGFja2FnZV9yZWplY3Rpb25fcmVhc29uLCBzaGlwbWVudC5wYWNrYWdlX2RlbGl2ZXJ5X2ZlZSBBUyBzaGlwbWVudF9wYWNrYWdlX2RlbGl2ZXJ5X2ZlZSwgc2hpcG1lbnQucGFja2FnZV9kZWxpdmVyeV9zdGF0dXNfY29kZSBBUyBzaGlwbWVudF9wYWNrYWdlX2RlbGl2ZXJ5X3N0YXR1c19jb2RlLCBzaGlwbWVudC5wYWNrYWdlX2Z1bGZpbG1lbnRfc3RhdHVzX2NvZGUgQVMgc2hpcG1lbnRfcGFja2FnZV9mdWxmaWxtZW50X3N0YXR1c19jb2RlLCBzaGlwbWVudC5wYWNrYWdlX2RlbGl2ZXJ5X2RhdGUgQVMgc2hpcG1lbnRfcGFja2FnZV9kZWxpdmVyeV9kYXRlLCBzaGlwbWVudC5wYWNrYWdlX2RlbGl2ZXJ5X2V0YSBBUyBzaGlwbWVudF9wYWNrYWdlX2RlbGl2ZXJ5X2V0YSwgc2hpcG1lbnQucGFja2FnZV9kZWxpdmVyeV9hdHRlbXB0IEFTIHNoaXBtZW50X3BhY2thZ2VfZGVsaXZlcnlfYXR0ZW1wdCwgc2hpcG1lbnQucGFja2FnZV9sYWJlbF9pbWFnZSBBUyBzaGlwbWVudF9wYWNrYWdlX2xhYmVsX2ltYWdlLCBzaGlwbWVudC5wYWNrYWdlX2ludm9pY2VfaW1hZ2UgQVMgc2hpcG1lbnRfcGFja2FnZV9pbnZvaWNlX2ltYWdlLCBzaGlwbWVudC5tZXJjaGFudF9kaXJlY3Rpb24gQVMgc2hpcG1lbnRfbWVyY2hhbnRfZGlyZWN0aW9uLCBzaGlwbWVudC5kcm9wX29mZl9sb2NhdGlvbl9pZCBBUyBzaGlwbWVudF9kcm9wX29mZl9sb2NhdGlvbl9pZCwgc2hpcG1lbnQuc2VsZWN0ZWRfZHJvcF9vZmZfbG9jYXRpb25faWQgQVMgc2hpcG1lbnRfc2VsZWN0ZWRfZHJvcF9vZmZfbG9jYXRpb25faWQsIHNoaXBtZW50LmN1c3RvbWVyX2Ryb3Bfb2ZmIEFTIHNoaXBtZW50X2N1c3RvbWVyX2Ryb3Bfb2ZmLCBzaGlwbWVudC5jcmVkaXRzX3RyYW5zYWN0aW9uX2lkIEFTIHNoaXBtZW50X2NyZWRpdHNfdHJhbnNhY3Rpb25faWQsIHNoaXBtZW50Lmluc3VyYW5jZV9vcHRpb25fY29kZSBBUyBzaGlwbWVudF9pbnN1cmFuY2Vfb3B0aW9uX2NvZGUsIHNoaXBtZW50Lmluc3VyYW5jZV9mZWUgQVMgc2hpcG1lbnRfaW5zdXJhbmNlX2ZlZSwgc2hpcG1lbnQuaW5zdXJhbmNlX3ZhbHVlIEFTIHNoaXBtZW50X2luc3VyYW5jZV92YWx1ZSwgc2hpcG1lbnQuZnJhbmNoaXNlX2lkIEFTIHNoaXBtZW50X2ZyYW5jaGlzZV9pZCwgc2hpcG1lbnQucGFja2FnZV9jb25uZWN0b3JfdGFycmlmIEFTIHNoaXBtZW50X3BhY2thZ2VfY29ubmVjdG9yX3RhcnJpZiwgc2hpcG1lbnQucGFja2FnZV9jb25uZWN0b3JfZGlzY291bnQgQVMgc2hpcG1lbnRfcGFja2FnZV9jb25uZWN0b3JfZGlzY291bnQsIHNoaXBtZW50LnBhY2thZ2VfY29ubmVjdG9yX3ZhdCBBUyBzaGlwbWVudF9wYWNrYWdlX2Nvbm5lY3Rvcl92YXQsIHNoaXBtZW50LnBhY2thZ2VfY29ubmVjdG9yX2ZvcndhcmluZ19jaGFyZ2UgQVMgc2hpcG1lbnRfcGFja2FnZV9jb25uZWN0b3JfZm9yd2FyaW5nX2NoYXJnZSwgc2hpcG1lbnQucGFja2FnZV9jb25uZWN0b3JfYW1vdW50X2R1ZSBBUyBzaGlwbWVudF9wYWNrYWdlX2Nvbm5lY3Rvcl9hbW91bnRfZHVlLCBzaGlwbWVudC5wYWNrYWdlX2Nvbm5lY3Rvcl93ZWlnaHQgQVMgc2hpcG1lbnRfcGFja2FnZV9jb25uZWN0b3Jfd2VpZ2h0LCBzaGlwbWVudC5wYWNrYWdlX2Nvbm5lY3Rvcl9kaW1lbnNpb25fd2VpZ2h0IEFTIHNoaXBtZW50X3BhY2thZ2VfY29ubmVjdG9yX2RpbWVuc2lvbl93ZWlnaHQsIHNoaXBtZW50LnBhY2thZ2VfY29ubmVjdG9yX2JpbGxhYmxlX3dlaWdodCBBUyBzaGlwbWVudF9wYWNrYWdlX2Nvbm5lY3Rvcl9iaWxsYWJsZV93ZWlnaHQsIHNoaXBtZW50LnBhY2thZ2VfY29ubmVjdG9yX290aGVyX2NoYXJnZSBBUyBzaGlwbWVudF9wYWNrYWdlX2Nvbm5lY3Rvcl9vdGhlcl9jaGFyZ2UsIHNoaXBtZW50LnBhY2thZ2VfY29ubmVjdG9yX290aGVyX2NoYXJnZV9yZWFzb24gQVMgc2hpcG1lbnRfcGFja2FnZV9jb25uZWN0b3Jfb3RoZXJfY2hhcmdlX3JlYXNvbiwgc2hpcG1lbnQubGFzdF91cGRhdGVkIEFTIHNoaXBtZW50X2xhc3RfdXBkYXRlZCwgc2hpcG1lbnQuZGF0ZV9jcmVhdGVkIEFTIHNoaXBtZW50X2RhdGVfY3JlYXRlZCAKRlJPTSBzaGlwbWVudCAKV0hFUkUgc2hpcG1lbnQudGVzdCAhPSB0cnVlIEFORCBzaGlwbWVudC5zdGF0dXNfY29kZSBJTiAoJShzdGF0dXNfY29kZV8xKXMsICUoc3RhdHVzX2NvZGVfMilzLCAlKHN0YXR1c19jb2RlXzMpcykgQU5EIHNoaXBtZW50Lm1lcmNoYW50X2lkID0gJShtZXJjaGFudF9pZF8xKXMgT1JERVIgQlkgc2hpcG1lbnQuZGF0ZV9jcmVhdGVkIERFU0M=",
       "results": [
        {
            "destination_contact_phone": "08012345678",
            "code": "0006320484",
            "status_code": "drafted",
            "height": 0,
            "time_schedule": {
                "code": "anytime",
                "name": "Anytime"
            },
            "amount": null,
            "is_spillable": false,
            "narration": null,
            "owner": "Sendbox",
            "destination_address": "20 Oregun Ikeja Ikeja Lagos Nigeria",
            "destination_name": "Johnny English",
            "incoming_option": {
                "code": "pickup",
                "name": "Pickup"
            },
            "payment_options": null,
            "origin_city": "Lagos",
            "width": 0,
            "package_delivery_attempt": 0,
            "short_origin_address": "Lagos Lagos Nigeria",
            "origin_phone": "0801234567890",
            "package_received_by": null,
            "destination_city": "Ikeja",
            "package_delivery_status_code": null,
            "recurrent_cards": [],
            "package_label_image": null,
            "origin_state": {
                "code": "LOS",
                "name": "Lagos"
            },
            "has_waybill_error": false,
            "insurance_option_code": null,
            "pk": "894688",
            "package_invoice_image": null,
            "transaction_id": null,
            "merchant": {
                "username": null,
                "email": "Johndoe@gmail.com",
                "id": 10383,
                "phone": "081234567890",
                "name": "John"
            },
            "delivery_priority": {
                "code": "next_day",
                "name": "Next Day"
            },
            "payment_option": {
                "code": null,
                "name": null
            },
            "courier": {
                "name": "Sixth Gear Logistics"
            },
            "total_value": 90,
            "package_fulfilment_status_code": null,
            "origin_address": "20 Old Yaba Road Lagos Lagos Lagos Nigeria",
            "package_agent": {
                "username": null,
                "email": null,
                "id": 0,
                "phone": null,
                "name": null
            },
            "min_quoted_fee": 1015,
            "pickup_attempts": [],
            "origin_state_code": "LOS",
            "package_type_code": null,
            "max_quoted_fee": 1015,
            "tracking": {
                "destination_country": null,
                "status": null,
                "origin_city": null,
                "destination_city": null,
                "origin_name": null,
                "destination_name": null,
                "current_awb": null,
                "origin_country": null
            },
            "client_id": 0,
            "destination_email": "janedoe@gmail.com",
            "origin_contact_phone": "080123456789",
            "package_delivery_fee": 0,
            "origin_post_code": null,
            "coupon_description": null,
            "possible_actions": [
                {
                    "code": "pay",
                    "name": "Pay"
                },
                {
                    "code": "cancel",
                    "name": "Cancel"
                }
            ],
            "notes": null,
            "current_status": {
                "code": "drafted",
                "name": "On Hold"
            },
            "use_selected_rate": null,
            "destination_street": "20 Oregun Ikeja",
            "package_delivery_date": null,
            "reference_code": "74",
            "selected_rate_id": null,
            "pod": "Prepaid",
            "destination_state": {
                "code": "LOS",
                "name": "Lagos"
            },
            "shipment_id": null,
            "origin_city_id": 1175,
            "domain": null,
            "package_type": {
                "code": null,
                "name": null
            },
            "last_updated": "2019-11-15T14:41:06.185519",
            "weight": 0,
            "amount_to_receive": 1263.72,
            "destination_state_code": "LOS",
            "sensitivity": "",
            "package_fulfilment_status": {
                "code": null,
                "name": null
            },
            "package_delivery_eta": null,
            "origin_country": {
                "code": "NG",
                "name": "Nigeria"
            },
            "package_courier_id": null,
            "delivery_priority_code": "next_day",
            "origin_country_code": "NG",
            "package_agent_id": 0,
            "package_date_received": null,
            "package_delivery_status": {
                "code": null,
                "name": null
            },
            "has_waybill": null,
            "delivery_type_code": "last_mile",
            "short_destination_address": "Ikeja Lagos Nigeria",
            "pickup_courier": {
                "status": null,
                "courier_name": null
            },HP
```

{% endtab %}
{% endtabs %}

## Posting Data

Posting data is a little different from fetching data. here you are required to make a post request to the endpoint and pass in a body of JSON data you would like to post. For example, let's say you want to get delivery quotes for a shipment. You simply make a post request to the delivery quotes endpoint this returns a status code 201 and quotes of that shipments in JSON format.&#x20;

JSON body sample to make a post request

```
{
"origin_country":"Nigeria",
"origin_country_code":"NG", 
"origin_state" : "Lagos",
"destination_country":"Nigeria",
"destination_country_code":" ",
"destination_state": "Abuja",
"weight" : 3,
"destination_state_code":"ABV",
"origin_state_code": "LOS"
}
```

## Post Data

<https://sandbox.staging.sendbox.co/shipping>/shipment\_delivery\_quote

`https://live.sendbox.co/shipping/shipment_delivery_quote`

In this example, we are making a post request to the shipment\_delivery\_quote endpoint.

{% tabs %}
{% tab title="Request" %}

### Headers

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | String | Authorization-key |
| Content-type  | String | application/json  |

### Body Parameters&#x20;

| Name                       | Type   | Description            |
| -------------------------- | ------ | ---------------------- |
| origin\_country            | String | senders country        |
| origin\_country\_code      | String | senders country code   |
| origin\_state              | String | senders state          |
| origin\_state\_code        | String | senders state code     |
| destination\_country       | String | recipient country      |
| destination\_country\_code | String | recipient country code |
| destination\_state         | String | recipient state        |
| destination\_state\_code   | String | recipient state code   |
| weight                     | float  | weight of package      |
| {% endtab %}               |        |                        |

{% tab title="Response" %}
201: Created&#x20;

```
{
  "credit_amount": null,
  "payment_option": {
    "code": null,
    "name": null
  },
  "weight": 8.1,
  "total_value": 0,
  "destination_state_code": "LOS",
  "min_quoted_fee": 1000,
  "origin_state_code": "LOS",
  "time_schedule_code": "anytime",
  "incoming_option_code": "pickup",
  "max_quoted_fee": 8783.775,
  "delivery_priority_code": "next_day",
  "accept_value_on_delivery": null,
  "selected_rate": {
    "discount": null,
    "courier_id": 0,
    "fee": null,
    "name": null,
    "courier": {
      "name": null
    },
    "return_fee": null,
    "actual_fee": null,
    "fee_with_return": null,
    "id": null
  },
  "origin_country_code": "NG",
  "payment_options": [
    {
      "pk": "book_on_hold",
      "brand": "wallet",
      "code": "book_on_hold",
      "mask": "Book on hold",
      "friendly_brand": "You will be debited from your wallet"
    }
  ],
  "origin_city": "Ketu",
  "total_quantity": 0,
  "delivery_type_code": "last_mile",
  "payment_option_code": null,
  "destination_city": "zone 5",
  "destination_country_code": "NG",
  "recurrent_cards": [
    {
      "pk": "book_on_hold",
      "brand": "wallet",
      "mask": "Book on hold",
      "id": null,
      "friendly_brand": "You will be debited from your wallet"
    }
  ],
  "rates": [
    {
      "discount": null,
      "courier_id": 3,
      "fee": 1000,
      "name": "Sixth Gear Logistics",
      "courier": {
        "name": "Sixth Gear Logistics"
      },
      "return_fee": 50,
      "actual_fee": null,
      "fee_with_return": 1050,
      "id": "3_1000.0"
    },
    {
      "discount": null,
      "courier_id": 19,
      "fee": 2200,
      "name": "Parcel Line Logistics",
      "courier": {
        "name": "Parcel Line Logistics"
      },
      "return_fee": 50,
      "actual_fee": null,
      "fee_with_return": 2250,
      "id": "19_2200.0"
    },
    {
      "discount": null,
      "courier_id": 20,
      "fee": 1800,
      "name": "CRS Logistics",
      "courier": {
        "name": "CRS Logistics"
      },
      "return_fee": 50,
      "actual_fee": null,
      "fee_with_return": 1850,
      "id": "20_1800.0"
    },
    {
      "discount": null,
      "courier_id": 22,
      "fee": 8783.775,
      "name": "DHL",
      "courier": {
        "name": "DHL"
      },
      "return_fee": 0,
      "actual_fee": null,
      "fee_with_return": null,
      "id": "22"
    }
  ],
  "selected_rate_id": null,
  "use_selected_rate": null,
  "vat": null
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sendbox.co/api/basics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
