fedex offers acceleration packages in www.fedex.com/us/developer/ , you will find information about different types of calls to their webservices. as an example if you want to request a rate from fedex you will need to do something like this:

<?php

require_once('../../library/fedex-common.php5');

$newline = "<br />";
//The WSDL is not included with the sample code.
//Please include and reference in $path_to_wsdl variable.
$path_to_wsdl = "../../wsdl/RateService_v13.wsdl";

ini_set("soap.wsdl_cache_enabled", "0");

$client = new SoapClient($path_to_wsdl, array('trace' => 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information

$request['WebAuthenticationDetail'] = array(
    'UserCredential' =>array(
        'Key' => getProperty('key'), 
        'Password' => getProperty('password')
    )
); 
$request['ClientDetail'] = array(
    'AccountNumber' => getProperty('shipaccount'), 
    'MeterNumber' => getProperty('meter')
);
$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request v13 using PHP ***');
$request['Version'] = array(
    'ServiceId' => 'crs', 
    'Major' => '13', 
    'Intermediate' => '0', 
    'Minor' => '0'
);
$request['ReturnTransitAndCommit'] = true;
$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...
$request['RequestedShipment']['ShipTimestamp'] = date('c');
$request['RequestedShipment']['ServiceType'] = 'INTERNATIONAL_PRIORITY'; // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ...
$request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ...
$request['RequestedShipment']['TotalInsuredValue']=array('Ammount'=>100,'Currency'=>'USD');
$request['RequestedShipment']['Shipper'] = addShipper();
$request['RequestedShipment']['Recipient'] = addRecipient();
$request['RequestedShipment']['ShippingChargesPayment'] = addShippingChargesPayment();
$request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; 
$request['RequestedShipment']['RateRequestTypes'] = 'LIST'; 
$request['RequestedShipment']['PackageCount'] = '1';
$request['RequestedShipment']['RequestedPackageLineItems'] = addPackageLineItem1();
try 
{
    if(setEndpoint('changeEndpoint'))
    {
        $newLocation = $client->__setLocation(setEndpoint('endpoint'));
    }

    $response = $client ->getRates($request);

    if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR')
    {   
        $rateReply = $response -> RateReplyDetails;
        echo '<table border="1">';
        echo '<tr><td>Service Type</td><td>Amount</td><td>Delivery Date</td></tr><tr>';
        $serviceType = '<td>'.$rateReply -> ServiceType . '</td>';
        $amount = '<td>$' . number_format($rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount,2,".",",") . '</td>';
        if(array_key_exists('DeliveryTimestamp',$rateReply)){
            $deliveryDate= '<td>' . $rateReply->DeliveryTimestamp . '</td>';
        }else if(array_key_exists('TransitTime',$rateReply)){
            $deliveryDate= '<td>' . $rateReply->TransitTime . '</td>';
        }else {
            $deliveryDate='<td>&nbsp;</td>';
        }
        echo $serviceType . $amount. $deliveryDate;
        echo '</tr>';
        echo '</table>';

        printSuccess($client, $response);
    }
    else
    {
        printError($client, $response);
    } 

    writeToLog($client);    // Write to log file   

} catch (SoapFault $exception) {
   printFault($exception, $client);        
}

function addShipper(){
    $shipper = array(
        'Contact' => array(
            'PersonName' => 'Sender Name',
            'CompanyName' => 'Sender Company Name',
            'PhoneNumber' => '9012638716'),
        'Address' => array(
            'StreetLines' => array('Address Line 1'),
            'City' => 'Collierville',
            'StateOrProvinceCode' => 'TN',
            'PostalCode' => '38017',
            'CountryCode' => 'US')
    );
    return $shipper;
}
function addRecipient(){
    $recipient = array(
        'Contact' => array(
            'PersonName' => 'Recipient Name',
            'CompanyName' => 'Company Name',
            'PhoneNumber' => '9012637906'
        ),
        'Address' => array(
            'StreetLines' => array('Address Line 1'),
            'City' => 'Richmond',
            'StateOrProvinceCode' => 'BC',
            'PostalCode' => 'V7C4V4',
            'CountryCode' => 'CA',
            'Residential' => false)
    );
    return $recipient;                                      
}
function addShippingChargesPayment(){
    $shippingChargesPayment = array(
        'PaymentType' => 'SENDER', // valid values RECIPIENT, SENDER and THIRD_PARTY
        'Payor' => array(
            'ResponsibleParty' => array(
            'AccountNumber' => getProperty('billaccount'),
            'CountryCode' => 'US')
        )
    );
    return $shippingChargesPayment;
}
function addLabelSpecification(){
    $labelSpecification = array(
        'LabelFormatType' => 'COMMON2D', // valid values COMMON2D, LABEL_DATA_ONLY
        'ImageType' => 'PDF',  // valid values DPL, EPL2, PDF, ZPLII and PNG
        'LabelStockType' => 'PAPER_7X4.75');
    return $labelSpecification;
}
function addSpecialServices(){
    $specialServices = array(
        'SpecialServiceTypes' => array('COD'),
        'CodDetail' => array(
            'CodCollectionAmount' => array('Currency' => 'USD', 'Amount' => 150),
            'CollectionType' => 'ANY')// ANY, GUARANTEED_FUNDS
    );
    return $specialServices; 
}
function addPackageLineItem1(){
    $packageLineItem = array(
        'SequenceNumber'=>1,
        'GroupPackageCount'=>1,
        'Weight' => array(
            'Value' => 50.0,
            'Units' => 'LB'
        ),
        'Dimensions' => array(
            'Length' => 108,
            'Width' => 5,
            'Height' => 5,
            'Units' => 'IN'
        )
    );
    return $packageLineItem;
}

?>

so go to fedex.com, download wsdl or xml with library and more. run this code and you will receive a quote. important to say that you need an account to access that area, where you will receive a test meter-account to try, and then move to production.. hope it helps.

Answer from s_h on Stack Overflow
🌐
FedEx
developer.fedex.com › api › en-us › catalog › rate › docs.html
Rates and Transit Times API Documentation | FedEx Developer Portal
This API returns rate for the origin and destination for the requested service and will not validate whether that service is available for your ship date as well as origin and destination. Rates can also be retrieved for intra-Mexico FedEx Express shipping.
🌐
FedEx
developer.fedex.com › api › en-us › catalog › rate.html
Rates and Transit Times API | FedEx Developer Portal
This API returns estimates for account-specific FedEx rates or FedEx standard list rates for all services available for the origin/destination pair provided, along with estimated cost of shipping with discounts, surcharges, fees and other factors that can affect your shipping rates.
🌐
FedEx
developer.fedex.com › api › en-us › catalog › ship › docs.html
Ship API Documentation | FedEx Developer Portal
Net rates are calculated based on applicable transportation discounts and do not include: surcharges, ancillary / other charges, duties and taxes, or special handling fees. [Service ENUM : NET_RATE_SHEET] ... This is FedEx Ground Hazardous material declaration form. [Service ENUM : OP_900] ... Document to receive email notifications for pending shipments.
🌐
FedEx
developer.fedex.com › api › en-us › home.html
FedEx APIs and Developer Portal
Advanced Integrated Visibility Documentation API Catalog · Review our quotas and rate limits guide and integration best practices to learn about solutions in more detail. Quotas & rate limits guide Integration best practices · Ready to integrate? Follow our step-by-step getting started guide, and start by creating an organization in the FedEx ...
Top answer
1 of 1
7

fedex offers acceleration packages in www.fedex.com/us/developer/ , you will find information about different types of calls to their webservices. as an example if you want to request a rate from fedex you will need to do something like this:

<?php

require_once('../../library/fedex-common.php5');

$newline = "<br />";
//The WSDL is not included with the sample code.
//Please include and reference in $path_to_wsdl variable.
$path_to_wsdl = "../../wsdl/RateService_v13.wsdl";

ini_set("soap.wsdl_cache_enabled", "0");

$client = new SoapClient($path_to_wsdl, array('trace' => 1)); // Refer to http://us3.php.net/manual/en/ref.soap.php for more information

$request['WebAuthenticationDetail'] = array(
    'UserCredential' =>array(
        'Key' => getProperty('key'), 
        'Password' => getProperty('password')
    )
); 
$request['ClientDetail'] = array(
    'AccountNumber' => getProperty('shipaccount'), 
    'MeterNumber' => getProperty('meter')
);
$request['TransactionDetail'] = array('CustomerTransactionId' => ' *** Rate Request v13 using PHP ***');
$request['Version'] = array(
    'ServiceId' => 'crs', 
    'Major' => '13', 
    'Intermediate' => '0', 
    'Minor' => '0'
);
$request['ReturnTransitAndCommit'] = true;
$request['RequestedShipment']['DropoffType'] = 'REGULAR_PICKUP'; // valid values REGULAR_PICKUP, REQUEST_COURIER, ...
$request['RequestedShipment']['ShipTimestamp'] = date('c');
$request['RequestedShipment']['ServiceType'] = 'INTERNATIONAL_PRIORITY'; // valid values STANDARD_OVERNIGHT, PRIORITY_OVERNIGHT, FEDEX_GROUND, ...
$request['RequestedShipment']['PackagingType'] = 'YOUR_PACKAGING'; // valid values FEDEX_BOX, FEDEX_PAK, FEDEX_TUBE, YOUR_PACKAGING, ...
$request['RequestedShipment']['TotalInsuredValue']=array('Ammount'=>100,'Currency'=>'USD');
$request['RequestedShipment']['Shipper'] = addShipper();
$request['RequestedShipment']['Recipient'] = addRecipient();
$request['RequestedShipment']['ShippingChargesPayment'] = addShippingChargesPayment();
$request['RequestedShipment']['RateRequestTypes'] = 'ACCOUNT'; 
$request['RequestedShipment']['RateRequestTypes'] = 'LIST'; 
$request['RequestedShipment']['PackageCount'] = '1';
$request['RequestedShipment']['RequestedPackageLineItems'] = addPackageLineItem1();
try 
{
    if(setEndpoint('changeEndpoint'))
    {
        $newLocation = $client->__setLocation(setEndpoint('endpoint'));
    }

    $response = $client ->getRates($request);

    if ($response -> HighestSeverity != 'FAILURE' && $response -> HighestSeverity != 'ERROR')
    {   
        $rateReply = $response -> RateReplyDetails;
        echo '<table border="1">';
        echo '<tr><td>Service Type</td><td>Amount</td><td>Delivery Date</td></tr><tr>';
        $serviceType = '<td>'.$rateReply -> ServiceType . '</td>';
        $amount = '<td>$' . number_format($rateReply->RatedShipmentDetails[0]->ShipmentRateDetail->TotalNetCharge->Amount,2,".",",") . '</td>';
        if(array_key_exists('DeliveryTimestamp',$rateReply)){
            $deliveryDate= '<td>' . $rateReply->DeliveryTimestamp . '</td>';
        }else if(array_key_exists('TransitTime',$rateReply)){
            $deliveryDate= '<td>' . $rateReply->TransitTime . '</td>';
        }else {
            $deliveryDate='<td>&nbsp;</td>';
        }
        echo $serviceType . $amount. $deliveryDate;
        echo '</tr>';
        echo '</table>';

        printSuccess($client, $response);
    }
    else
    {
        printError($client, $response);
    } 

    writeToLog($client);    // Write to log file   

} catch (SoapFault $exception) {
   printFault($exception, $client);        
}

function addShipper(){
    $shipper = array(
        'Contact' => array(
            'PersonName' => 'Sender Name',
            'CompanyName' => 'Sender Company Name',
            'PhoneNumber' => '9012638716'),
        'Address' => array(
            'StreetLines' => array('Address Line 1'),
            'City' => 'Collierville',
            'StateOrProvinceCode' => 'TN',
            'PostalCode' => '38017',
            'CountryCode' => 'US')
    );
    return $shipper;
}
function addRecipient(){
    $recipient = array(
        'Contact' => array(
            'PersonName' => 'Recipient Name',
            'CompanyName' => 'Company Name',
            'PhoneNumber' => '9012637906'
        ),
        'Address' => array(
            'StreetLines' => array('Address Line 1'),
            'City' => 'Richmond',
            'StateOrProvinceCode' => 'BC',
            'PostalCode' => 'V7C4V4',
            'CountryCode' => 'CA',
            'Residential' => false)
    );
    return $recipient;                                      
}
function addShippingChargesPayment(){
    $shippingChargesPayment = array(
        'PaymentType' => 'SENDER', // valid values RECIPIENT, SENDER and THIRD_PARTY
        'Payor' => array(
            'ResponsibleParty' => array(
            'AccountNumber' => getProperty('billaccount'),
            'CountryCode' => 'US')
        )
    );
    return $shippingChargesPayment;
}
function addLabelSpecification(){
    $labelSpecification = array(
        'LabelFormatType' => 'COMMON2D', // valid values COMMON2D, LABEL_DATA_ONLY
        'ImageType' => 'PDF',  // valid values DPL, EPL2, PDF, ZPLII and PNG
        'LabelStockType' => 'PAPER_7X4.75');
    return $labelSpecification;
}
function addSpecialServices(){
    $specialServices = array(
        'SpecialServiceTypes' => array('COD'),
        'CodDetail' => array(
            'CodCollectionAmount' => array('Currency' => 'USD', 'Amount' => 150),
            'CollectionType' => 'ANY')// ANY, GUARANTEED_FUNDS
    );
    return $specialServices; 
}
function addPackageLineItem1(){
    $packageLineItem = array(
        'SequenceNumber'=>1,
        'GroupPackageCount'=>1,
        'Weight' => array(
            'Value' => 50.0,
            'Units' => 'LB'
        ),
        'Dimensions' => array(
            'Length' => 108,
            'Width' => 5,
            'Height' => 5,
            'Units' => 'IN'
        )
    );
    return $packageLineItem;
}

?>

so go to fedex.com, download wsdl or xml with library and more. run this code and you will receive a quote. important to say that you need an account to access that area, where you will receive a test meter-account to try, and then move to production.. hope it helps.

🌐
FedEx
fedex.com › us › developer › downloads › pdfs › 2021 › FedEx_WebServices_RateServices_WSDLGuide_v2021.pdf pdf
Rate Service Guide FedEx Web Services 2021
Specifies how to store document images. ... Describes specific information about the emaillabel shipment. ... Indicates the type of rates to be returned.
🌐
FedEx
developer.fedex.com › api › en-us › guides › best-practices.html
Best Practices | FedEx Developer Portal
Rate shop – If no serviceType is indicated, then all the applicable services and corresponding rates will be returned. Use the Service Availability API to determine which services, package options and special services are available for a given origin-destination pair, and pass the serviceType and package option in the Rate request.
🌐
Shippo
goshippo.com › carriers › fedex-api
FedEx API - Best FedEx API for E-commerce - Easy Integration
April 13, 2026 - Leverage Shippo's FedEx API to access shipping rates from FedEx and 55+ other carriers. ... FedEx 2Day® A.M. ... Easy-to-follow documentation, tutorials, and API reference in our developer center.
🌐
FedEx
developer.fedex.com › api › en-us › catalog › service-availability › docs.html
Service Availability API Documentation | FedEx Developer Portal
Your own packaging is not available for the One Rate pricing option. For more information on Packaging Services refer to Packaging Types · You cannot specify multiple carrier codes. If you want to see results for multiple carriers, then you must either omit this element or send separate service availability requests. Individual skids of 151 lbs. or more. Skids exceeding 2,200 lbs. require prior approval. To locate FedEx services that allow dangerous goods shipping for your origin/destination pair, use the Service Availability Service.
Find elsewhere
🌐
FedEx Canada
fedex.com › en-ca › resources-tools › api.html
FedEx Shipping Integration and Web Services API | FedEx Canada
With FedEx Web Services, you can integrate FedEx Express®, FedEx Ground® and FedEx Freight® shipping services into your business systems, retail website or order management system.
🌐
Postman
postman.com › amol30 › doofood › collection › 8zb6t96 › fedex-rates-and-transit-times-api
FedEx Rates and Transit Times API | Get Started | Postman API Network
FedEx Rates and Transit Times API on the Postman API Network: This public collection features ready-to-use requests and documentation from Doofood.
🌐
FedEx
developer.fedex.com › api › en-us › guides › ratelimits.html
Quotas & rate limits Guide | FedEx Developer Portal
FedEx reserves the right to change allocation without prior notice to maintain equitable access among API consumers and to allocate FedEx resources effectively and efficiently. ... Are all of an organization’s API transactions from different projects counted towards the quota? Quota is applied at the organizational level. Under one organization, you can have one or more project(s), and under each project, you can have one or more APIs.
🌐
FedEx
fedex.com › content › dam › fedex › apac-asia-pacific › downloads › fedex-api-estimated-duties-taxes-en-apac.pdf pdf
FedEx API−Estimated Duties and Taxes
With the FedEx API estimated duties and taxes feature, customers can receive a more robust · international rate quote that integrates shipping charges with an estimate on applicable duties · and taxes. Estimated Duties and Taxes Details · ❖ Availability ·
🌐
Rocketshipit
docs.rocketshipit.com › rs › docs › fedex-api-parameters.html
FedEx API Parameters · RocketShipIt
This element is used t... requestedShipment.rateRequestType -- Type: array | Example: ['ACCOUNT', 'LIST'] | Indicate the type of rates to be returned.<br>Following are values:<ul><li>LIST - Returns FedEx published list rates in addition to account-specific rates (if applicable).</li><li>PREFERRED - Retur...
🌐
FedEx
fedex.com › en-us › integration › faq.html
Frequently Asked Questions | FedEx Integration Solutions
A. No. We provide our APIs, documentation, sample code and everything else found in the FedEx Developer Portal to businesses and developers for free, subject to terms of use.
🌐
Adobe Commerce
commercemarketplace.adobe.com › ecomplugins-fedexrest.html
FedEx Shipping Carrier Rest API
FedEx Shipping Carrier Rest API
Please Note: This extension was not created by the FedEx Carriers company. Ecomplugins have built this extension to facilitate a quick FedEx API integration with FedEx Carriers.   FedEx Express invented express distribution and is the industry’s global leader, providing rapid, reliable, time-definite delivery to more than 220 countries and territories.  This module will calculate Shipping Via FedEx Carriers. Shipping rates will be displayed at checkout and the shopping cart page. Rates will be based on the seller warehouse address, a customer destination address, and shopping cart product weig
Price   $249.95
🌐
Oracle
docs.oracle.com › en › cloud › saas › readiness › logistics › 25a › otm25a › 25A-otm-wn-f35616.htm
FedEx Comprehensive Rates and Transit Times API
March 27, 2025 - The provided mapping opportunities supported with the Comprehensive Rate and Transit Times API integration have been extended to support more options for package mapping, special handling, special services and accessorials. ... This feature provides you with direct access to FedEx's Comprehensive Rates and Transit Times API - allowing you to query for your account specific rates without the need for any third-party parcel integrator software.
🌐
FedEx
developer.fedex.com › api › en-us › guides › pricing-guide.html
FedEx API Pricing Guide | Subscription Plans & Usage Costs
Understand FedEx API pricing, subscription tiers, and usage costs. Compare plans and optimize your integration with transparent billing insights.
🌐
Stack Overflow
stackoverflow.com › questions › 77370638 › fedex-rates-api-does-not-return-both-one-rate-and-weighted-packages-despite-wha
rest - FedEx rates API does not return both one_rate and weighted packages, despite what their their api documentation says - Stack Overflow
FedEx API documentation states: Note: FedEx customers can request both One Rate and weight based (non-One Rate) rates in a single Rate Request by specifying "FEDEX_ONE_RATE" as a Service Option Type in the request.