API Reference

The CapXchange API is organized around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. The API is routed through a central Gateway to various microservices.

BASE URL
https://api.capxchange.com/v1

Login

Authenticates a user via email and password.

POST/api/auth/login

Parameters

NameDescription
email
string, required
User email address
password
string, required
User password
REQUEST
curl -X POST https://api.capxchange.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "secure123"}'
RESPONSE
{
  "id": "usr_123",
  "email": "user@example.com",
  "name": "John Doe",
  "role": "investor",
  "registration_status": "ACTIVE"
}

Google Sign-In

Authenticates or creates a user using a Google account.

POST/api/auth/google

Parameters

NameDescription
email
string, required
User email address
name
string
Full name
providerAccountId
string, required
Google ID
avatar_url
string
Profile picture URL
REQUEST
curl -X POST https://api.capxchange.com/api/auth/google \
  -H "Content-Type: application/json" \
  -d '{"email": "user@gmail.com", "providerAccountId": "1023..."}'
RESPONSE
{
  "id": "usr_124",
  "email": "user@gmail.com",
  "provider": "google"
}

Get User by Email

Retrieves user details by email address.

GET/api/user/by-email?email={email}

Parameters

NameDescription
email
string, required
User email address (Query string)
REQUEST
curl https://api.capxchange.com/api/user/by-email?email=user@example.com
RESPONSE
{
  "id": "usr_123",
  "email": "user@example.com",
  "full_name": "John Doe"
}

Update User

Updates specific fields on a user record.

PATCH/api/user/{email}

Parameters

NameDescription
email
string, required
User email (URL Param)
data
object, required
Fields to update
REQUEST
curl -X PATCH https://api.capxchange.com/api/user/user@example.com \
  -H "Content-Type: application/json" \
  -d '{"company": "New Corp"}'
RESPONSE
{
  "id": "usr_123",
  "email": "user@example.com",
  "company": "New Corp"
}

Create User Documents

Attaches KYC or business documents to a user profile.

POST/api/user/{email}/documents

Parameters

NameDescription
email
string, required
User email (URL Param)
documents
array, required
Array of document objects
REQUEST
curl -X POST https://api.capxchange.com/api/user/user@example.com/documents \
  -H "Content-Type: application/json" \
  -d '{"documents": [{"document_type": "idFront", "document_url": "https...", "file_name": "id.jpg"}]}'
RESPONSE
[
  {
    "id": "doc_456",
    "userId": "usr_123",
    "status": "pending"
  }
]

Get Pending Verifications

Admin endpoint to list all users awaiting KYC verification.

GET/api/admin/users/pending-verification
REQUEST
curl https://api.capxchange.com/api/admin/users/pending-verification \
  -H "Authorization: Bearer <ADMIN_TOKEN>"
RESPONSE
[
  {
    "id": "usr_123",
    "email": "user@example.com",
    "registration_status": "PENDING_VERIFICATION",
    "documents": [...]
  }
]

Verify User

Admin endpoint to approve or reject a user KYC application.

PATCH/api/admin/users/{email}/verify

Parameters

NameDescription
status
string, required
"APPROVED" or "REJECTED"
REQUEST
curl -X PATCH https://api.capxchange.com/api/admin/users/user@example.com/verify \
  -H "Authorization: Bearer <ADMIN_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"status": "APPROVED"}'
RESPONSE
{
  "id": "usr_123",
  "registration_status": "AWAITING_PAYMENT"
}

Get Listings

Retrieves a paginated list of market listings on CapXchange.

GET/api/listings

Parameters

NameDescription
limit
integer
Number of items to return (default: 25)
REQUEST
curl https://api.capxchange.com/api/listings?limit=10
RESPONSE
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "lst_789",
        "title": "Series B Secondary",
        "user": {
          "full_name": "Alice Capital"
        }
      }
    ]
  }
}

Newsletter Subscribe

Subscribes an email to the CapXchange intelligence feed.

POST/api/newsletter/subscribe

Parameters

NameDescription
email
string, required
Subscriber email
REQUEST
curl -X POST https://api.capxchange.com/api/newsletter/subscribe \
  -H "Content-Type: application/json" \
  -d '{"email": "investor@fund.com"}'
RESPONSE
{
  "message": "Successfully subscribed to the newsletter."
}

Save Registration Step

Saves progress in the multi-step registration flow.

POST/api/registration/save-step

Parameters

NameDescription
step
integer, required
Step number (1-6)
data
object, required
Form data for the current step
REQUEST
curl -X POST https://api.capxchange.com/api/registration/save-step \
  -H "Content-Type: application/json" \
  -d '{"step": 1, "data": {"firstName": "John", "lastName": "Doe"}}'
RESPONSE
{
  "success": true,
  "registration_step": 1
}

Submit Registration

Finalizes registration, uploads KYC documents, and transitions status.

POST/api/registration/submit

Parameters

NameDescription
multipart/form-data
form, required
Fields and files (idFront, idBack, etc.)
REQUEST
curl -X POST https://api.capxchange.com/api/registration/submit \
  -F "personalInfo={\"firstName\":\"John\"}" \
  -F "idFront=@/path/to/id.jpg"
RESPONSE
{
  "success": true,
  "redirectUrl": "/pending-verification",
  "user": { "id": "usr_123" }
}