MENU navbar-image
bash php javascript

Introduction

An API for fetching APS rates and created labels with your associated AllProShipping account.

This documentation aims to provide all the information you need to work with our API.

Base URL

https://api.allproshipping.com

Authenticating requests

Token is recieved through APS admin or customer's profile. You must request one if you dont have access to it.

v1

Rate Quotes

Return rate quotes, either across all of the services for a general list if only providing postal codes and weight or in conjunction with full address information, package dimensions, and a service type for a specific quote.

Example request:
curl --request POST \
    "https://api.allproshipping.com/api/v1/rates" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"service_type\": \"culpa\",
    \"delivery_confirmation\": true,
    \"from\": {
        \"0\": [],
        \"postal_code\": \"et\"
    },
    \"to\": {
        \"0\": [],
        \"postal_code\": \"cum\"
    },
    \"package\": {
        \"0\": [],
        \"weight\": 18,
        \"dimensions\": {
            \"length\": 2,
            \"width\": 14,
            \"height\": 14
        }
    },
    \"insurance\": {
        \"type\": \"additional_non_perishable\",
        \"requested_amount\": 1477
    },
    \"live_shipment\": false
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.allproshipping.com/api/v1/rates',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'service_type' => 'PRIORITY_OVERNIGHT',
            'delivery_confirmation' => true,
            'from' => [
                'postal_code' => '80124',
            ],
            'to' => [
                'postal_code' => '80124',
            ],
            'package' => [
                [],
                'weight' => 18,
                'dimensions' => [
                    'length' => 2,
                    'width' => 14,
                    'height' => 14,
                ],
            ],
            'insurance' => [
                'type' => 'additional_non_perishable',
                'requested_amount' => 1477,
            ],
            'live_shipment' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/rates"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "service_type": "PRIORITY_OVERNIGHT",
    "delivery_confirmation": true,
    "from": {
        "postal_code": "80124"
    },
    "to": {
        "postal_code": "80124"
    },
    "package": {
        "0": [],
        "weight": 18,
        "dimensions": {
            "length": 2,
            "width": 14,
            "height": 14
        }
    },
    "insurance": {
        "type": "additional_non_perishable",
        "requested_amount": 1477
    },
    "live_shipment": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

[
    {
        "service_name": "FedEx Priority Overnight",
        "service_type": "PRIORITY_OVERNIGHT",
        "carrier": "fedex",
        "delivery_timestamp": "2022-08-31T10:30:00",
        "residential": false,
        "currency": "USD",
        "retail_rate": "89.12",
        "customer_discount": "0.30",
        "subtotal": "62.38",
        "additional_charges": [
            {
                "type": "carrier_insurance",
                "cost": 0,
                "message": "Carrier Insurance"
            }
        ],
        "total": "62.38",
        "customer_rate": "62.38",
        "surcharges": [
            {
                "SurchargeType": "SIGNATURE_OPTION",
                "Description": "Direct signature required",
                "Amount": {
                    "Currency": "USD",
                    "Amount": "5.9"
                }
            },
            {
                "SurchargeType": "FUEL",
                "Description": "Fuel",
                "Amount": {
                    "Currency": "USD",
                    "Amount": "14.39"
                }
            }
        ],
        "insurance": {
            "type": "additional_non_perishable",
            "cost": 0,
            "amount": 1477
        }
    }
]
 

  

POST api/v1/rates

Body Parameters

service_type  string optional  

If included, only that specific service quote will be returned. Otherwise, all services are returned. Options: FIRST_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_EXPRESS_SAVER, FEDEX_2_DAY, FEDEX_GROUND, GROUND_HOME_DELIVERY

delivery_confirmation  boolean optional  

Optional. If included and true, the delivery confirmation (Direct signature) will be added, and the surcharge returned as part of the quote // * @bodyParam return_full_quotes boolean Optional, defaults to false. If true, an additional parameter, full_quote, is returned with each service, containing the full carrier response

from  object[]  

from.first_name  string optional  

from.last_name  string optional  

from.phone  string optional  

from.address1  string optional  

from.address2  string optional  

from.city  string optional  

from.state  string optional  

from.postal_code  string  

to  object[]  

to.first_name  string optional  

to.last_name  string optional  

to.phone  string optional  

to.address1  string optional  

to.address2  string optional  

to.city  string optional  

to.state  string optional  

to.postal_code  string  

package  object[]  

package.weight  integer  

This should be in pounds

package.dimensions  object optional  

