{
  "info": {
    "_postman_id": "hisocial-voice-api-v1-collection-0001",
    "name": "hiSocial Voice Broadcast API (v1)",
    "description": "Official Postman collection for the hiSocial Voice Broadcast REST API.\n\nSetup:\n1. Open collection **Variables** and set `apiKey` to your key from https://app.hisocial.in/account (My Account → Developer API).\n2. `baseUrl` defaults to https://vapi.hisocial.in/api.\n3. Auth is pre-set at the collection level (Bearer {{apiKey}}) — every request inherits it.\n\nRate limit: 60 requests/min per key. Full docs: https://app.hisocial.in/api-docs.html",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{apiKey}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://vapi.hisocial.in/api",
      "type": "string"
    },
    {
      "key": "apiKey",
      "value": "hs_live_xxxx",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Account",
      "item": [
        {
          "name": "Credit balance",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/credits",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "credits"
              ]
            },
            "description": "Returns your voice-credit balance. 1 credit per completed call; non-completed calls auto-refund."
          },
          "response": []
        },
        {
          "name": "Devices",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/devices",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "devices"
              ]
            },
            "description": "Lists your connected WhatsApp devices. Use a device id as deviceId when calling or creating campaigns."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Voice calls",
      "item": [
        {
          "name": "Place a call",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/call",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "call"
              ]
            },
            "description": "Places a single voice call to one number. Returns { dialId, callId }. A credit is charged on connect and refunded if the call doesn't complete.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"deviceId\": 12,\n  \"phone\": \"919812345678\",\n  \"mode\": \"tts\",\n  \"ttsText\": \"Namaste! Aapka order ship ho gaya hai.\",\n  \"language\": \"hi-IN\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Call status",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/call/:dialId/status",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "call",
                ":dialId",
                "status"
              ]
            },
            "description": "Checks whether a placed call is still active. Replace :dialId with the value from Place a call."
          },
          "response": []
        },
        {
          "name": "Hang up",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/call/:dialId/hangup",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "call",
                ":dialId",
                "hangup"
              ]
            },
            "description": "Ends an in-progress call immediately."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Campaigns",
      "item": [
        {
          "name": "Push audio (mp3 link)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/audio",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "audio"
              ]
            },
            "body": {
              "mode": "raw",
              "raw": "{\n  \"url\": \"https://cdn.example.com/promo.mp3\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            },
            "description": "Import a public mp3 link; returns a local audioUrl for an audio campaign."
          },
          "response": []
        },
        {
          "name": "List campaigns",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/campaigns",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "campaigns"
              ]
            },
            "description": "Lists all your campaigns, newest first."
          },
          "response": []
        },
        {
          "name": "Create campaign",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/campaigns",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "campaigns"
              ]
            },
            "description": "Creates a bulk voice campaign (draft). Call Start to begin dialing.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Diwali offer\",\n  \"deviceId\": 12,\n  \"groupId\": 7,\n  \"voiceType\": \"tts\",\n  \"ttsText\": \"Namaste! Diwali par 20% off.\",\n  \"ttsLanguage\": \"hi-IN\",\n  \"delayBetweenCalls\": 8\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Start campaign",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/campaigns/:id/start",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "campaigns",
                ":id",
                "start"
              ]
            },
            "description": "Starts dialing the campaign's contact group. Replace :id with the campaign id."
          },
          "response": []
        },
        {
          "name": "Stop campaign",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/campaigns/:id/stop",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "campaigns",
                ":id",
                "stop"
              ]
            },
            "description": "Stops a running campaign."
          },
          "response": []
        },
        {
          "name": "Duplicate campaign",
          "request": {
            "method": "POST",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/campaigns/:id/duplicate",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "campaigns",
                ":id",
                "duplicate"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "31"
                }
              ]
            },
            "description": "Duplicate a campaign as a fresh draft."
          },
          "response": []
        },
        {
          "name": "Campaign analytics",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/campaigns/:id/analytics",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "campaigns",
                ":id",
                "analytics"
              ],
              "variable": [
                {
                  "key": "id",
                  "value": "31"
                }
              ]
            },
            "description": "Delivery & credit analytics for one campaign."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Contacts",
      "item": [
        {
          "name": "Contact groups",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/contact-groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "contact-groups"
              ]
            },
            "description": "Lists your contact groups with a live contact count."
          },
          "response": []
        },
        {
          "name": "Create group",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/v1/contact-groups",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "contact-groups"
              ]
            },
            "description": "Creates a new contact group.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"Mumbai leads\",\n  \"description\": \"Q3 imports\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        },
        {
          "name": "Group contacts",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/contact-groups/:groupId/contacts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "contact-groups",
                ":groupId",
                "contacts"
              ]
            },
            "description": "Lists all contacts in a group. Replace :groupId with the group id."
          },
          "response": []
        }
      ]
    },
    {
      "name": "Reports",
      "item": [
        {
          "name": "Summary",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/reports/summary?from=2026-09-01&to=2026-09-30",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "reports",
                "summary"
              ],
              "query": [
                {
                  "key": "from",
                  "value": "2026-09-01"
                },
                {
                  "key": "to",
                  "value": "2026-09-30"
                }
              ]
            },
            "description": "Aggregated call stats with an optional date range (YYYY-MM-DD)."
          },
          "response": []
        },
        {
          "name": "Call list",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/calls",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "calls"
              ]
            },
            "description": "Your most recent calls (up to 500), newest first."
          },
          "response": []
        },
        {
          "name": "Single call",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/calls/:id",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "calls",
                ":id"
              ]
            },
            "description": "Full detail for one call incl. transcription and customer replies. Replace :id with the call id."
          },
          "response": []
        },
        {
          "name": "Export (Excel)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{baseUrl}}/v1/calls/export",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "v1",
                "calls",
                "export"
              ]
            },
            "description": "Downloads all your calls as an Excel .xlsx file. In Postman use 'Send and Download'."
          },
          "response": []
        }
      ]
    }
  ]
}