Developer Portal

OS-ConnectIQ API Reference

Integrate WhatsApp messaging campaigns, secure customer authentication workflows, and contact automation directly into your CRM, tools, or backend applications using our secure developer API.

notifications_active

Transactional Alerts

Automate and send real-time order confirmations, booking updates, shipment tracking, or invoice receipts directly to WhatsApp.

lock

Secure OTP & 2FA

Deliver secure verification PINs, one-time passwords (OTP), and two-factor authentication codes during user sign-ups or security logins.

sync

CRM & Sync Workflows

Automatically sync new leads, create contacts, and import conversation histories into Salesforce, HubSpot, Shopify, or custom backends.

campaign

Broadcast Triggering

Programmatically launch pre-approved Meta message templates for personalized marketing, re-engagement, or operational alerts.

Select SDK Language:

rocket_launchGetting Started & Prerequisites

1How to Get an API Key

  1. Log in to your OS-ConnectIQ dashboard panel.
  2. Navigate to Settings and click the API Keys tab.
  3. Click Create API Key, enter a descriptive label, and select requested permission scopes.
  4. Click Generate Key.
  5. Copy and save the key immediately. For compliance and safety reasons, the full secret string is displayed only once and cannot be retrieved after closing the modal.

2Prerequisites to Call the API

  • Official WhatsApp Sender: Set up and verify an active sender phone number inside the dashboard wizard.
  • Active Subscription: Ensure your account has an active messaging plan or a started Free Trial.
  • E.164 Recipient Numbers: The destination phone numbers must include the country code prefix (e.g. +14155550123).
  • Content Type Headers: Specify Content-Type: application/json for all POST requests.

1. Authentication & Profile

GET/api/v1/me

Verify your credentials and query the authenticated workspace parameters. This endpoint validates the active key and returns context on the owner account.

Authorization: Bearer cq_live_your_api_key_here

HTTP Request Headers

HeaderTypeDescription
AuthorizationstringBearer token formatted as Bearer cq_live_...
Request (GET /me)CURL
curl -X GET "https://connectiq.ostechlabs.com/api/v1/me" \
  -H "Authorization: Bearer cq_live_83f2a1b9c9f7a..."
{
  "data": {
    "id": "usr_7f8a9b6c",
    "name": "Alex Admin",
    "email": "alex@ostechlabs.com",
    "role": "admin",
    "created_at": "2026-07-10T12:00:00.000Z"
  }
}

2. Messages API

POST/api/v1/messages

Sends a real-time WhatsApp notification, prompt, or media document directly to the client's destination phone. If the contact or active chat conversation does not exist, the API automatically provisions it.

HTTP Request Headers

HeaderTypeRequirementDescription
AuthorizationstringRequiredBearer token formatted as Bearer cq_live_...
Content-TypestringRequiredMust be set to application/json.

JSON Body Parameters

FieldTypeRequirementDescription
tostringRequiredDestination phone number in E.164 standard format (e.g. +14155550123).
typestringOptionalPayload type: text, template, image, video, document, or audio. Defaults to text.
textstringOptionalPlain text message body, or caption text if sending media files.
media_urlstringOptionalRequired if type is media. Accessible public asset URL.
filenamestringOptionalFilename metadata visible to users for document type attachments.
templateobjectOptionalRequired when type is template. Object parameters:
  • name (string, required): Registered Meta template name.
  • language (string, required): Code string (e.g. en_US).
  • params (array|object, optional): Variables mapping array or structured parameters.
reply_to_message_idstringOptionalUUID identifier of a previous message in the same thread to reply to.
namestringOptionalDisplay name used when creating a new contact if phone does not exist yet.
Request (POST /messages)CURL
curl -X POST "https://connectiq.ostechlabs.com/api/v1/messages" \
  -H "Authorization: Bearer cq_live_83f2a1b9c9f7a..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155550123",
    "type": "text",
    "text": "Hello Jane, your order #882 is confirmed!"
  }'
{
  "data": {
    "message_id": "7c8e9b6a-d2d4-4e3f-a77b-22b9c7a6e3d2",
    "whatsapp_message_id": "wamid.HBgLMTQxNTU1NTAxMjM...",
    "conversation_id": "2d3e4f5a-c6b7-4e3a-9e2c-3d2f4e5a6b7c",
    "contact_id": "9b6a7c8d-e3f4-4a5b-9c2d-3e4f5a6b7c8d",
    "contact_created": false
  }
}

3. Contacts API

GET/api/v1/contacts

Query and list all synchronized contacts inside your workspace. You can search by contact names, filter by tags, and request paginated pages using cursors.

HTTP Request Headers

HeaderTypeRequirementDescription
AuthorizationstringRequiredBearer token formatted as Bearer cq_live_...

URL Query Parameters

ParameterTypeDefaultDescription
searchstring-Text keyword matching contact name or phone columns.
limitnumber20Max records returned per page (max limit: 100).
cursorstring-The keyset cursor string returned under meta.next_cursor.
tagstring-UUID identifier of a workspace tag to filter contacts by.
Request (GET /contacts)CURL
curl -X GET "https://connectiq.ostechlabs.com/api/v1/contacts?search=Jane&limit=10" \
  -H "Authorization: Bearer cq_live_83f2a1b9c9f7a..."
{
  "data": [
    {
      "id": "9b6a7c8d-e3f4-4a5b-9c2d-3e4f5a6b7c8d",
      "name": "Jane Doe",
      "phone": "+14155550123",
      "email": "jane@example.com",
      "created_at": "2026-07-14T08:12:45.312Z",
      "tags": ["vip", "customer"]
    }
  ],
  "meta": {
    "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAyNi0wNy0xNFQ..."
  }
}