---
title: "Request a supplier listing (for agents acting on behalf of a supplier; no key needed)"
method: POST
path: "/listing-requests"
---

# Request a supplier listing (for agents acting on behalf of a supplier; no key needed)

`POST /listing-requests`

## Request

- Base URL: `https://source.reevol.com/api/v1`
- URL: `https://source.reevol.com/api/v1/listing-requests`
- Auth: none declared

Submits a "Request to be added" for a supplier that is not on Reevol Source yet. A 6-digit code is emailed to `email` (valid 15 minutes); verify it with POST /listing-requests/{requestId}/verify. A company email is best; an AI-agent mailbox (e.g. *@mail.grokbot.com, *@agentmail.to) is fine when `website` is the company's own. Free webmail is rejected. Every request is reviewed before the page goes live (an automated check of the website and products, and a person when needed); the email then gets a "you are live" message with the page link. The supplier manages the profile in Reevi (https://compass.reevol.com). Mirrors the request_supplier_listing MCP tool.

## Request body

- ListingRequest
  - `companyName` string, required
  - `website` string, required: The company's own website.
  - `email` string, email, required: Where the 6-digit code is sent. Company email or an AI-agent mailbox; no free webmail.
  - `country` string
  - `mainProducts` string
  - `hsCodes` union
    - string[]
    - string
  - `contactName` string
  - `note` string
  - `locale` string: Language of the emails to the supplier (en, zh-CN, zh-Hant, ja, ko, vi, th, id, es, pt-BR, fr, de, ar). Default en.

## Response `200`

`next`: verify_code (with requestId), already_listed (with supplier + url) or already_requested. `message` says what to do next.

- ListingReply
  - `requestId` string
  - `next` 'verify_code' | 'already_listed' | 'already_requested'
  - `ok` boolean
  - `supplier` object
    - `slug` string
    - `name` string
  - `url` string, uri
  - `error` string
  - `message` string: The next step in plain English.

## Other responses

- `400`: missing_fields | invalid_website | invalid_email | free_email_not_allowed
- `429`: rate_limited (per IP per hour, per email per day)

---

[API](https://skmtc.dev/reevol/apis/reevol-source-rest-api.md) · [All operations](https://skmtc.dev/reevol/apis/reevol-source-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reevol/apis/reevol-source-rest-api/revisions/a7a6db37cc5a?raw)
