Skip to main content
POST
/
portal
/
auth
/
signup
Vendor Portal Signup
curl --request POST \
  --url https://staging-api.puppetvendors.com/portal/auth/signup \
  --header 'Content-Type: application/json' \
  --header 'x-access-token: <api-key>' \
  --data '
{
  "email": "<string>",
  "password": "<string>",
  "vendor": "<string>",
  "shopDomain": "<string>",
  "shopId": "<string>",
  "profile": {},
  "termsAccepted": true,
  "emailAddress": "<string>",
  "email_address": "<string>",
  "message": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://dev.puppetvendors.com/llms.txt

Use this file to discover all available pages before exploring further.

V2 Preview — This endpoint is part of the V2 API preview. Breaking changes may occur.

Overview

Create a new vendor portal signup request. The account is created in a pending state (approved: false) and requires manual merchant approval before the vendor can log in. This endpoint is public (no authentication required) and accepts legacy compatibility aliases (shopId, email_address) for backwards compatibility with older clients.

Use Cases

  • Self-service onboarding — Vendors submit a signup request from the vendor portal landing page
  • Multi-shop installations — Vendors specify shopDomain to target a specific merchant
  • Honeypot protectionemailAddress / email_address fields trap automated bots

Request Body

email
string
required
Vendor’s email address.
password
string
required
Password, minimum 6 characters.
vendor
string
required
Vendor / business name.
shopDomain
string
Preferred shop identifier (e.g. my-store.myshopify.com).
shopId
string
Legacy compatibility shop identifier.
profile
object
Optional profile metadata.
termsAccepted
boolean
Must be true if terms acceptance is required by the shop.
emailAddress
string
Honeypot field — must be empty.
email_address
string
Legacy honeypot alias — must be empty.
message
string
Optional custom success message.

Response

200
{
  "success": true,
  "data": {
    "userId": "507f1f77bcf86cd799439011",
    "email": "vendor@example.com",
    "approved": false,
    "message": "Thank you for submitting your request. We will respond as soon as possible."
  }
}

Example

curl -X POST "https://staging-api.puppetvendors.com/portal/auth/signup" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "vendor@example.com",
    "password": "secret123",
    "shopDomain": "my-store.myshopify.com",
    "vendor": "Acme Co",
    "termsAccepted": true,
    "email_address": ""
  }'

More Examples

Signup with full profile
curl -X POST "https://staging-api.puppetvendors.com/portal/auth/signup" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "newvendor@example.com",
    "password": "secure-pass-123",
    "shopDomain": "my-store.myshopify.com",
    "vendor": "Fresh Produce Co",
    "firstName": "Jane",
    "lastName": "Smith",
    "phone": "+1-555-0456",
    "message": "We sell organic farm produce and would love to join your marketplace.",
    "termsAccepted": true
  }'