Connect369

API Documentation

Base URL: https://connect369.vercel.app/api/v1

Authentication

Pass your API key as a bearer token. Create one from Dashboard → API & Webhooks.

curl https://connect369.vercel.app/api/v1/balance \
  -H "Authorization: Bearer c369_live_..."

read-scope keys can call GET endpoints only. full-access keys are required to buy numbers, cancel, and manage webhooks.

Endpoints

GET/v1/balanceread key

Get your wallet balance.

GET/v1/countriesread key

List supported countries.

GET/v1/apps?country=USread key

List apps and live pricing for a country.

POST/v1/numbersfull key

Buy a virtual number. Body: { country, app, area_code? }

GET/v1/numbers/{id}/smsread key

Poll for the SMS/OTP received on a number.

POST/v1/numbers/{id}/cancelfull key

Cancel a number and refund your wallet.

GET/v1/orders?status=&country=&app=&from=&to=read key

List your order history.

POST/v1/webhooksfull key

Register a webhook endpoint. Body: { url }

GET/v1/webhooksread key

List your registered webhook endpoints.

Webhook signature verification

Every webhook delivery includes an X-Connect369-Signature header — an HMAC-SHA256 of the raw request body, signed with the secret returned when you registered the endpoint.

const expected = crypto
  .createHmac("sha256", webhookSecret)
  .update(rawBody)
  .digest("hex");

if (expected !== req.headers["x-connect369-signature"]) {
  throw new Error("Invalid signature");
}