# AliExpress Search API (https://www.socialcrawl.dev/platforms/aliexpress/search) > Returns AliExpress products matching a keyword, 10 per page by default (max 50). Each row has product id, title, sale price, shop name, and image. Pass the returned cursor back until has_more is false. Optional sort_by: price_low, price_high, most_sold, least_sold. Optional min_price and max_price are in the smallest currency unit (cents). A query that matches nothing comes back empty and is not billed. TL;DR: `GET /v1/aliexpress/search` costs 5 credits per call and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `query` | yes | Search keywords, for example xiaomi or wireless earbuds. | | `page` | no | Page number, starting at 1. Prefer the universal cursor parameter. | | `page_size` | no | Products per page, 1 to 50. Default 10. | | `sort_by` | no | Result ordering: price_low, price_high, most_sold, or least_sold. (price_low \| price_high \| most_sold \| least_sold) | | `min_price` | no | Lowest price to include, in the smallest unit of the target currency (cents for USD). | | `max_price` | no | Highest price to include, in the smallest unit of the target currency (cents for USD). | | `category_id` | no | AliExpress category id. Category ids come from GET /v1/aliexpress/categories. | | `delivery_days` | no | Keep products that claim delivery within this many days. | | `country` | no | Ship-to country as a two-letter code. Default US. Changes displayed price and availability. A product that exists for US can return empty for another country. | | `currency` | no | ISO 4217 currency for displayed prices. Default USD. Live-validated: USD GBP CAD EUR UAH MXN TRY RUB BRL AUD INR JPY IDR SEK KRW ILS THB CLP VND. | | `language` | no | Copy language as an ISO code. Default EN. Live-validated: EN RU PT ES FR ID IT TH JA AR VI TR DE HE KO NL PL MX CL IN. | | `max_pages` | no | 1 to 50 (default 1, or 50 when `max_items` or `max_credits` is sent). Walk up to this many pages in one call and return the rows from all of them. Each page walked is billed exactly as one call to this endpoint (a cached page is free) and counts against your rate limit; its charge and any refund are recorded under the page's own request id, listed in `data.walk.request_ids`. The walk stops early at the last page, or when the request's time budget runs low; `data.walk.stopped` says why (`end`, `max_pages`, `max_items`, `max_credits`, `time_budget`, `page_error`) and `pagination.next_cursor` continues from where it stopped. | | `max_items` | no | 1 to 5000. Get more in one call: keep walking pages until the response holds at least this many rows, then stop with `data.walk.stopped: "max_items"`. The last page is returned whole (it was billed), so `data.items` can hold up to one page more than this, and `pagination.next_cursor` resumes right after it without skipping a row. Walks up to 50 pages unless `max_pages` says fewer; each page is billed as one call (a cached page is free). Add `max_credits` to cap the spend. A long walk can stop on the time budget first (`"time_budget"`): send the returned cursor with the same params to continue. | | `max_credits` | no | 1 to 100000. The most this call may spend, across every page it walks. A page starts only while the credits already spent plus that page's price (or, when higher, the most any page of this walk has cost) still fit, so the call never goes past it; the walk then stops with `data.walk.stopped: "max_credits"` and the cursor to resume. Sent alone, it walks as far as the budget goes (up to 50 pages). A value below the price of one page is a free 400 whose `error.details.page_credits` names that price. Credits a row join (`include=`) adds are known only once a page has run, so page 1 is checked against its own price. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/aliexpress/search" \ --data-urlencode "query=xiaomi" \ -H "x-api-key: sc_YOUR_API_KEY" ``` ## FAQ ### How do I use the AliExpress search API? Call GET /v1/aliexpress/search with query set to a keyword such as xiaomi or wireless earbuds. It returns products with id, title, sale price, shop name and image, 10 per page by default and up to 50 with page_size. Pass the returned cursor back until has_more is false. ### Which filters does AliExpress search support? sort_by takes price_low, price_high, most_sold or least_sold. You can set min_price and max_price in the smallest currency unit, category_id, and delivery_days to keep products that claim delivery within that many days. ### Does it support image search? No. Search is by keyword only. If you have a product, call GET /v1/aliexpress/product/similar with its product id to get nearby listings. ### Can I search with another currency or ship-to country? Yes. country, currency and language localise the results. Currency accepts codes such as USD, GBP, EUR and KRW, and results can differ by ship-to country. ### Is a search with no results billed? No. A query that matches nothing comes back empty and is not billed, and credits for failed calls are refunded automatically. ### How much does an AliExpress search cost? Each call costs 5 credits on the advanced tier. New accounts get 100 free credits, about 20 searches, and there is no subscription. See the full AliExpress API: https://www.socialcrawl.dev/platforms/aliexpress ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing ## Explore with AI Questions this API answers, phrased for an AI assistant: - How do I search AliExpress products by keyword with an API? - Can SocialCrawl filter AliExpress search results by price and delivery days?