{"openapi":"3.1.0","info":{"title":"ProcureRadar (Zhimao) Buyer Intelligence API","version":"1.0.0","description":"Find verified global B2B buyers (importers & distributors) by category & country, then enrich contacts and run deep company intelligence. The buyer-side counterpart to Alibaba. Discovery is free & anonymous; contact enrichment and company intelligence consume Zhimao Points. Operated by Acrometa Lifestyle Pte. Ltd. (SGX-listed).","contact":{"name":"ProcureRadar","url":"https://www.procureradar.com/enterprise/api-access"},"license":{"name":"Proprietary","url":"https://www.procureradar.com/legal"},"x-privacy-policy":"https://www.procureradar.com/privacy","x-tiers":{"developer":{"rpm":10,"monthly_quota":500,"price":"free"},"startup":{"rpm":100,"monthly_quota":10000,"price":"$199/mo"},"business":{"rpm":500,"monthly_quota":50000,"price":"$799/mo"},"enterprise":{"rpm":"custom","monthly_quota":"unlimited","price":"custom"}}},"servers":[{"url":"https://www.procureradar.com","description":"ProcureRadar production"}],"paths":{"/api/agent/v1/buyers":{"get":{"operationId":"findBuyers","summary":"Find verified B2B buyers by category & country (free, anonymous)","description":"Search verified importers and distributors. Returns company profiles + a coverage object. When coverage is thin, an acquisition task is returned (poll with checkDiscoveryTask). Contact details are NOT included — use executeSkill(enrich_contact) to unlock them.","security":[{},{"bearerZk":[]}],"parameters":[{"name":"category","in":"query","required":true,"schema":{"type":"string"},"description":"Product category, e.g. 'flour', 'LED lighting', 'stainless steel tableware'"},{"name":"country_iso","in":"query","required":false,"schema":{"type":"string"},"description":"ISO 3166-1 alpha-2 country code, e.g. MY, ID, AE, GB"},{"name":"quality_grade","in":"query","required":false,"schema":{"type":"string","enum":["premium","qualified"]},"description":"Filter by data quality grade"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"Buyer list + coverage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuyersResponse"}}}},"429":{"description":"Rate limited (anonymous or tier RPM/quota exceeded)"}}}},"/api/ai-ops/skills/execute":{"post":{"operationId":"executeSkill","summary":"Unlock buyer intelligence or contact details (consumes Zhimao Points)","description":"Run a paid skill against a buyer. skill_id=company_intelligence returns domain + procurement score + buying intent + registry/customs/risk (0-100). skill_id=enrich_contact runs 6-layer contact enrichment (email/phone/WhatsApp/decision-maker). Requires authentication.","security":[{"bearerZk":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillExecuteRequest"}}}},"responses":{"200":{"description":"Skill result (check result.ok for real data vs soft failure)","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","description":"Whether the request was dispatched successfully"},"charged":{"type":"boolean","description":"Whether Zhimao Points were consumed"},"cost_points":{"type":"integer","description":"Points charged for this call"},"result":{"type":"object","description":"Skill output; result.ok indicates real data vs soft failure","additionalProperties":true}}}}}},"401":{"description":"Authentication required"},"402":{"description":"Insufficient Zhimao Points"}}}},"/api/agent/v1/tasks/{task_id}":{"get":{"operationId":"checkDiscoveryTask","summary":"Poll a background buyer-discovery task (free)","description":"Poll a task created by findBuyers (acquisition.task_id) or submitDiscoveryJob. Returns status (working|completed|failed); when completed, includes freshly gathered buyers. Use exponential backoff starting ~20s.","security":[{},{"bearerZk":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"maximum":100}}],"responses":{"200":{"description":"Task status + buyers when completed","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"status":{"type":"string","enum":["working","completed","failed"]},"buyers":{"type":"array","items":{"$ref":"#/components/schemas/Buyer"},"description":"Populated when status=completed"}}}}}}}}},"/api/agent/v1/products":{"get":{"operationId":"searchProducts","summary":"Search active products (free, anonymous)","description":"Search active products by keyword, destination country, supplier country, or category code. Returns product listings with price ranges and MOQ. Use product_id from results to request a quote.","security":[{},{"bearerZk":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Keyword search (title, product number, supplier name)"},{"name":"country_iso","in":"query","required":false,"schema":{"type":"string"},"description":"Destination country ISO2, e.g. MY, JP, VN"},{"name":"supplier_country","in":"query","required":false,"schema":{"type":"string"},"description":"Supplier / origin country ISO2, e.g. CN"},{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Category code (mall_category_code)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Product list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsResponse"}}}},"429":{"description":"Rate limited"}}}},"/api/agent/v1/stores":{"get":{"operationId":"searchStores","summary":"Search Agentic Storefronts by industry and country (free, anonymous)","description":"Browse supplier storefronts indexed by industry key and target market country. Returns store cards with handle, name, product count, and store URL. Use the store URL in outreach messages or follow with searchProducts filtered by supplier.","security":[{},{"bearerZk":[]}],"parameters":[{"name":"industry","in":"query","required":false,"schema":{"type":"string"},"description":"85-taxonomy industry_key, e.g. plastic_products"},{"name":"country","in":"query","required":false,"schema":{"type":"string"},"description":"Target market country ISO2, e.g. MY"},{"name":"q","in":"query","required":false,"schema":{"type":"string"},"description":"Keyword search (store name)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"minimum":1,"maximum":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Store list","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"stores":{"type":"array","items":{"$ref":"#/components/schemas/StoreCard"}},"total":{"type":"integer"}}}}}}}}},"/api/inquiries":{"post":{"operationId":"requestQuote","summary":"Request a quote (RFQ) for a product (requires auth)","description":"Create an inquiry / RFQ for a specific product. The seller's SellerBot (L1/L2) will respond with a quote. On L2 autonomy, quotes are issued automatically within seconds; on L1, the seller reviews and responds manually. Poll GET /api/inquiries/{id} for status.","security":[{"bearerZk":[]},{"oauth2":["inquiries:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["product_id"],"properties":{"product_id":{"type":"string","description":"Product UUID from searchProducts"},"quantity":{"type":"number","description":"Requested quantity (optional; must meet MOQ if specified)"},"currency":{"type":"string","description":"Preferred currency ISO3 (default USD)"},"destination_country":{"type":"string","description":"Shipping destination country ISO2"},"destination_city":{"type":"string","description":"Shipping destination city (optional)"},"buyer_note":{"type":"string","description":"Additional requirements or specifications"}}}}}},"responses":{"200":{"description":"Inquiry created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"inquiry":{"type":"object","properties":{"id":{"type":"string"},"inquiry_no":{"type":"string"},"status":{"type":"string"}}}}}}}},"400":{"description":"Invalid product or quantity below MOQ"},"401":{"description":"Authentication required"}}}},"/api/agent/v1/mandates":{"get":{"operationId":"listPaymentMandates","summary":"List AP2 payment mandates (requires auth)","description":"List the buyer's active AP2 payment authorization mandates. A mandate pre-authorizes the BuyerBot to place orders automatically within the mandate's amount cap.","security":[{"bearerZk":[]},{"oauth2":["mandates:read"]}],"responses":{"200":{"description":"Mandate list","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"mandates":{"type":"array","items":{"$ref":"#/components/schemas/PaymentMandate"}}}}}}},"401":{"description":"Authentication required"}}},"post":{"operationId":"createPaymentMandate","summary":"Create an AP2 payment mandate for autonomous agent purchasing (requires auth)","description":"Create a payment authorization mandate (AP2 Mandate) that allows BuyerBot or authorized agents to place orders autonomously without per-order human confirmation, subject to the mandate's currency, amount cap, and optional category/seller scope. Mandates are the machine-to-machine payment layer of Zhimao's AP2 protocol.","security":[{"bearerZk":[]},{"oauth2":["mandates:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMandateRequest"}}}},"responses":{"200":{"description":"Mandate created","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"mandate_id":{"type":"string"},"mandate_no":{"type":"string"}}}}}},"400":{"description":"Invalid mandate parameters"},"401":{"description":"Authentication required"}}}},"/api/agent/v1/group-buy":{"get":{"operationId":"listGroupBuyPools","summary":"List open collective-sourcing (group-buy) pools (free)","security":[{},{"bearerZk":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["open","filling"]}}],"responses":{"200":{"description":"Open group-buy pools","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"pools":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"category":{"type":"string"},"status":{"type":"string"}}}}}}}}}}}}},"components":{"securitySchemes":{"bearerZk":{"type":"http","scheme":"bearer","bearerFormat":"zk_","description":"Long-lived API key. Create one at /enterprise/api-access, then send `Authorization: Bearer zk_xxx`. (For OAuth 2.1 / MCP agents, use the MCP endpoint at /api/mcp instead.)"},"oauth2":{"type":"oauth2","description":"OAuth 2.1 Authorization Code + PKCE. For ChatGPT Actions, Gemini, or any agent that supports OAuth.","flows":{"authorizationCode":{"authorizationUrl":"https://www.procureradar.com/api/oauth/authorize","tokenUrl":"https://www.procureradar.com/api/oauth/token","scopes":{"products:read":"Read active product listings","stores:read":"Read Agentic Storefronts directory","inquiries:write":"Create inquiries (RFQ) for products","mandates:read":"Read your AP2 payment mandates","mandates:write":"Create AP2 payment mandates for autonomous purchasing"}}}}},"schemas":{"BuyersResponse":{"type":"object","properties":{"ok":{"type":"boolean"},"total":{"type":"integer"},"buyers":{"type":"array","items":{"$ref":"#/components/schemas/Buyer"}},"coverage":{"type":"object","description":"Coverage level: full | partial | empty"},"acquisition":{"type":"object","nullable":true,"description":"Background crawl task when coverage is thin"},"auth_tier":{"type":"string","enum":["anonymous","authenticated"]},"data_tier":{"type":"string","example":"discovery"}}},"Buyer":{"type":"object","properties":{"id":{"type":"string"},"company_name":{"type":"string"},"country":{"type":"string"},"city":{"type":"string","nullable":true},"entity_type":{"type":"string","nullable":true},"quality_grade":{"type":"string","enum":["premium","qualified"],"nullable":true},"has_email":{"type":"boolean"},"has_phone":{"type":"boolean"}}},"SkillExecuteRequest":{"type":"object","required":["skill_id","context"],"properties":{"skill_id":{"type":"string","enum":["company_intelligence","enrich_contact"],"description":"Which paid skill to run"},"context":{"type":"object","properties":{"target_domain":{"type":"string"},"target_company_name":{"type":"string"},"country_iso":{"type":"string"}}}}},"ProductsResponse":{"type":"object","properties":{"ok":{"type":"boolean"},"total":{"type":"integer"},"products":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"string","description":"Use this as product_id in requestQuote"},"product_no":{"type":"string"},"title_cn":{"type":"string","nullable":true},"title_en":{"type":"string","nullable":true},"price_min":{"type":"number","nullable":true},"price_max":{"type":"number","nullable":true},"currency":{"type":"string","nullable":true},"moq":{"type":"number","nullable":true},"moq_unit":{"type":"string","nullable":true},"supplier_country":{"type":"string","nullable":true},"mall_category_code":{"type":"string","nullable":true}}}}}},"StoreCard":{"type":"object","properties":{"id":{"type":"string"},"handle":{"type":"string"},"store_name":{"type":"string","nullable":true},"store_url":{"type":"string"},"industry_key":{"type":"string","nullable":true},"target_country":{"type":"string","nullable":true},"product_count":{"type":"integer"},"last_built_at":{"type":"string","nullable":true}}},"PaymentMandate":{"type":"object","properties":{"id":{"type":"string"},"mandate_no":{"type":"string"},"status":{"type":"string","enum":["active","revoked","exhausted","expired"]},"currency":{"type":"string"},"max_total_amount":{"type":"number"},"max_per_order_amount":{"type":"number","nullable":true},"consumed_amount":{"type":"number"},"remaining_amount":{"type":"number"},"category_scope":{"type":"array","items":{"type":"string"},"nullable":true},"seller_scope":{"type":"array","items":{"type":"string"},"nullable":true},"expires_at":{"type":"string","nullable":true},"created_at":{"type":"string"}}},"CreateMandateRequest":{"type":"object","required":["currency","max_total_amount"],"properties":{"currency":{"type":"string","description":"ISO 4217 currency code, e.g. USD, MYR, JPY"},"max_total_amount":{"type":"number","description":"Total authorized spend cap"},"max_per_order_amount":{"type":"number","nullable":true,"description":"Per-order cap (optional)"},"category_scope":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Restrict to specific category codes (null = all categories)"},"seller_scope":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Restrict to specific seller enterprise IDs (null = all sellers)"},"expires_at":{"type":"string","nullable":true,"description":"ISO 8601 expiry datetime (null = no expiry)"}}}}}}