If excluded, the quote will be based solely on the weight provided

package.dimensions.length  integer  

Required if dimensions are provided

package.dimensions.width  integer  

Required if dimensions are provided

package.dimensions.height  integer  

Required if dimensions are provided

insurance  object optional  

insurance.type  string optional  

This field is required when insurance is present. Must be one of on_time, additional, additional_perishable, or additional_non_perishable.

insurance.requested_amount  number optional  

This field is required when insurance.type is additional. Must not be greater than 20000.

live_shipment  boolean optional  

Check authentication status

Used primarily for a quick check to a token's status, both through Sanctum and our custom active

Example request:
curl --request GET \
    --get "https://api.allproshipping.com/api/v1/handshake" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.allproshipping.com/api/v1/handshake',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/handshake"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Authenticated and active."
}
 

  

GET api/v1/handshake

Schedule A Pickup

Schedule a carrier pickup for a package

Example request:
curl --request POST \
    "https://api.allproshipping.com/api/v1/pickup" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"address\": {
        \"name\": \"quia\",
        \"phone\": \"quia\",
        \"address1\": \"ipsam\",
        \"city\": \"omnis\",
        \"state\": \"beatae\",
        \"postal_code\": \"et\"
    },
    \"carrier\": {
        \"type\": \"FDXE\",
        \"remarks\": \"cupiditate\"
    },
    \"packages\": {
        \"number\": 36,
        \"location\": \"NONE\",
        \"total_weight\": 5007.0936
    },
    \"time\": {
        \"scheduled_date\": \"2021-10-14T15:00:00\",
        \"company_close\": \"18:00\"
    }
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.allproshipping.com/api/v1/pickup',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'address' => [
                'name' => 'quia',
                'phone' => 'quia',
                'address1' => 'ipsam',
                'city' => 'omnis',
                'state' => 'beatae',
                'postal_code' => 'et',
            ],
            'carrier' => [
                'type' => 'FDXE',
                'remarks' => 'cupiditate',
            ],
            'packages' => [
                'number' => 36.0,
                'location' => 'NONE',
                'total_weight' => 5007.0936,
            ],
            'time' => [
                'scheduled_date' => '2021-10-14T15:00:00',
                'company_close' => '18:00',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/pickup"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "address": {
        "name": "John Doe",
        "address1": "9220 Teddy Lane",
        "city": "Lone Tree",
        "state": "CO",
        "postal_code": "80124"
        "phone": "1234567890",
    },
    "carrier": {
        "type": "FDXE",
        "remarks": "cupiditate"
    },
    "packages": {
        "number": 36,
        "location": "NONE",
        "total_weight": 5007.0936
    },
    "time": {
        "scheduled_date": "2021-10-14T15:00:00",
        "company_close": "18:00"
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "status": "Error",
    "pickup_details": {
        "carrier": "FDXE",
        "packages_amount": 36,
        "total_weight": 5007.0936,
        "pickup_details": {
            "remarks": "cupiditate",
            "package_location": "NONE",
            "latest_available": "18:00"
        },
        "scheduled_date": "2021-10-14T15:00:00",
        "status": "Error",
        "updated_at": "2022-08-30T20:30:53.000000Z",
        "created_at": "2022-08-30T20:30:52.000000Z",
        "api_response": {
            "HighestSeverity": "ERROR",
            "Notifications": {
                "Severity": "ERROR",
                "Source": "disp",
                "Code": "508C",
                "Message": "Cannot schedule a pickup request for a previous day",
                "LocalizedMessage": "Cannot schedule a pickup request for a previous day"
            },
            "TransactionDetail": {
                "CustomerTransactionId": "*** Create Pickup Request using PHP ***"
            },
            "Version": {
                "ServiceId": "disp",
                "Major": 22,
                "Intermediate": 0,
                "Minor": 0
            }
        },
        "address": {
            "organization": null,
            "first_name": "Test",
            "last_name": "Lane",
            "phone": "1234567890",
            "address1": "9220 Teddy Lane",
            "address2": null,
            "city": "Lone Tree",
            "state": "CO",
            "postal_code": "80124",
            "updated_at": "2022-08-30T20:30:52.000000Z",
            "created_at": "2022-08-30T20:30:52.000000Z"
        }
    }
}
 

  

POST api/v1/pickup

Body Parameters

address  object optional  

address.name  string optional  

address.first_name  string  

address.last_name  string  

address.phone  string  

address.address1  string  

address.address2  string optional  

address.city  string  

