Apaapi is an unofficial PHP library for accessing the Amazon Product Advertising API (PAAPI) V5.0, without relying on the Amazon SDK. It is lightweight (~250 KB) and simplifies interaction with the Amazon PAAPI V5.0, making it easier to integrate Amazon product data into PHP applications.
-- Amazon Affiliate With PHP --
- Request Builder (Easier way to fetch API data).
- Credential-less (No credentials required using product scraper).
- Search Filters (Using builder).
- Geotargeting (Automatically redirect links based on the visitor's region).
- Cart Generator (Add to cart URL).
- Rating (Customer reviews).
- Response Normalizer (Normalize response data structure).
- Response Error Handling (Including semantic errors with HTTP status code 200).
- Keyword Converter (ASIN, ISBN, EAN, Node, Root).
- Caching System (Basic built-in cache to reduce API calls).
composer require jakiboy/apaapi
- 1 - Download repository ZIP (Latest version).
- 2 - Extract ZIP (apaapi-main).
- 3 - Include this lines beelow (apaapi self-autoloader).
include('apaapi-main/src/Autoloader.php');
\apaapi\Autoloader::init();
- 4 - Use the Quickstart examples.
- PHP ^8.2 (For older versions, please use previous version)
- cURL | Stream (file)
- "_KEY_" : From your Amazon Associates (your locale), More.
- "_SECRET_" : From your Amazon Associates (your locale), More.
- "_TAG_" : From your Amazon Associates (your locale), More.
- "_LOCALE_" : TLD of the target marketplace to which you are sending requests (com/fr/co.jp), Get TLD.
- "_KEYWORDS_" : What you are looking for (Products), More.
- "_ASIN_" : Accepts (ISBN), Amazon Standard Identification Number (your locale), More.
- "_NODE_" : Browse Node ID (your locale), More.
Recommended using Apaapi Builder or Apaapi Product (Scraped data) if you dont have API credentials.
/**
* @see Use Composer,
* Or include Apaapi Autoloader Here.
*/
use Apaapi\includes\Builder;
// (1) Init request builder
$builder = new Builder('_KEY_', '_SECRET_', '_TAG_', '_LOCALE_');
// (2) Get response (Search)
$data = $builder->searchOne('Sony Xperia 1 VI'); // Normalized array
Note
See full builder usage at /wiki/Builder and use case /examples
/**
* @see Use Composer,
* Or include Apaapi Autoloader Here.
*/
use Apaapi\includes\Product;
// (1) Init product
$product = new Product('B00NLZUM36', 'com', 'test-21');
// (2) Get response
$data = $product->get(); // Array
Note
See full product usage at /wiki/Product
Get customer reviews of product as average rating and count (Scraped data).
use Apaapi\includes\Rating;
// Init Rating
$rating = new Rating('B00NLZUM36', 'com', 'test-21');
// Get Response
$data = $rating->get(); // Array
Get affiliate cart URL.
use Apaapi\lib\Cart;
// Init Cart
$cart = new Cart();
$cart->setLocale('com')->setPartnerTag('test-21');
// Get Response
$data = $cart->set(['B00NLZUM36' => 3]); // String
Extensible search method.
use Apaapi\operations\SearchItems;
use Apaapi\lib\Request;
use Apaapi\lib\Response;
// (1) Set operation
$operation = new SearchItems();
$operation->setPartnerTag('_TAG_')->setKeywords('_KEYWORDS_');
// (2) Prapere request
$request = new Request('_KEY_', '_SECRET_');
$request->setLocale('_LOCALE_')->setPayload($operation);
// (3) Get response
$response = new Response($request);
$data = $response->get(); // Array
Note
See all available TLDs used by setLocale() at /wiki/TLDs
Extensible get method.
use Apaapi\operations\GetItems;
use Apaapi\lib\Request;
use Apaapi\lib\Response;
// Set operation
$operation = new GetItems();
$operation->setPartnerTag('_TAG_')->setItemIds(['_ASIN_']);
// Prapere request
$request = new Request('_KEY_', '_SECRET_');
$request->setLocale('_LOCALE_')->setPayload($operation);
// Get response
$response = new Response($request);
$data = $response->get(); // Array
All available operations.
use Apaapi\operations\GetItems;
use Apaapi\operations\SearchItems;
use Apaapi\operations\GetVariations;
use Apaapi\operations\GetBrowseNodes;
// (1) GetItems
$operation = new GetItems();
$operation->setPartnerTag('_TAG_');
$operation->setItemIds(['_ASIN_']); // Array
// (2) SearchItems
$operation = new SearchItems();
$operation->setPartnerTag('_TAG_');
$operation->setKeywords('_KEYWORDS_'); // String
// (3) GetVariations
$operation = new GetVariations();
$operation->setPartnerTag('_TAG_');
$operation->setASIN('_ASIN_'); // String
// (4) GetBrowseNodes
$operation = new GetBrowseNodes();
$operation->setPartnerTag('_TAG_');
$operation->setBrowseNodeIds(['_NODE_']); // Array
Optimize response time by setting only the needed resources.
use Apaapi\operations\SearchItems;
// Set Operation
$operation = new SearchItems();
$operation->setPartnerTag('_TAG_')->setKeywords('_KEYWORDS_');
// Set Resources (3)
$operation->setResources(['Images.Primary.Small', 'ItemInfo.Title', 'Offers.Listings.Price']);
Note
See all available resources used by setResources() at /wiki/Resources
- Integrated design (PHP, TypeScript)
- apaapi.js React.js component (TypeScript)
- Jakiboy (Initial work)
- Contributors
- Any PR is welcome!
Skip the coffee! If you like the project, a star would mean a lot.
Important
The Amazon logo included in top of this page refers only to the Amazon Product Advertising API