{"info":{"_postman_id":"a1b2c3d4-1app-grow-api-v1","name":"1app Grow API v1","description":"REST API for transactional messaging, contacts, lists, campaigns, and lead capture.\n\n**Postman setup**\n1. Import this collection + the environment file.\n2. In Grow: Profile \u2192 API Tokens \u2192 create token with **read** + **write** (both required).\n3. Set environment `apiToken` to that token.\n4. Run **List WhatsApp numbers** \u2192 set `whatsappFrom` to a `phone` value from the response (recommended), or set `whatsappNumberId` instead.\n5. Set `whatsappOtpTemplate` to your approved AUTHENTICATION template name.\n6. Send **WhatsApp OTP** with `from` in the body.\n\nDocs: https:\/\/grow.1app.online\/developers\/docs","schema":"https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{apiToken}}","type":"string"}]},"variable":[{"key":"baseUrl","value":"https:\/\/grow.1app.online\/api\/v1"},{"key":"apiToken","value":""},{"key":"contactId","value":"1"},{"key":"listId","value":"1"},{"key":"campaignId","value":"1"},{"key":"messageId","value":"1"},{"key":"whatsappOtpTemplate","value":"1app_verify"},{"key":"whatsappNumberId","value":"1"},{"key":"whatsappFrom","value":"+2348012345678"}],"item":[{"name":"WhatsApp setup","description":"Discover sender numbers for your workspace before sending OTP\/template messages.","item":[{"name":"List WhatsApp numbers","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/whatsapp-numbers","description":"Requires `read`. Returns active numbers \u2014 use `id` as `whatsapp_number_id` when sending."},"response":[]}]},{"name":"Transactional messages","description":"Synchronous sends \u2014 not queued behind campaigns. Requires `write` ability. Rate limit: 300\/min.","item":[{"name":"WhatsApp OTP","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"},{"key":"Idempotency-Key","value":"verify-user-{{$timestamp}}"}],"body":{"mode":"raw","raw":"{\n  \"to\": \"+2348012345678\",\n  \"code\": \"482910\",\n  \"template\": \"{{whatsappOtpTemplate}}\",\n  \"language\": \"en\",\n  \"from\": \"{{whatsappFrom}}\"\n}"},"url":"{{baseUrl}}\/messages\/whatsapp\/otp","description":"Send a one-time code via an AUTHENTICATION WhatsApp template. Set `whatsappFrom` to a phone from **List WhatsApp numbers** (must match the workspace). Remove `from` to use the default sender."},"response":[]},{"name":"SMS OTP","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"},{"key":"Idempotency-Key","value":"sms-otp-{{$timestamp}}"}],"body":{"mode":"raw","raw":"{\n  \"to\": \"+2348012345678\",\n  \"code\": \"482910\"\n}"},"url":"{{baseUrl}}\/messages\/sms\/otp"},"response":[]},{"name":"Transactional email","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"to\": \"user@example.com\",\n  \"subject\": \"Your receipt\",\n  \"html\": \"<p>Thank you for your purchase.<\/p>\"\n}"},"url":"{{baseUrl}}\/messages\/email"},"response":[]},{"name":"SMS (free-form)","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"to\": \"+2348012345678\",\n  \"body\": \"Your order has shipped.\"\n}"},"url":"{{baseUrl}}\/messages\/sms"},"response":[]},{"name":"WhatsApp template","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"to\": \"+2348012345678\",\n  \"template\": \"order_update\",\n  \"language\": \"en\",\n  \"variables\": [\"Ada\", \"#1042\"],\n  \"from\": \"{{whatsappFrom}}\"\n}"},"url":"{{baseUrl}}\/messages\/whatsapp"},"response":[]},{"name":"Message status","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/messages\/{{messageId}}","description":"Requires `read` ability."},"response":[]}]},{"name":"Contacts","description":"Requires `read` for GET, `write` for POST\/PUT\/DELETE.","item":[{"name":"List contacts","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":{"raw":"{{baseUrl}}\/contacts?per_page=15&search=&status=&list_id=","host":["{{baseUrl}}"],"path":["contacts"],"query":[{"key":"per_page","value":"15"},{"key":"search","value":""},{"key":"status","value":""},{"key":"list_id","value":""}]}},"response":[]},{"name":"Get contact","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/contacts\/{{contactId}}"},"response":[]},{"name":"Create contact","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Ada Lovelace\",\n  \"email\": \"ada@example.com\",\n  \"phone\": \"+2348012345678\",\n  \"whatsapp_phone\": \"+2348012345678\",\n  \"tags\": [\"customer\"],\n  \"list_id\": null\n}"},"url":"{{baseUrl}}\/contacts"},"response":[]},{"name":"Update contact","request":{"method":"PUT","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Ada Lovelace\",\n  \"tags\": [\"customer\", \"vip\"]\n}"},"url":"{{baseUrl}}\/contacts\/{{contactId}}"},"response":[]},{"name":"Delete contact","request":{"method":"DELETE","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/contacts\/{{contactId}}"},"response":[]}]},{"name":"Lists","item":[{"name":"List contact lists","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/lists"},"response":[]},{"name":"Get list","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/lists\/{{listId}}"},"response":[]},{"name":"List contacts in list","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/lists\/{{listId}}\/contacts"},"response":[]},{"name":"Create list","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Imported from 1app\"\n}"},"url":"{{baseUrl}}\/lists"},"response":[]},{"name":"Update list","request":{"method":"PUT","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Newsletter subscribers\",\n  \"description\": \"Updated description\"\n}"},"url":"{{baseUrl}}\/lists\/{{listId}}"},"response":[]},{"name":"Delete list","request":{"method":"DELETE","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/lists\/{{listId}}"},"response":[]}]},{"name":"Campaigns","description":"Read-only. Requires `read` ability.","item":[{"name":"List campaigns","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/campaigns"},"response":[]},{"name":"Get campaign","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/campaigns\/{{campaignId}}"},"response":[]},{"name":"Campaign logs","request":{"method":"GET","header":[{"key":"Accept","value":"application\/json"}],"url":"{{baseUrl}}\/campaigns\/{{campaignId}}\/logs"},"response":[]}]},{"name":"Leads","item":[{"name":"Submit lead","request":{"method":"POST","header":[{"key":"Content-Type","value":"application\/json"},{"key":"Accept","value":"application\/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Chidi Okonkwo\",\n  \"email\": \"chidi@example.com\",\n  \"phone\": \"+2348012345678\",\n  \"source\": \"api\",\n  \"form_slug\": null,\n  \"custom_fields\": {\n    \"company\": \"Acme Ltd\"\n  }\n}"},"url":"{{baseUrl}}\/leads","description":"Authenticated lead ingestion. Creates contact + submission."},"response":[]}]}]}