address.state  string  

address.postal_code  string  

carrier  object optional  

carrier.type  string  

Must be one of FDXE or FDXG.

carrier.remarks  string optional  

packages  object optional  

packages.number  number  

packages.location  string  

Must be one of FRONT, REAR, SIDE, or NONE.

packages.total_weight  number  

time  object optional  

time.scheduled_date  required optional  

Expected to be in DateTime local format

time.company_close  required optional  

Expected to be in h:i format (also referred to as cutoff_time)

Associate Token

Associate a given token with the given plainText key For example, from the Shopify app, tie the app to the customer's token from the API

Example request:
curl --request POST \
    "https://api.allproshipping.com/api/v1/associate" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"association\": \"myshopifystore.com\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.allproshipping.com/api/v1/associate',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'association' => 'myshopifystore.com',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/associate"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "association": "myshopifystore.com"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

Association created
 

  

POST api/v1/associate

Body Parameters

association  string  

A string detailing what the association should be referenced as, from the consuming end of the API. Must be at least 3 characters.

Create An Order

Take an array of labels to be created and create a corresponding order with those labels. These are to be tied to external orders provided by the call.

Example request:
curl --request POST \
    "https://api.allproshipping.com/api/v1/orders" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"labels\": [
        {
            \"order_id\": \"illum\",
            \"from\": [],
            \"to\": [],
            \"package\": []
        }
    ]
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.allproshipping.com/api/v1/orders',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'labels' => [
                [
                    'order_id'              => "1337",
                    'service_type'          => "PRIORITY_OVERNIGHT",
                    'live_shipment'         => false,
                    'delivery_confirmation' => true,
                    'from' => [
                        'name'          => 'John Doe',
                        'address1'      => '9220 Teddy Lane',
                        'city'          => 'Lone Tree',
                        'state'         => 'CO',
                        'postal_code'   => '80124',
                        'phone'         => '1234567890',
                    ],
                    'to' => [
                        'first_name'    => 'Jane',
                        'last_name'     => 'Doe',
                        'address1'      => '1600 Amphitheater Pkway',
                        'city'          => 'Mountain View ',
                        'state'         => 'CA',
                        'postal_code'   => '94043',
                        'phone'         => '1234567890',
                    ],
                    'package' => [
                        'weight' => 2,
                        'dimensions' => [
                            'length' => 2,
                            'width'  => 3,
                            'height' => 4,
                        ],
                        'description' => "Snake",
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/orders"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "labels": [
        {
            "order_id": "illum",
            "from": [],
            "to": [],
            "package": []
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "message": "Order processed",
    "labels": [
        {
            "external_order": "1337",
            "to": "Jane Doe",
            "status": "Complete",
            "tracking_number": "277403582191",
            "carrier": "fedex"
        }
    ],
    "issues": []
}
 

  

POST api/v1/orders

Body Parameters

order_id  string  

External order id number to associate with the order created

service_type  string  

If included, only that specific service quote will be returned. Otherwise, all services are returned. Options: FIRST_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_EXPRESS_SAVER, FEDEX_2_DAY, FEDEX_GROUND, GROUND_HOME_DELIVERY

delivery_confirmation  boolean optional  

Optional. If included and true, the delivery confirmation (Direct signature) will be added, and the surcharge returned as part of the quote // * @bodyParam return_full_quotes boolean Optional, defaults to false. If true, an additional parameter, full_quote, is returned with each service, containing the full carrier response

from  object[]  

from.first_name  string  

from.last_name  string  

from.phone  string  

from.address1  string  

from.address2  string optional  

from.city  string  

from.state  string  

from.postal_code  string  

to  object[]  

to.first_name  string  

to.last_name  string  

to.phone  string  

to.address1  string  

to.address2  string optional  

to.city  string  

to.state  string  

to.postal_code  string  

package  object[]  

package.weight  integer  

This should be in pounds

package.description  string  

This should be in pounds

package.dimensions  object  

package.dimensions.length  integer  

package.dimensions.width  integer  

package.dimensions.height  integer  

live_shipment  boolean 

Retrieve Labels

Return a number of label hexes, along with their tracking numbers

Example request:
curl --request POST \
    "https://api.allproshipping.com/api/v1/labels" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"orders\": [
        222,
        334235,
        8875
    ]
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.allproshipping.com/api/v1/labels',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'json' => [
            'orders' => [
                222,
                334235,
                8875,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/labels"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "orders": [
        222,
        334235,
        8875
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


[
    {
        "tracking": "794656778259",
        "hex": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0..."
    },
    {
        "tracking": "794656778226",
        "hex": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2F0YWx..."
    }
]
 

  

POST api/v1/labels

Body Parameters

orders  string[]  

An array of external order IDs, which link previously placed orders to the API.

Check Existing Orders

Check a given array of external order ids to determine if orders exist in the system

Example request:
curl --request POST \
    "https://api.allproshipping.com/api/v1/check" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"orders\": [
        222,
        334235,
        8875
    ]
}"
$client = new \GuzzleHttp\Client();
$response = $client->post(
    'https://api.allproshipping.com/api/v1/check',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'orders' => [
                222,
                334235,
                8875,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/check"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "orders": [
        222,
        334235,
        8875
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "existing": [
        222
    ],
    "new": [
        334235,
        8875
    ]
}
 

  

POST api/v1/check

Body Parameters

orders  string[]  

An array of external order IDs (for example, Shopify's own order ideas.

Show Insurance Settings

Display the current insurance settings

Example request:
curl --request GET \
    --get "https://api.allproshipping.com/api/v1/insurance" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.allproshipping.com/api/v1/insurance',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/insurance"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "availability": "enabled",
    "options": [
        "on_time",
        "additional_perishable",
        "additional_non_perishable"
    ],
    "aps_insurance_services": [
        "FIRST_OVERNIGHT",
        "PRIORITY_OVERNIGHT",
        "FEDEX_EXPRESS_SAVER",
        "FEDEX_2_DAY_AM",
        "FEDEX_GROUND",
        "GROUND_HOME_DELIVERY"
    ],
    "cost_settings": {
        "on_time_insurance_cost": "2.5",
        "aps_insurance_insurance_initial_cost": "5",
        "aps_insurance_insurance_initial_amount": "200",
        "insurance_multiplier_for_po": "2.5",
        "insurance_multiplier_for_other": "1.00",
        "min_insurance_threshold": "100",
        "max_insurance_threshold": "10000"
    }
}
 

  

GET api/v1/insurance

Validate address

Validate the provided address with FedEx

Example request:
curl --request GET \
    --get "https://api.allproshipping.com/api/v1/address-validate?address1=in&address2=optio&city=inventore&state=vitae&postal_code=nam" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"address1\": \"odio\",
    \"address2\": \"ea\",
    \"city\": \"voluptas\",
    \"state\": \"sit\",
    \"postal_code\": \"et\"
}"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.allproshipping.com/api/v1/address-validate',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'address1'=> '9220 Teddy Lane',
            'city'=> 'Lone Tree',
            'state'=> 'CO',
            'postal_code'=> '80124',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/address-validate"
);

