Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/wish-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
contact:
email: partner-api@wish.com
x-wish-dev-contact:
assignee: kwei
email: marketplace-external-api@contextlogic.com
description: 'Wish Marketplace V3 API
# General Information
The Wish Marketplace API will be using oAuth to authenticate in order to offer better security for its users
* Learn about oAuth here.'
version: 3.0.65
title: Wish Marketplace V3 Payments API
servers:
- url: https://merchant.wish.com
description: V3 API endpoint
security:
- OAuth2: []
tags:
- description: Payments APIs
name: Payments
paths:
/api/v3/payments/invoices/bulk_get:
post:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentInvoiceOrderDownloadJob'
description: successfully queued a batch invoice download job
'400':
content:
application/json:
examples:
InvalidParameter:
value:
message: There is no such invoice download job for the merchant.
code: '90001'
schema:
$ref: '#/components/schemas/APIError'
description: failed to queue an invoice download job
parameters:
- $ref: '#/components/parameters/invoices_limit_order_download_job'
- $ref: '#/components/parameters/payment_released_at_min'
- $ref: '#/components/parameters/payment_released_at_max'
- $ref: '#/components/parameters/invoices_sort_by'
tags:
- Payments
summary: Batch download invoices
security:
- OAuth2:
- payments:read
operationId: downloadPaymentInvoices
x-code-samples:
- lang: php_curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => \"https://merchant.wish.com/api/v3/payments/invoices/bulk_get?limit=SOME_INTEGER_VALUE&payment_released_at_min=SOME_STRING_VALUE&payment_released_at_max=SOME_STRING_VALUE&sort_by=SOME_STRING_VALUE\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"POST\",\n CURLOPT_HTTPHEADER => array(\n \"authorization: Bearer REPLACE_BEARER_TOKEN\"\n ),\n));\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: shell_curl
source: "curl --request POST \\\n --url 'https://merchant.wish.com/api/v3/payments/invoices/bulk_get?limit=SOME_INTEGER_VALUE&payment_released_at_min=SOME_STRING_VALUE&payment_released_at_max=SOME_STRING_VALUE&sort_by=SOME_STRING_VALUE' \\\n --header 'authorization: Bearer REPLACE_BEARER_TOKEN'"
- lang: java_unirest
source: "HttpResponse<String> response = Unirest.post(\"https://merchant.wish.com/api/v3/payments/invoices/bulk_get?limit=SOME_INTEGER_VALUE&payment_released_at_min=SOME_STRING_VALUE&payment_released_at_max=SOME_STRING_VALUE&sort_by=SOME_STRING_VALUE\")\n .header(\"authorization\", \"Bearer REPLACE_BEARER_TOKEN\")\n .asString();"
- lang: javascript_jquery
source: "var settings = {\n \"async\": true,\n \"crossDomain\": true,\n \"url\": \"https://merchant.wish.com/api/v3/payments/invoices/bulk_get?limit=SOME_INTEGER_VALUE&payment_released_at_min=SOME_STRING_VALUE&payment_released_at_max=SOME_STRING_VALUE&sort_by=SOME_STRING_VALUE\",\n \"method\": \"POST\",\n \"headers\": {\n \"authorization\": \"Bearer REPLACE_BEARER_TOKEN\"\n }\n}\n\n$.ajax(settings).done(function (response) {\n console.log(response);\n});"
- lang: python_requests
source: 'import requests
url = "https://merchant.wish.com/api/v3/payments/invoices/bulk_get"
querystring = {"limit":"SOME_INTEGER_VALUE","payment_released_at_min":"SOME_STRING_VALUE","payment_released_at_max":"SOME_STRING_VALUE","sort_by":"SOME_STRING_VALUE"}
headers = {''authorization'': ''Bearer REPLACE_BEARER_TOKEN''}
response = requests.request("POST", url, headers=headers, params=querystring)
print(response.text)'
description: Batch payment invoice download
/api/v3/payments/invoices/bulk_get/{id}:
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentInvoiceOrderDownloadJob'
description: successfully queried for the invoice download job
'400':
content:
application/json:
examples:
InvalidParameter:
value:
message: There is no such invoice download job for the merchant.
code: '90001'
schema:
$ref: '#/components/schemas/APIError'
description: failed to query for a invoice download job
parameters:
- required: true
in: path
description: ID of the batch invoice download job to query
name: id
schema:
type: string
format: object-id
tags:
- Payments
summary: Get batch invoice download job status
security:
- OAuth2:
- payments:read
operationId: getPaymentInvoicesDownloadJob
x-code-samples:
- lang: php_curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => \"https://merchant.wish.com/api/v3/payments/invoices/bulk_get/{id}\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"GET\",\n CURLOPT_HTTPHEADER => array(\n \"authorization: Bearer REPLACE_BEARER_TOKEN\"\n ),\n));\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: shell_curl
source: "curl --request GET \\\n --url 'https://merchant.wish.com/api/v3/payments/invoices/bulk_get/{id}' \\\n --header 'authorization: Bearer REPLACE_BEARER_TOKEN'"
- lang: java_unirest
source: "HttpResponse<String> response = Unirest.get(\"https://merchant.wish.com/api/v3/payments/invoices/bulk_get/{id}\")\n .header(\"authorization\", \"Bearer REPLACE_BEARER_TOKEN\")\n .asString();"
- lang: javascript_jquery
source: "var settings = {\n \"async\": true,\n \"crossDomain\": true,\n \"url\": \"https://merchant.wish.com/api/v3/payments/invoices/bulk_get/{id}\",\n \"method\": \"GET\",\n \"headers\": {\n \"authorization\": \"Bearer REPLACE_BEARER_TOKEN\"\n }\n}\n\n$.ajax(settings).done(function (response) {\n console.log(response);\n});"
- lang: python_requests
source: 'import requests
url = "https://merchant.wish.com/api/v3/payments/invoices/bulk_get/{id}"
headers = {''authorization'': ''Bearer REPLACE_BEARER_TOKEN''}
response = requests.request("GET", url, headers=headers)
print(response.text)'
/api/v3/payments/early_payment:
get:
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/EarlyPayment'
description: successfully queried for merchant early payment info
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/APIError'
description: failed to query for merchant early payment info
tags:
- Payments
description: Get info about early payment.
summary: Get merchant early payment info
security:
- OAuth2:
- payments:read
x-code-samples:
- lang: php_curl
source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n CURLOPT_URL => \"https://merchant.wish.com/api/v3/payments/early_payment\",\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_ENCODING => \"\",\n CURLOPT_MAXREDIRS => 10,\n CURLOPT_TIMEOUT => 30,\n CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n CURLOPT_CUSTOMREQUEST => \"GET\",\n CURLOPT_HTTPHEADER => array(\n \"authorization: Bearer REPLACE_BEARER_TOKEN\"\n ),\n));\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n echo \"cURL Error #:\" . $err;\n} else {\n echo $response;\n}"
- lang: shell_curl
source: "curl --request GET \\\n --url 'https://merchant.wish.com/api/v3/payments/early_payment' \\\n --header 'authorization: Bearer REPLACE_BEARER_TOKEN'"
- lang: java_unirest
source: "HttpResponse<String> response = Unirest.get(\"https://merchant.wish.com/api/v3/payments/early_payment\")\n .header(\"authorization\", \"Bearer REPLACE_BEARER_TOKEN\")\n .asString();"
- lang: javascript_jquery
source: "var settings = {\n \"async\": true,\n \"crossDomain\": true,\n \"url\": \"https://merchant.wish.com/api/v3/payments/early_payment\",\n \"method\": \"GET\",\n \"headers\": {\n \"authorization\": \"Bearer REPLACE_BEARER_TOKEN\"\n }\n}\n\n$.ajax(settings).done(function (response) {\n console.log(response);\n});"
- lang: python_requests
source: 'import requests
url = "https://merchant.wish.com/api/v3/payments/early_payment"
headers = {''authorization'': ''Bearer REPLACE_BEARER_TOKEN''}
response = requests.request("GET", url, headers=headers)
print(response.text)'
operationId: getEarlyPayment
components:
schemas:
PaymentInvoiceOrderDownloadJob:
type: object
properties:
status:
type: string
description: The status of the download job
job_id:
type: string
description: ID of the download job
format: object-id
total_count:
type: number
description: Total number of invoices attached to the download job
created_at:
type: string
description: Created time of the download job
format: date-time
completed_at:
type: string
description: Complete time of the download job
format: date-time
file_urls:
items:
type: string
type: array
description: List of download S3 download urls
processed_count:
type: number
description: This number indicates how many invoices have been processed so far
merchant_id:
type: string
description: ID of the merchant that the invoices are for
format: object-id
allOf:
- $ref: '#/components/schemas/V3GenericReportStatus'
Price:
required:
- amount
- currency_code
type: object
properties:
amount:
minimum: 0
type: number
description: Non-negative amount in decimals.
format: float
currency_code:
format: iso-4217
type: string
description: The 3-letter currency code defined in [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html).
example: USD
APIError:
required:
- code
- message
type: object
properties:
message:
type: string
code:
type: integer
format: int32
EarlyPayment:
type: object
properties:
available_amount:
$ref: '#/components/schemas/Price'
V3GenericReportStatus:
type: object
description: A generic report status object used when an endpoint wants to return the status of their downloadable file
properties:
status:
enum:
- PENDING
- CREATING
- READY
- EXCEPTION
type: string
description: "1. PENDING - The report generation request has been received and is awaiting processing\n2. CREATING - The report is being created\n3. READY -\tThe report is ready for download from `file_urls`\n4. EXCEPTION - The report generation failed, contact our api support\n"
expiry_time:
type: string
description: The timestamp on when this report expires and `file_urls` become invalid
format: date-time
total_count:
type: number
description: Total number of files attached to the report
created_at:
type: string
description: The timestamp on when this report is created
format: date-time
completed_at:
type: string
description: The timestamp on when this report is completed
format: date-time
file_urls:
items:
type: string
type:
- array
- 'null'
description: When the status is READY, the report will be availble at these urls. Otherwise it will be `null`
processed_count:
type: number
description: This number indicates how many files have been processed so far
id:
type: string
description: ID of the report
format: object-id
parameters:
invoices_limit_order_download_job:
schema:
minimum: 1
type: integer
required: false
description: The limit on the number of orders that will be returned.
name: limit
in: query
payment_released_at_max:
description: (Optional)Specify the end of the time window to view desired payments. Payments released after this time will not show.
required: false
name: payment_released_at_max
in: query
example: '2020-01-01T07:00:00.000Z'
schema:
type: string
format: date-time
invoices_sort_by:
schema:
default: payment_released_at
type: string
required: false
description: '(Optional)Choose what field to order the payments, the order is descending by default. Current supported fields are:
* payment_released_at: The time when the payment was released.
'
name: sort_by
in: query
payment_released_at_min:
description: (Optional)Specify the beginning of the time window to view desired payments. Payments released before this time will not show.
required: false
name: payment_released_at_min
in: query
example: '2020-01-01T07:00:00.000Z'
schema:
type: string
format: date-time
securitySchemes:
OpenID:
type: openIdConnect
openIdConnectUrl: https://merchant.wish.com/oidc/.well-known/openid-configuration
OAuth2:
type: oauth2
flows:
authorizationCode:
scopes:
payments:write: Update payments
tickets:write: Write customer tickets
epc:read: read EPC info
returns:write: Write returns
returns:read: Read returns
fbw:read: Read FBW
products:read: Read products
payments:read: Read payments
fbw:write: Write FBW
merchant:write: Write merchant
products:write: Write products
ratings:read: Read ratings
videos:read: Read videos
compliance:write: Write Compliance
product_boost:read: Read ProductBoost
listing_quality:read: Read listing quality
webhook:write: Write webhook
orders:read: Read orders
compliance:read: Read Compliance
fbs:read: Read FBS
penalties:read: Read penalties
penalties:write: Update penalties
infractions:read: Read infractions
orders:write: Update orders
merchant:read: Read merchant
notifications:write: Write notifications
announcements:read: Read announcements
product_boost:write: Write ProductBoost
notifications:read: Read notifications
webhook:read: Read webhook
qoo10:read: Read Qoo10
wps_parcel:write: Write WishParcel
wps_parcel:read: Read WishParcel
tickets:read: Read customer tickets
infractions:write: Write infractions
videos:write: Write videos
epc:write: write EPC info
tokenUrl: https://merchant.wish.com/api/v3/oauth/access_token
refreshUrl: https://merchant.wish.com/api/v3/oauth/refresh_token
authorizationUrl: https://merchant.wish.com/v3/oauth/authorize
externalDocs:
url: https://merchant.wish.com/documentation/api/v3/explorer
description: API explorer
x-wish-hidden: false