Vinix· docs
Getting started

Quickstart

Hash credentials, trade for an X-Auth-Token, and make your first API call.

A hosted sandbox is not yet available — see Sandbox. The flow below runs against your live account, so use a non-production user or test callflow when experimenting with PSTN-bound endpoints.

1. Gather what you need

  • The account name you chose at signup (or your account realm / a phone number on the account).
  • A user username and password for that account.
  • Your account ID (UUID, on the dashboard home).
  • The API base URLhttps://api.vinixglobal.com/v2.
export VINIX_ACCOUNT_NAME=acme              # account name, realm, or phone_number
export VINIX_USERNAME=[email protected]
export VINIX_PASSWORD='m32c6NfqYEt'
export VINIX_ACCOUNT_ID=...                 # UUID from the dashboard
export VINIX_BASE=https://api.vinixglobal.com/v2

2. Exchange credentials for an auth token

Hash the user credentials (MD5 or SHA-1 of username:password, with the username lowercased) and PUT /v2/user_auth. See Authentication for the full mechanics.

HASH=$(echo -n "${VINIX_USERNAME,,}:${VINIX_PASSWORD}" | md5sum | cut -d' ' -f1)

VINIX_AUTH_TOKEN=$(curl -s -X PUT $VINIX_BASE/user_auth \
  -H "Content-Type: application/json" \
  -d "{\"data\":{\"credentials\":\"$HASH\",\"account_name\":\"$VINIX_ACCOUNT_NAME\",\"method\":\"md5\"}}" \
  | jq -r '.auth_token')

export VINIX_AUTH_TOKEN

The response also returns account_id, owner_id, and is_reseller under data — capture them if you don't already know them.

3. List the users on your account

A read-only smoke test:

curl $VINIX_BASE/accounts/$VINIX_ACCOUNT_ID/users \
  -H "X-Auth-Token: $VINIX_AUTH_TOKEN"
const r = await fetch(
  `${process.env.VINIX_BASE}/accounts/${process.env.VINIX_ACCOUNT_ID}/users`,
  { headers: { "X-Auth-Token": process.env.VINIX_AUTH_TOKEN! } },
);
const { data } = await r.json();
console.log(data);
import os, httpx
r = httpx.get(
    f"{os.environ['VINIX_BASE']}/accounts/{os.environ['VINIX_ACCOUNT_ID']}/users",
    headers={"X-Auth-Token": os.environ["VINIX_AUTH_TOKEN"]},
)
r.raise_for_status()
print(r.json()["data"])
<?php
$ch = curl_init(
  getenv("VINIX_BASE") . "/accounts/"
  . getenv("VINIX_ACCOUNT_ID") . "/users"
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "X-Auth-Token: " . getenv("VINIX_AUTH_TOKEN"),
]);
echo curl_exec($ch);

4. Originate an internal call with Quickcall

Pick a user or device UUID from the list above. PUT /quickcall/{id}/{number} rings that endpoint and bridges the call to number when answered. Ring an internal extension first so you don't pay for outbound PSTN minutes.

curl -X PUT $VINIX_BASE/accounts/$VINIX_ACCOUNT_ID/quickcall/USER_OR_DEVICE_ID/EXT_OR_NUMBER \
  -H "X-Auth-Token: $VINIX_AUTH_TOKEN"

See Core API → Live Calls → Quickcall for the full options (caller ID, auto-answer, timeout).

5. Next steps

On this page