const params = {
    "address1": "in",
    "address2": "optio",
    "city": "inventore",
    "state": "vitae",
    "postal_code": "nam",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "address1": "odio",
    "address2": "ea",
    "city": "voluptas",
    "state": "sit",
    "postal_code": "et"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "status": "success",
    "message": "Address successfully validated",
    "provided": {
        "address1": "9220 Teddy Lane",
        "city": "Lone Tree",
        "state": "CO",
        "postal_code": "80124"
    },
    "result_type": "STANDARDIZED",
    "residential": false,
    "validated_address": {
        "address1": "9220 TEDDY LN",
        "address2": null,
        "city": "LONE TREE",
        "state": "CO",
        "postal_code": "80124-6740"
    }
}
 

  

GET api/v1/address-validate

Query Parameters

address1  string  

address2  string optional  

Optional secondary address, such as apartment or unit

city  string  

state  string  

postal_code  string  

Pickup availability

Check the availability for a pickup through FedEx

Example request:
curl --request GET \
    --get "https://api.allproshipping.com/api/v1/pickup-availability?street1=repellendus&street2=quia&city=ducimus&state=placeat&postal_code=assumenda&carrier=illum&total_weight=sed" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}" \
    --data "{
    \"address1\": \"nemo\",
    \"address2\": \"hic\",
    \"city\": \"rerum\",
    \"state\": \"consequuntur\",
    \"postal_code\": \"est\",
    \"carrier\": \"FDXG\",
    \"total_weight\": 1587418.3542944
}"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.allproshipping.com/api/v1/pickup-availability',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
        'query' => [
            'address1'=> '9220 Teddy Lane',
            'city'=> 'Lone Tree',
            'state'=> 'CO',
            'postal_code'=> '80124',
            'carrier'=> 'FDXG',
            'total_weight'=> '4',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/pickup-availability"
);

