# CheapEmail Open API > Documentation and runnable examples for CheapEmail's Dujiao-Next-compatible purchasing API. Use the AI integration guide first. List matching SKU codes with their product descriptions and ask the caller to confirm the intended SKU before ordering. After confirmation, the caller supplies only sku_code and quantity. The client resolves sku_code to sku_id through GET /products, creates the order with sku_id and quantity, polls the order, then saves fulfillment.payload one item per line. ## AI integration - [AI integration guide](https://docs.cheapemail.cc/ai/integration): Human-readable minimal integration flow - [AI integration guide, plain text](https://docs.cheapemail.cc/ai-guide.txt): Complete machine-readable instructions - [OpenAPI 3.1](https://docs.cheapemail.cc/openapi.yaml): API schema - [API access application](https://cheapemail.cc/me/api): Apply in the CheapEmail user dashboard; API Key and Secret can be generated after approval ## Runnable examples - [Python test.py](https://docs.cheapemail.cc/downloads/test.py): Lists all SKU codes by default and orders with sku_code plus quantity - [Python requirements](https://docs.cheapemail.cc/downloads/requirements.txt): Python dependencies - [Go client](https://docs.cheapemail.cc/downloads/dujiao_client.go): Standard-library Go implementation ## Reference - [Live SKU catalog](https://docs.cheapemail.cc/tools/sku-explorer): Search SKU codes with product descriptions and specifications before ordering - [Authentication](https://docs.cheapemail.cc/guide/authentication): API_SECRET UTF-8 to HMAC-SHA256 key conversion and signing - [Products and SKU](https://docs.cheapemail.cc/api/products): Product pagination and sku_code mapping - [Orders and fulfillment](https://docs.cheapemail.cc/api/orders): Order polling and payload newline semantics - [Errors and statuses](https://docs.cheapemail.cc/api/errors): API errors and terminal order states Important: fulfillment.payload is the purchased data. It is newline-delimited; each line is one purchased item. Save it as orders/order_.txt.