const params = {
    "street1": "repellendus",
    "street2": "quia",
    "city": "ducimus",
    "state": "placeat",
    "postal_code": "assumenda",
    "carrier": "illum",
    "total_weight": "sed",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

let body = {
    "address1": "nemo",
    "address2": "hic",
    "city": "rerum",
    "state": "consequuntur",
    "postal_code": "est",
    "carrier": "FDXG",
    "total_weight": 1587418.3542944
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "original": {
        "address1": "9220 Teddy Lane",
        "city": "Lone Tree",
        "state": "CO",
        "postal_code": "80124",
        "carrier": "FDXG",
        "total_weight": "4"
    },
    "available_dates": {
        "1": {
            "Carrier": "FDXG",
            "ScheduleDay": "FUTURE_DAY",
            "Available": true,
            "PickupDate": "2022-08-31",
            "CutOffTime": "14:00:00",
            "AccessTime": "PT4H0M",
            "ResidentialAvailable": true
        },
        "2": {
            "Carrier": "FDXG",
            "ScheduleDay": "FUTURE_DAY",
            "Available": true,
            "PickupDate": "2022-09-01",
            "CutOffTime": "14:00:00",
            "AccessTime": "PT4H0M",
            "ResidentialAvailable": true
        }
    }
}
 

  

GET api/v1/pickup-availability

Query Parameters

address1  string  

address2  string optional  

Optional secondary address, such as apartment or unit

city  string  

state  string  

postal_code  string  

carrier  string  

Must be one of following (for FedEx express and ground, respectively): FDXE, FDXG

total_weight  string  

Weight, in pounds, of all the packages

Get Customer's Shipping Configuration

Returns the customer's shipping configuration, primarily for seeing what shipping services are allowed

Example request:
curl --request GET \
    --get "https://api.allproshipping.com/api/v1/configuration" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: Bearer {token}"
$client = new \GuzzleHttp\Client();
$response = $client->get(
    'https://api.allproshipping.com/api/v1/configuration',
    [
        'headers' => [
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
            'Authorization' => 'Bearer {token}',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
const url = new URL(
    "https://api.allproshipping.com/api/v1/configuration"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):

Show headers
cache-control: no-cache, private
content-type: application/json
access-control-allow-origin: *
 

{
    "status": "success",
    "message": {
        "available_shipping_services": [
            {
                "carrier": "fedex",
                "code": "FIRST_OVERNIGHT",
                "description": "FedEx First Overnight"
            },
            {
                "carrier": "fedex",
                "code": "PRIORITY_OVERNIGHT",
                "description": "FedEx Priority Overnight"
            },
            {
                "carrier": "fedex",
                "code": "FEDEX_EXPRESS_SAVER",
                "description": "FedEx Express Saver"
            },
            {
                "carrier": "fedex",
                "code": "FEDEX_2_DAY_AM",
                "description": "FedEx 2Day AM"
            },
            {
                "carrier": "fedex",
                "code": "FEDEX_2_DAY",
                "description": "FedEx 2Day"
            },
            {
                "carrier": "fedex",
                "code": "FEDEX_GROUND",
                "description": "FedEx Ground"
            },
            {
                "carrier": "fedex",
                "code": "GROUND_HOME_DELIVERY",
                "description": "FedEx Home Delivery"
            },
            {
                "carrier": "ups",
                "code": "01",
                "transit_code": "1DA",
                "description": "UPS Next Day Air"
            },
            {
                "carrier": "ups",
                "code": "02",
                "transit_code": "2DA",
                "description": "UPS 2nd Day Air"
            },
            {
                "carrier": "ups",
                "code": "03",
                "transit_code": "GND",
                "description": "UPS Ground"
            },
            {
                "carrier": "ups",
                "code": "12",
                "transit_code": "3DS",
                "description": "UPS 3 Day Select"
            },
            {
                "carrier": "ups",
                "code": "13",
                "transit_code": "1DP",
                "description": "UPS Next Day Air Saver"
            },
            {
                "carrier": "ups",
                "code": "14",
                "transit_code": "1DM",
                "description": "UPS Next Day Air Early"
            },
            {
                "carrier": "ups",
                "code": "59",
                "transit_code": "2DM",
                "description": "UPS 2nd Day Air A.M."
            }
        ],
        "live_shipments": 0,
        "live_shipping_services": [],
        "pickup_available": 1
    }
}
 

  

GET api/v1/configuration