{"item":[{"name":"Authentication","description":"Create, list and delete API keys. See\n[Authentication](https://www.dropcowboy.com/developers/api/authentication) for\nOAuth and scopes.\n","item":[{"name":"List API keys","request":{"name":"List API keys","description":{"content":"Secrets are never returned after creation. `last_used_at` and `request_count`\nshow which keys are still in use, which is what you check before deleting an old\nkey during rotation. `expires_at` is `null` for a key that never expires.\n","type":"text/plain"},"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"API keys","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"_id\": \"65f2a9b7c8d4e1f234567891\",\n      \"name\": \"Nightly contact export\",\n      \"key\": \"1a0b9c8d-7e6f-4d5c-8b4a-3f2e1d0c9b8a\",\n      \"type\": \"standard\",\n      \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n      \"scopes\": [\n        \"contacts:read\"\n      ],\n      \"mcp_client\": null,\n      \"created_at\": 1774045200000,\n      \"expires_at\": 1774048800000,\n      \"last_used_at\": null,\n      \"request_count\": 0\n    },\n    {\n      \"_id\": \"65f2a9b7c8d4e1f234567890\",\n      \"name\": \"Order system\",\n      \"key\": \"0f9e8d7c-6b5a-4c3d-9e2f-1a0b9c8d7e6f\",\n      \"type\": \"standard\",\n      \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n      \"scopes\": null,\n      \"mcp_client\": null,\n      \"created_at\": 1774041600000,\n      \"expires_at\": null,\n      \"last_used_at\": 1774041600000,\n      \"request_count\": 1520\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create an API key","request":{"name":"Create an API key","description":{"content":"Creates a key and secret pair. The `secret` is in this response only; store it\nbefore you do anything else. To rotate: create a new key, deploy it, confirm the\nold key's `last_used_at` stops moving in `GET /register/public/apikeys`, then\ndelete the old key. For an agent or a one-off script, pass `scopes` and\n`expires_in_seconds` to get a least-privilege key that removes itself. Trial\naccounts get `403` with `trial_feature_blocked`. Only a verified account can\ncreate keys: until verification is finished in the dashboard this returns\n`403` with `team-not-verified`. Existing keys keep working.\n","type":"text/plain"},"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Order system\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Key created. The secret is shown once.","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Order system\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"65f2a9b7c8d4e1f234567890\",\n    \"name\": \"Order system\",\n    \"key\": \"0f9e8d7c-6b5a-4c3d-9e2f-1a0b9c8d7e6f\",\n    \"secret\": \"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n    \"type\": \"standard\",\n    \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n    \"created_at\": 1774041600000,\n    \"expires_at\": null\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`type` ends in `validation-error`: `scopes` is empty, not an array or names an unknown scope, or `expires_in_seconds` is not an integer from 300 to 31536000.","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Order system\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"expires_in_seconds must be an integer from 300 to 31536000\",\n  \"instance\": \"/register/public/apikeys\",\n  \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Order system\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Scope missing, a requested scope the calling credential lacks (`type` ends in `insufficient-scope`), API access is not available on a trial (`type` ends in `trial_feature_blocked`), or the account is not verified yet (`type` ends in `team-not-verified`).","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Order system\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/team-not-verified\",\n  \"title\": \"Team Not Verified\",\n  \"status\": 403,\n  \"detail\": \"Verify your account before creating API keys.\",\n  \"instance\": \"/register/public/apikeys\",\n  \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","apikeys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Order system\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete an API key","request":{"name":"Delete an API key","description":{"content":"The key stops authenticating immediately and can't be restored. Use this as the last step of a rotation.\n","type":"text/plain"},"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id","disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"API key deleted","originalRequest":{"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"},"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"deleted\": true\n  },\n  \"meta\": {\n    \"request_id\": \"8fc36fe2-37dc-0da9-510b-dbbc0439f98a\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"},"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"},"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"},"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"},"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","apikeys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `_id` from `GET /register/public/apikeys` (24-character hex). Not the `key` credential.\n","type":"text/plain"},"type":"any","value":"65f2a9b7c8d4e1f234567890","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Account","description":"Your account, balance, users, carrier connection and Building Blocks.","item":[{"name":"Get your balance","request":{"name":"Get your balance","description":{"content":"Returns your account balance in US dollars. One balance covers every channel. The\nresponse includes the `available` amount, which is the balance minus what is reserved for\nsends still in flight, and your auto-recharge settings.\n","type":"text/plain"},"url":{"path":["campaign","public","balance"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Account balance","originalRequest":{"url":{"path":["campaign","public","balance"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"balance\": 1032.3695768602192,\n    \"reserved\": 6207.122425548732,\n    \"available\": 4810.94443006441,\n    \"recharge_amount\": 4552.762839011848,\n    \"recharge_threshold\": 3710.434332024306,\n    \"nag_no_funds_at\": null\n  },\n  \"meta\": {\n    \"request_id\": \"47a1bbfc-c141-ce7e-dfd0-5c33e49c79a2\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","balance"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","balance"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get your account","request":{"name":"Get your account","description":{"content":"Your team id, the account owner, and the contact frequency limit every phone send\nis checked against. For the balance use `GET /campaign/public/balance`.\n","type":"text/plain"},"url":{"path":["register","public","account"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Account details","originalRequest":{"url":{"path":["register","public","account"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n    \"owner\": {\n      \"user_id\": \"9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d\",\n      \"first_name\": \"Jordan\",\n      \"last_name\": \"Rivera\",\n      \"email\": \"jordan@example.com\"\n    },\n    \"delivery_limits\": {\n      \"frequency\": {\n        \"max_attempts\": 3,\n        \"window_days\": 3,\n        \"window_ms\": 259200000,\n        \"source\": \"default\"\n      }\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"2694f968-93fd-44ca-9b92-2110ed1ee61e\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","account"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","account"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get Building Blocks readiness","request":{"name":"Get Building Blocks readiness","description":{"content":"Reports your Building Blocks setup: whether your own carrier (BYOC) is connected, whether Building Blocks is on, your numbers, voices and agents, your prepaid funds, and how much of your builder allotment is left. Carrier credentials are never returned.\n","type":"text/plain"},"url":{"path":["register","public","integration-readiness"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Readiness snapshot","originalRequest":{"url":{"path":["register","public","integration-readiness"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"force_byoc\": false,\n    \"building_blocks_enabled\": true,\n    \"embed_resolve_contact_consent\": true,\n    \"usage_plan\": \"string\",\n    \"byoc\": {\n      \"connected\": true,\n      \"providers\": [\n        {\n          \"provider\": \"string\",\n          \"integration_type\": \"string\",\n          \"integration_id\": \"fd1af453-e613-580b-33d1-cb87bfa5499b\",\n          \"enabled\": false,\n          \"default\": true,\n          \"pool_id\": \"9a81a8db-6787-dce9-716d-f274152f1d4b\"\n        },\n        {\n          \"provider\": \"string\",\n          \"integration_type\": \"string\",\n          \"integration_id\": \"9d2a1fd3-420c-4a88-95e0-a4118c92acb6\",\n          \"enabled\": false,\n          \"default\": true,\n          \"pool_id\": null\n        }\n      ],\n      \"pool_id\": \"92154e44-0a18-00d4-b3b1-7385382a066d\"\n    },\n    \"pool_id\": \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\",\n    \"numbers\": {},\n    \"voices\": {\n      \"count\": 4868\n    },\n    \"agents\": {\n      \"count\": 1697,\n      \"published\": 2425\n    },\n    \"funds\": {\n      \"available\": 8224.380337633193,\n      \"balance\": 576.5370046719909,\n      \"reserved\": 9344.735564664006,\n      \"funds_ok\": false\n    },\n    \"allotment\": {\n      \"key_0\": {\n        \"cap\": 7117,\n        \"remaining\": 4703\n      },\n      \"key_1\": {\n        \"cap\": 4374,\n        \"remaining\": 5288\n      }\n    },\n    \"embed_ready\": true,\n    \"next_actions\": [\n      \"string\",\n      \"string\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"d8914da9-4781-0363-4683-0b50cc654605\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","integration-readiness"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","integration-readiness"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Turn on Building Blocks","request":{"name":"Turn on Building Blocks","description":{"content":"Moves your account to the Building Blocks plan, where you call and text through your own carrier (BYOC). This releases the numbers you rent from Drop Cowboy, so send `confirm_leave_retail: true` to confirm; without it the request fails with `400`.\n","type":"text/plain"},"url":{"path":["register","public","building-blocks","enable"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"confirm_leave_retail\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Building Blocks enabled","originalRequest":{"url":{"path":["register","public","building-blocks","enable"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"confirm_leave_retail\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"success\": true,\n    \"building_blocks_enabled\": true,\n    \"plan_switched\": true,\n    \"plan_id\": \"string\",\n    \"pool_id\": \"41e82956-cf20-525b-de1c-318f1209f952\"\n  },\n  \"meta\": {\n    \"request_id\": \"2a8f2e41-66e7-e8e8-af46-7d55bc0bafa5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["register","public","building-blocks","enable"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"confirm_leave_retail\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","building-blocks","enable"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"confirm_leave_retail\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","building-blocks","enable"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"confirm_leave_retail\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Let embedded widgets use a contact's existing consent","request":{"name":"Let embedded widgets use a contact's existing consent","description":{"content":"Turns on or off the setting that lets `POST /phone/embed/sms` and `POST /phone/embed/callback` send to a contact who already gave consent in Drop Cowboy. It is off by default, and while it is off every US send needs a `consent_id` from the consent widget.\n\nWhen it is on and a request sends `contact_id` without `consent_id`, Drop Cowboy loads that contact from your account and uses its granted texting consent (for SMS) or calling consent (for callbacks). The destination must be one of the contact's own numbers, and the send is refused with `consent_required` if the contact has no granted consent for that channel, has opted out or replied STOP, or is on your Do Not Call list. A signed-in dashboard user also needs permission to edit the Trust Center.\n","type":"text/plain"},"url":{"path":["register","public","building-blocks","contact-consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Setting saved","originalRequest":{"url":{"path":["register","public","building-blocks","contact-consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"success\": false,\n    \"embed_resolve_contact_consent\": true\n  },\n  \"meta\": {\n    \"request_id\": \"e9b105c9-0549-c537-ee7a-a7494479db67\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["register","public","building-blocks","contact-consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","building-blocks","contact-consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["register","public","building-blocks","contact-consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","building-blocks","contact-consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get your carrier connection","request":{"name":"Get your carrier connection","description":{"content":"Shows whether your own carrier (BYOC) is connected. Carrier credentials are never returned.\n","type":"text/plain"},"url":{"path":["integration","public","byoc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"BYOC status","originalRequest":{"url":{"path":["integration","public","byoc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"connected\": false,\n    \"providers\": [\n      {\n        \"provider\": \"string\",\n        \"integration_type\": \"string\",\n        \"integration_id\": null,\n        \"enabled\": false,\n        \"default\": false,\n        \"pool_id\": null\n      },\n      {\n        \"provider\": \"string\",\n        \"integration_type\": \"string\",\n        \"integration_id\": \"b0060226-e1f4-d94a-d31c-284dff238beb\",\n        \"enabled\": true,\n        \"default\": false,\n        \"pool_id\": null\n      }\n    ],\n    \"pool_id\": null\n  },\n  \"meta\": {\n    \"request_id\": \"43b58236-d63a-d946-5217-c11172038a3b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","byoc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","byoc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Connect your carrier","request":{"name":"Connect your carrier","description":{"content":"Connects your own carrier account (BYOC). Send the carrier as `provider` and its API credentials as `credentials`.\n","type":"text/plain"},"url":{"path":["integration","public","byoc","connect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"plivo\",\n  \"credentials\": {\n    \"key_0\": 6358,\n    \"key_1\": 3257,\n    \"key_2\": true,\n    \"key_3\": true\n  },\n  \"channels\": 8687,\n  \"cps\": 3122,\n  \"enabled\": false,\n  \"default\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Carrier connected","originalRequest":{"url":{"path":["integration","public","byoc","connect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"plivo\",\n  \"credentials\": {\n    \"key_0\": 6358,\n    \"key_1\": 3257,\n    \"key_2\": true,\n    \"key_3\": true\n  },\n  \"channels\": 8687,\n  \"cps\": 3122,\n  \"enabled\": false,\n  \"default\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"connected\": true,\n    \"provider\": \"string\",\n    \"integration_type\": \"string\",\n    \"pool_id\": \"5e8c9bd6-7e38-d6db-97c0-ef8285579ef6\",\n    \"public_data\": {\n      \"type\": [\n        \"boolean\",\n        \"null\"\n      ]\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"2b431951-407a-4015-c141-bfdfbc944960\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["integration","public","byoc","connect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"plivo\",\n  \"credentials\": {\n    \"key_0\": 6358,\n    \"key_1\": 3257,\n    \"key_2\": true,\n    \"key_3\": true\n  },\n  \"channels\": 8687,\n  \"cps\": 3122,\n  \"enabled\": false,\n  \"default\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","byoc","connect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"plivo\",\n  \"credentials\": {\n    \"key_0\": 6358,\n    \"key_1\": 3257,\n    \"key_2\": true,\n    \"key_3\": true\n  },\n  \"channels\": 8687,\n  \"cps\": 3122,\n  \"enabled\": false,\n  \"default\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","byoc","connect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"plivo\",\n  \"credentials\": {\n    \"key_0\": 6358,\n    \"key_1\": 3257,\n    \"key_2\": true,\n    \"key_3\": true\n  },\n  \"channels\": 8687,\n  \"cps\": 3122,\n  \"enabled\": false,\n  \"default\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Disconnect your carrier","request":{"name":"Disconnect your carrier","description":{"content":"Disconnects the carrier you connected to your account. Send the `provider` to\ndisconnect.\n","type":"text/plain"},"url":{"path":["integration","public","byoc","disconnect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"vonage\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Carrier disconnected","originalRequest":{"url":{"path":["integration","public","byoc","disconnect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"vonage\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"disconnected\": true,\n    \"provider\": \"string\",\n    \"integration_type\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"bfd476fa-514f-1c2c-386d-c39bd35c7802\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["integration","public","byoc","disconnect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"vonage\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","byoc","disconnect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"vonage\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","byoc","disconnect"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"provider\": \"vonage\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List users","request":{"name":"List users","description":{"content":"Pages with `skip` and `limit` (not `offset`). `limit` defaults to 50 and is capped\nat 100; a larger value is clamped, not rejected. The total is in\n`data.total_users`. Deleted users are excluded.\n","type":"text/plain"},"url":{"path":["user","public","users"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the user's name or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Users to skip. A negative or non-numeric value is treated as 0.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Page size, at most 100. A larger value is treated as 100; 0, a negative,\nnon-numeric or empty value is treated as 50.\n","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Team users","originalRequest":{"url":{"path":["user","public","users"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the user's name or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Users to skip. A negative or non-numeric value is treated as 0.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Page size, at most 100. A larger value is treated as 100; 0, a negative,\nnon-numeric or empty value is treated as 50.\n","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"users\": [\n      {\n        \"_id\": \"string\",\n        \"user_id\": \"string\",\n        \"username\": null,\n        \"team_id\": null,\n        \"role_id\": \"string\",\n        \"status\": \"string\",\n        \"owner\": false,\n        \"identity\": {\n          \"first_name\": \"string\",\n          \"last_name\": null,\n          \"email\": \"jordan.rivera@example.com\"\n        },\n        \"created_at\": null\n      },\n      {\n        \"_id\": \"string\",\n        \"user_id\": \"string\",\n        \"username\": null,\n        \"team_id\": null,\n        \"role_id\": \"string\",\n        \"status\": \"string\",\n        \"owner\": null,\n        \"identity\": {\n          \"first_name\": \"string\",\n          \"last_name\": null,\n          \"email\": \"jordan.rivera@example.com\"\n        },\n        \"created_at\": null\n      }\n    ],\n    \"total_users\": 8193\n  },\n  \"meta\": {\n    \"request_id\": \"1aea98c1-64ce-efe5-2832-95571c7a2bc9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["user","public","users"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the user's name or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Users to skip. A negative or non-numeric value is treated as 0.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Page size, at most 100. A larger value is treated as 100; 0, a negative,\nnon-numeric or empty value is treated as 50.\n","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["user","public","users"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the user's name or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Users to skip. A negative or non-numeric value is treated as 0.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Page size, at most 100. A larger value is treated as 100; 0, a negative,\nnon-numeric or empty value is treated as 50.\n","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Webhooks","description":"Subscribe a URL to an event type. Each subscription has its own signing secret.\nVerify `X-Signature` (`sha256=` plus the HMAC-SHA256 of `{X-Timestamp}.{raw body}`),\nanswer within 5 seconds, and deduplicate on `event_id`. The event payloads are\nlisted under **Webhooks** at the end of this reference. See\n[Webhooks](https://www.dropcowboy.com/developers/api/webhooks).\n","item":[{"name":"List webhook subscriptions","request":{"name":"List webhook subscriptions","description":{"content":"One subscription per event type. Signing secrets are not included; see `GET /register/public/account/webhook-signing-secret`.","type":"text/plain"},"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Webhook subscriptions","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"webhook_id\": \"5c9e3a7f-2b6d-4e1a-8f4c-9d3b7e1a5c62\",\n      \"hook_type\": \"contact.rvm.status\",\n      \"hook_url\": \"https://hooks.example.com/dropcowboy\",\n      \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n      \"created_at\": 1774041600000,\n      \"created_by\": \"9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d\",\n      \"signing_secret_created_at\": 1774041600000\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Subscribe to an event","request":{"name":"Subscribe to an event","description":{"content":"Subscribes `hook_url` to one event type. An account holds one subscription per\nevent type: creating another for the same `hook_type` replaces the old one and\nissues a new signing secret, so posting again is also how you rotate a secret or\nmove a URL. The `signing_secret` is returned here and by\n`GET /register/public/account/webhook-signing-secret`.\n\n`hook_type` and `hook_url` are not validated when you subscribe. Check the\nevent name against `GET /register/public/events` and use an HTTPS URL that\nanswers 2xx within 5 seconds. Only event types on that list are delivered\nwith signing and retries; any other `hook_type` is saved but gets no signed,\nretried delivery. See [Webhooks](https://www.dropcowboy.com/developers/api/webhooks)\nfor signing, retries and deduplication.\n","type":"text/plain"},"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"hook_type\": \"contact.rvm.status\",\n  \"hook_url\": \"https://hooks.example.com/dropcowboy\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Subscribed","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"hook_type\": \"contact.rvm.status\",\n  \"hook_url\": \"https://hooks.example.com/dropcowboy\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"webhook_id\": \"5c9e3a7f-2b6d-4e1a-8f4c-9d3b7e1a5c62\",\n    \"signing_secret\": \"e4b1c7a9-3f2d-4e8b-9a6c-5d1f8b2e7c30\"\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"hook_type\": \"contact.rvm.status\",\n  \"hook_url\": \"https://hooks.example.com/dropcowboy\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"hook_type\": \"contact.rvm.status\",\n  \"hook_url\": \"https://hooks.example.com/dropcowboy\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"hook_type\": \"contact.rvm.status\",\n  \"hook_url\": \"https://hooks.example.com/dropcowboy\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Unexpected failure. Safe to retry idempotent reads; for writes, check state first.","originalRequest":{"url":{"path":["register","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"hook_type\": \"contact.rvm.status\",\n  \"hook_url\": \"https://hooks.example.com/dropcowboy\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/server-error\",\n  \"title\": \"Server Error\",\n  \"status\": 500,\n  \"detail\": \"Internal error\",\n  \"instance\": \"/contact/public/contacts\",\n  \"request_id\": \"0b8f5d2e-3c4a-4e1f-9a7b-6d5c4b3a2f10\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a webhook subscription","request":{"name":"Get a webhook subscription","description":{"content":"Returns your subscription for one event type, such as `contact.rvm.status`. Pass the\nevent type as `hook_type`, not a `webhook_id`. An event type you have no subscription for\nanswers `404`.\n","type":"text/plain"},"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"contact.rvm.status","key":"hook_type","disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Webhook subscription","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"webhook_id\": \"3f51002d-94dd-36db-d8e9-9380607aa018\",\n    \"hook_type\": \"string\",\n    \"hook_url\": \"https://example.com/\",\n    \"team_id\": \"d8570073-9d05-53e3-c433-4f67e965ba92\",\n    \"created_at\": 5468,\n    \"created_by\": \"string\",\n    \"signing_secret_created_at\": 6916\n  },\n  \"meta\": {\n    \"request_id\": \"1e828ac0-83ad-2748-d66d-e694df2c158c\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a webhook subscription","request":{"name":"Delete a webhook subscription","description":{"content":"Succeeds even when there was no subscription.","type":"text/plain"},"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"contact.rvm.status","key":"hook_type","disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Unsubscribed","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"result\": false\n  },\n  \"meta\": {\n    \"request_id\": \"bc6e5c58-674c-4b1c-589d-d2a8c8befb95\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","webhooks",":hook_type"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The event type of the subscription, for example `contact.rvm.status`. Not the `webhook_id`.","type":"text/plain"},"type":"any","value":"contact.rvm.status","key":"hook_type"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List webhook signing secrets","request":{"name":"List webhook signing secrets","description":{"content":"Each subscription has its own secret. Verify a delivery with the secret of the\nsubscription it arrived on, which is the event type in the payload's `event` field.\n","type":"text/plain"},"url":{"path":["register","public","account","webhook-signing-secret"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"One entry per subscription","originalRequest":{"url":{"path":["register","public","account","webhook-signing-secret"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"hook_type\": \"contact.rvm.status\",\n      \"signing_secret\": \"e4b1c7a9-3f2d-4e8b-9a6c-5d1f8b2e7c30\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","account","webhook-signing-secret"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","account","webhook-signing-secret"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","account","webhook-signing-secret"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List event types","request":{"name":"List event types","description":{"content":"Lists the event type names you can subscribe to. Use one as `hook_type` when you\nsubscribe a webhook, or in `event_types` for an integration webhook.\n","type":"text/plain"},"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Event types","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    \"contact.rvm.status\",\n    \"contact.rvm.status\"\n  ],\n  \"meta\": {\n    \"request_id\": \"31d2970e-5a69-a78d-0f71-21ad2ff42170\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Ringless voicemail","description":"Send one ringless voicemail, and fetch the proof of delivery for any voicemail\nleft by a ringless voicemail, voice broadcast or AI call. See\n[Ringless voicemail](https://www.dropcowboy.com/developers/api/ringless-voicemail).\n","item":[{"name":"Get a new proof-of-delivery link","request":{"name":"Get a new proof-of-delivery link","description":{"content":"Issues a new `proof_of_delivery_url` for one of your drops, for example after\nthe link you were sent has expired. Each call issues another link, valid for 7\ndays and never past the drop's 7-day window; earlier links keep working until\nthey expire. Proof of delivery is available for 7 days after the drop, so links\ncan be re-issued only within that time. `receipt_ready_at` is null while the recording\nis not stored yet, and the link answers `404` with `Retry-After` until it is.\n\nOnly drops where a voicemail system took the call have one: a ringless voicemail\nthat ended with `reason_code` 0, 4001 or 4002, or a voice broadcast or AI call\nthat ended with 0 in a mailbox. Everything else, including another account's\ndrop or one more than 7 days old, answers `404`.\n","type":"text/plain"},"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"drop_id","disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"A fresh link","originalRequest":{"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"},"type":"any","value":"string","key":"drop_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"drop_id\": \"b3e7a1c9-8d5f-4b2e-9a6c-1f4d7b3e8a52\",\n    \"reason_code\": 0,\n    \"proof_of_delivery_url\": \"https://api-v2.dropcowboy.com/campaign/public/receipts/-YxvnF06aASt5iho2aZmGbb4l2ToOnZW1JI-1Bc8Bbg\",\n    \"expires_at\": \"2026-04-19T15:10:00.000Z\",\n    \"receipt_ready_at\": \"2026-03-20T15:05:12.000Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"10b2b730-6b5b-480d-8164-69b7f95e895e\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"},"type":"any","value":"string","key":"drop_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"},"type":"any","value":"string","key":"drop_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"No proof of delivery for this drop.","originalRequest":{"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"},"type":"any","value":"string","key":"drop_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"No proof of delivery for this drop\",\n  \"instance\": \"/campaign/public/deliveries/4b50e620-5173-4cb2-96f8-5a0f39a4f1ba/receipt\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"},"type":"any","value":"string","key":"drop_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Unexpected failure. Safe to retry idempotent reads; for writes, check state first.","originalRequest":{"url":{"path":["campaign","public","deliveries",":drop_id","receipt"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The `drop_id` from `contact.rvm.status`, `contact.rvm.receipt` or the `callback_url` body.","type":"text/plain"},"type":"any","value":"string","key":"drop_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/server-error\",\n  \"title\": \"Server Error\",\n  \"status\": 500,\n  \"detail\": \"Internal error\",\n  \"instance\": \"/contact/public/contacts\",\n  \"request_id\": \"0b8f5d2e-3c4a-4e1f-9a7b-6d5c4b3a2f10\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Play a proof of delivery","request":{"name":"Play a proof of delivery","description":{"content":"The `proof_of_delivery_url` itself. No credentials: the URL is the credential, so\ntreat it like a password and share it only with people who should hear the\nrecording. Opening it redirects to a short-lived audio URL (a few minutes), so\nfetch the audio immediately rather than storing the redirect target. Each play\nis recorded.\n\nFor a ringless voicemail, all three codes play the call recording, both sides,\nfrom the moment the recipient's carrier answered until hangup. For code 0 it\nincludes your message. For 4001 (VoiceMail Not Setup) and 4002 (Mailbox full) it\ncontains the carrier's announcement, which shows the mailbox was reached and why\nthe message couldn't be left. For a voice broadcast or AI call it plays the\nmessage left after the beep.\n\nA link is valid for 7 days. After that it answers `410` for 7 days, then `404`.\nProof of delivery is available for 7 days after the drop, so store the audio\nyourself if you need to keep it. Within those 7 days, get a new link with\n`GET /campaign/public/deliveries/{drop_id}/receipt`.\nEvery response carries `Cache-Control: no-store` and `Referrer-Policy: no-referrer`.\nError bodies here are `{error, message}`, not problem details.\n","type":"text/plain"},"url":{"path":["campaign","public","receipts",":token"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"EXAMPLE_TOKEN_FROM_PROOF_OF_DELIVERY_URL___","key":"token","disabled":false,"description":{"content":"(Required) The last path segment of a `proof_of_delivery_url`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":null},"response":[{"name":"Redirect to the audio.","originalRequest":{"url":{"path":["campaign","public","receipts",":token"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The last path segment of a `proof_of_delivery_url`.","type":"text/plain"},"type":"any","value":"EXAMPLE_TOKEN_FROM_PROOF_OF_DELIVERY_URL___","key":"token"}]},"header":[{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Found","code":302,"header":[{"disabled":false,"description":{"content":"Short-lived audio URL.","type":"text/plain"},"key":"Location","value":"https://example.com/"}],"cookie":[],"_postman_previewlanguage":"text"},{"name":"Either the recording is not stored yet (`error` is `not_ready`, with\n`Retry-After` in seconds; retry then), or the token is unknown or no longer\nservable (`error` is `not_found`; do not retry).","originalRequest":{"url":{"path":["campaign","public","receipts",":token"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The last path segment of a `proof_of_delivery_url`.","type":"text/plain"},"type":"any","value":"EXAMPLE_TOKEN_FROM_PROOF_OF_DELIVERY_URL___","key":"token"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"Seconds to wait. Sent only with `not_ready`.","type":"text/plain"},"key":"Retry-After","value":"60"}],"body":"{\n  \"error\": \"not_ready\",\n  \"message\": \"Proof of delivery is not available yet. Retry later.\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The link has expired. Request a new one.","originalRequest":{"url":{"path":["campaign","public","receipts",":token"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The last path segment of a `proof_of_delivery_url`.","type":"text/plain"},"type":"any","value":"EXAMPLE_TOKEN_FROM_PROOF_OF_DELIVERY_URL___","key":"token"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Gone","code":410,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"error\": \"expired\",\n  \"message\": \"This proof of delivery link has expired. Request a new one from the API.\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","receipts",":token"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The last path segment of a `proof_of_delivery_url`.","type":"text/plain"},"type":"any","value":"EXAMPLE_TOKEN_FROM_PROOF_OF_DELIVERY_URL___","key":"token"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Unexpected failure. Safe to retry.","originalRequest":{"url":{"path":["campaign","public","receipts",":token"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The last path segment of a `proof_of_delivery_url`.","type":"text/plain"},"type":"any","value":"EXAMPLE_TOKEN_FROM_PROOF_OF_DELIVERY_URL___","key":"token"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"error\": \"server_error\",\n  \"message\": \"Internal error\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Send a ringless voicemail","request":{"name":"Send a ringless voicemail","description":{"content":"Queues one ringless voicemail and answers `202` immediately. The credentials,\nthe payload and the recipient's consent are checked afterwards, so a `202` means\n\"queued\", not \"accepted\". The outcome arrives on `callback_url` and on the\n`contact.rvm.status` webhook. See [Outcomes](https://www.dropcowboy.com/developers/api/outcomes)\nfor every `reason_code`.\n\nEach number counts toward your account's contact frequency limit (default\n3 attempts in 3 days per number, across campaigns and dialer calls). Over the\nlimit the send fails with 4013 (Too Many Attempts), and the status webhook\ncarries `frequency_limit`. `max_attempts` and `max_attempt_window_ms` can make\nthe limit stricter for this send, never looser. Test numbers are exempt.\n\nResults with `reason_code` 0 (Success), 4001 or 4002 carry a\n`proof_of_delivery_url`, and `contact.rvm.receipt` fires once the recording\nbehind it can be played. It's available for 7 days. See\n`GET /campaign/public/receipts/{token}`.\n","type":"text/plain"},"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Queued. Validation happens next; watch `callback_url` or webhooks for the result.","originalRequest":{"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Accepted","code":202,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"queued\",\n  \"message_id\": \"8e4a2c6f-9d1b-4f7e-b3a5-6c9e1f4d2b78\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was sent. The body was empty, was not a JSON object or was larger than\n256 KB, or `x-key`, `x-secret`, `Authorization` or `Idempotency-Key` contained\ncharacters other than printable ASCII. Fix the request before retrying.","originalRequest":{"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"The request body must be a non-empty JSON object.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"4e1b7c9a-2d6f-4a8e-b3c5-9f0a1d2e3b4c\",\n  \"details\": []\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The request carried no credentials: neither a non-blank `x-key` and `x-secret`\npair nor an `Authorization: Bearer` token. Nothing was sent. Credentials that\nare present but wrong (a bad key or secret, or a token that is invalid, expired\nor lacks the send scope) are not caught here: they get `202`, and the failure\n(`reason_code` 3007, Not authorized) is posted to `callback_url` only.","originalRequest":{"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/missing-credentials\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Send an API key in X-Key and X-Secret, or an access token in Authorization: Bearer.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"2d4f6a8c-0e1b-4c3d-8f5a-7b9c1d3e5f70\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't queue the request and nothing was sent. Retry with backoff and the\nsame `Idempotency-Key`. This body is not a problem-details object.","originalRequest":{"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"error\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't confirm the request was queued. Retry with the same\n`Idempotency-Key`: if the first attempt went through, the retry is skipped as a\nduplicate.","originalRequest":{"url":{"path":["rvm"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\",\n  \"foreign_id\": \"order-1042\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/internal-error\",\n  \"title\": \"Bad Gateway\",\n  \"status\": 502,\n  \"detail\": \"The message was not queued. It is safe to retry.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"6f8a0c2e-4b1d-4e3f-a5c7-9d1b3f5a7c90\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Texts","description":"Send one text, MMS or RCS message. See\n[Texts](https://www.dropcowboy.com/developers/api/texts).\n","item":[{"name":"Send a text","request":{"name":"Send a text","description":{"content":"Queues one SMS, one MMS when `media_urls` or `media_ids` is set, or one RCS\nmessage when `template_id` is set, and answers `202` immediately. Validation,\nconsent, media and carrier registration are checked after the `202`. The outcome\narrives on `callback_url` and on the `contact.sms.status` webhook. `message_id`\nonly confirms the request was accepted: the message isn't returned by\n`GET /phone/public/sms/{sms_id}`, so track it through those results.\n\nMMS: up to 10 files, 1 MiB each and 5 MiB in total, JPEG, PNG, GIF, WAV or MP3\n(judged by the bytes). Each file is copied to `mms.dropcowboy.com`, scanned for\nmalware and sent only when clean; the copies are deleted after 3 days. Billed per\nfile; the caption adds no charge. You can send to any country your account\ndoesn't block. Media problems fail with 3032 to 3039. See\n[MMS](https://www.dropcowboy.com/developers/api/texts#mms).\n\nOutside the contact's allowed hours the message fails with 4011 (TCPA Hours) and\nis not retried. Numbers over your account's contact frequency limit (default\n3 attempts in 3 days) fail with 4013. A missing texting registration fails with\n6009 (Unregistered Brand) or a pool error, and a `phone_line_id` whose line has no\ntexting campaign fails with 3029 (Phone Line Has No SMS Campaign); see\n[Outcomes](https://www.dropcowboy.com/developers/api/outcomes).\n","type":"text/plain"},"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Queued. Validation happens next; watch `callback_url` or webhooks for the result.","originalRequest":{"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Accepted","code":202,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"queued\",\n  \"message_id\": \"8e4a2c6f-9d1b-4f7e-b3a5-6c9e1f4d2b78\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was sent. The body was empty, was not a JSON object or was larger than\n256 KB, or `x-key`, `x-secret`, `Authorization` or `Idempotency-Key` contained\ncharacters other than printable ASCII. Fix the request before retrying.","originalRequest":{"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"The request body must be a non-empty JSON object.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"4e1b7c9a-2d6f-4a8e-b3c5-9f0a1d2e3b4c\",\n  \"details\": []\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The request carried no credentials: neither a non-blank `x-key` and `x-secret`\npair nor an `Authorization: Bearer` token. Nothing was sent. Credentials that\nare present but wrong (a bad key or secret, or a token that is invalid, expired\nor lacks the send scope) are not caught here: they get `202`, and the failure\n(`reason_code` 3007, Not authorized) is posted to `callback_url` only.","originalRequest":{"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/missing-credentials\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Send an API key in X-Key and X-Secret, or an access token in Authorization: Bearer.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"2d4f6a8c-0e1b-4c3d-8f5a-7b9c1d3e5f70\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't queue the request and nothing was sent. Retry with backoff and the\nsame `Idempotency-Key`. This body is not a problem-details object.","originalRequest":{"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"error\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't confirm the request was queued. Retry with the same\n`Idempotency-Key`: if the first attempt went through, the retry is skipped as a\nduplicate.","originalRequest":{"url":{"path":["sms"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n  \"body\": \"Your order is ready for pickup. Reply STOP to opt out.\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/internal-error\",\n  \"title\": \"Bad Gateway\",\n  \"status\": 502,\n  \"detail\": \"The message was not queued. It is safe to retry.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"6f8a0c2e-4b1d-4e3f-a5c7-9d1b3f5a7c90\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Voice broadcasts and AI calls","description":"Place one Press-1 voice broadcast call or one call handled by an AI agent. See\n[Voice broadcasts and AI calls](https://www.dropcowboy.com/developers/api/voice-calls).\n","item":[{"name":"Send a voice broadcast","request":{"name":"Send a voice broadcast","description":{"content":"Queues one Press-1 call and answers `202` immediately. Validation happens after\nthe `202`. The outcome arrives on `callback_url` and on the `contact.rvm.status`\nwebhook with `campaign_type: voice_broadcast`.\n\nTransfer setup errors fail the send before dialing: a `transfer_ivr_id` that is\nnot a valid ID fails with 3030 (Invalid Transfer IVR), and a `transfer_digit`\nwith neither `transfer_ivr_id` nor `transfer_to` fails with 3031 (Transfer\nDestination Missing). Only the format of `transfer_ivr_id` is checked before\ndialing, so make sure it names one of your phone lines.\n","type":"text/plain"},"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Queued. Validation happens next; watch `callback_url` or webhooks for the result.","originalRequest":{"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Accepted","code":202,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"queued\",\n  \"message_id\": \"8e4a2c6f-9d1b-4f7e-b3a5-6c9e1f4d2b78\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was sent. The body was empty, was not a JSON object or was larger than\n256 KB, or `x-key`, `x-secret`, `Authorization` or `Idempotency-Key` contained\ncharacters other than printable ASCII. Fix the request before retrying.","originalRequest":{"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"The request body must be a non-empty JSON object.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"4e1b7c9a-2d6f-4a8e-b3c5-9f0a1d2e3b4c\",\n  \"details\": []\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The request carried no credentials: neither a non-blank `x-key` and `x-secret`\npair nor an `Authorization: Bearer` token. Nothing was sent. Credentials that\nare present but wrong (a bad key or secret, or a token that is invalid, expired\nor lacks the send scope) are not caught here: they get `202`, and the failure\n(`reason_code` 3007, Not authorized) is posted to `callback_url` only.","originalRequest":{"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/missing-credentials\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Send an API key in X-Key and X-Secret, or an access token in Authorization: Bearer.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"2d4f6a8c-0e1b-4c3d-8f5a-7b9c1d3e5f70\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't queue the request and nothing was sent. Retry with backoff and the\nsame `Idempotency-Key`. This body is not a problem-details object.","originalRequest":{"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"error\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't confirm the request was queued. Retry with the same\n`Idempotency-Key`: if the first attempt went through, the retry is skipped as a\nduplicate.","originalRequest":{"url":{"path":["voice-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"tts_on_speech\": \"Hi, this is Example Dental confirming your appointment tomorrow at 10 AM.\",\n  \"tts_on_beep\": \"Hi, this is Example Dental. Please call us back to confirm your appointment.\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"amd_enabled\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/internal-error\",\n  \"title\": \"Bad Gateway\",\n  \"status\": 502,\n  \"detail\": \"The message was not queued. It is safe to retry.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"6f8a0c2e-4b1d-4e3f-a5c7-9d1b3f5a7c90\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Send an AI call","request":{"name":"Send an AI call","description":{"content":"Queues one outbound call handled by a published AI agent and answers `202`\nimmediately. The agent is checked after the `202`. The per-contact outcome\narrives on `callback_url` and on `contact.rvm.status` with\n`campaign_type: ai_broadcast`. The call itself is reported once on\n`ai_agent.call.completed`, `ai_agent.call.failed` (not answered) or, when the\nagent recorded an outcome, the matching `ai_agent.outcome.*` event.\n","type":"text/plain"},"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Queued. Validation happens next; watch `callback_url` or webhooks for the result.","originalRequest":{"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Accepted","code":202,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"queued\",\n  \"message_id\": \"8e4a2c6f-9d1b-4f7e-b3a5-6c9e1f4d2b78\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was sent. The body was empty, was not a JSON object or was larger than\n256 KB, or `x-key`, `x-secret`, `Authorization` or `Idempotency-Key` contained\ncharacters other than printable ASCII. Fix the request before retrying.","originalRequest":{"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"The request body must be a non-empty JSON object.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"4e1b7c9a-2d6f-4a8e-b3c5-9f0a1d2e3b4c\",\n  \"details\": []\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The request carried no credentials: neither a non-blank `x-key` and `x-secret`\npair nor an `Authorization: Bearer` token. Nothing was sent. Credentials that\nare present but wrong (a bad key or secret, or a token that is invalid, expired\nor lacks the send scope) are not caught here: they get `202`, and the failure\n(`reason_code` 3007, Not authorized) is posted to `callback_url` only.","originalRequest":{"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/missing-credentials\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Send an API key in X-Key and X-Secret, or an access token in Authorization: Bearer.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"2d4f6a8c-0e1b-4c3d-8f5a-7b9c1d3e5f70\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't queue the request and nothing was sent. Retry with backoff and the\nsame `Idempotency-Key`. This body is not a problem-details object.","originalRequest":{"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"status\": \"error\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"We couldn't confirm the request was queued. Retry with the same\n`Idempotency-Key`: if the first attempt went through, the retry is skipped as a\nduplicate.","originalRequest":{"url":{"path":["ai-broadcast"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"Makes a retry safe to send twice. 1 to 255 printable ASCII characters, unique per\nrequest; a random UUID is the easy choice. Keys are scoped to your account and\nremembered for 24 hours from first use. The route is part of what is compared, so\nreusing a key on a different route counts as a different body.\n\nOn `/rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` the response is always\n`202` once queued, never `409`; the key is checked after queueing. The same key\nwith the same body skips the duplicate, which then produces no webhook and no\n`callback_url` post. The same key with a different body sends nothing and fails\nthe contact with 3027 (Idempotency Key Conflict); an invalid key fails it with\n3028 (Invalid Idempotency Key).\n\nIf the first request failed before sending (validation, credentials, balance),\nthe key is released and you can retry with it. If it failed while being handed\noff for sending, the failure is still reported on `callback_url` and the status\nwebhook, but the key is kept: a retry with it within 24 hours is a duplicate\n(nothing sent, no callback, no webhook), so use a new key. When we retry a send\nourselves, each recipient still gets at most one delivery, the key stays held,\nand only the final result arrives on the delivery events and `callback_url`.\n\nKeys are compared exactly as sent. An empty or whitespace-only header counts as\nno header, on every route.\n\nOn `POST /email/public/email` a repeat of a successful send replays the stored\nresponse with `Idempotent-Replayed: true`. See that operation for its `409` and\n`400` answers.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n  \"callback_url\": \"https://hooks.example.com/dropcowboy/outcome\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/internal-error\",\n  \"title\": \"Bad Gateway\",\n  \"status\": 502,\n  \"detail\": \"The message was not queued. It is safe to retry.\",\n  \"instance\": \"/sms\",\n  \"request_id\": \"6f8a0c2e-4b1d-4e3f-a5c7-9d1b3f5a7c90\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Email","description":"Send email and read email history.","item":[{"name":"List emails","request":{"name":"List emails","description":{"content":"Sent and received emails, newest first. Filter by `contact_id` to read one contact's thread.","type":"text/plain"},"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"contact_id","value":"2c04af5a-fdb5-1c08-76a4-998c400201db"},{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"state","value":"string"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Emails","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"contact_id","value":"2c04af5a-fdb5-1c08-76a4-998c400201db"},{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"state","value":"string"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"emails\": [\n      {\n        \"email_id\": \"531f7e55-7015-cb14-bb96-dd2f1fae3ada\",\n        \"contact_id\": \"3527fd4d-7997-2f33-83dc-a7c3ef7a896e\",\n        \"mailbox_id\": null,\n        \"template_id\": \"a5a97113-bf91-4a6f-b888-d3ff43a7a636\",\n        \"direction\": \"outbound\",\n        \"state\": \"string\",\n        \"send_type\": \"transactional\",\n        \"to\": [\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          },\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          }\n        ],\n        \"from\": [\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          },\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          }\n        ],\n        \"subject\": \"string\",\n        \"created_at\": 3266,\n        \"sent_at\": null\n      },\n      {\n        \"email_id\": \"c8540c08-26ba-87d7-978a-dcb91bd62d2f\",\n        \"contact_id\": \"9519c5a3-e36d-73fb-7acf-352832ec79fd\",\n        \"mailbox_id\": \"50035f1f-5b9f-e92e-6313-f6f8b320294a\",\n        \"template_id\": null,\n        \"direction\": \"outbound\",\n        \"state\": \"string\",\n        \"send_type\": \"bulk\",\n        \"to\": [\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          },\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          }\n        ],\n        \"from\": [\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          },\n          {\n            \"address\": \"jordan.rivera@example.com\",\n            \"name\": \"string\"\n          }\n        ],\n        \"subject\": \"string\",\n        \"created_at\": 8846,\n        \"sent_at\": 6301\n      }\n    ],\n    \"total\": 8448\n  },\n  \"meta\": {\n    \"request_id\": \"5fd250a3-ef20-3107-bab7-868d7ab2dbf2\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"contact_id","value":"2c04af5a-fdb5-1c08-76a4-998c400201db"},{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"state","value":"string"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"contact_id","value":"2c04af5a-fdb5-1c08-76a4-998c400201db"},{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"state","value":"string"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"contact_id","value":"2c04af5a-fdb5-1c08-76a4-998c400201db"},{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"state","value":"string"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Send an email","request":{"name":"Send an email","description":{"content":"Sends one email from a mailbox on your verified sending domain. Give the\nrecipient as `to` or `contact_id`; a `to` address with no contact creates one.\nGet `mailbox_id` from `GET /domain/public/mailboxes`.\n\nThe response is `200` whenever the request was well formed. Check\n`data.success`: `false` with an `error` means nothing was sent (for example no\nsending domain). Delivery, opens, clicks and bounces arrive on the\n`contact.email.status` webhook.\n\nEmail has its own per-contact frequency limit, separate from the phone contact\nfrequency limit: by default 15 bulk emails per 3 days and 30 transactional\nemails per 24 hours, configurable per account. Addresses on your email test\nlist are exempt.\n\nWith an `Idempotency-Key`, a successful send is stored for 24 hours and a retry\nwith the same key and body gets that stored response back with\n`Idempotent-Replayed: true`, without sending again. Only successes are stored:\na `200` with `success: false`, or an error status, releases the key, so a retry\nwith the same key sends again. An empty or whitespace-only header counts as no\nheader. A first request that stopped more than 15 minutes ago without finishing\nreleases the key: if it stopped before sending, the next retry sends; if it had\nalready sent the email, the retry gets `{\"success\": true}` with\n`Idempotent-Replayed: true`. The template send routes do not support\n`Idempotency-Key`.\n","type":"text/plain"},"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Processed. Check `success`.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"`true` when this is the stored response to an earlier request with the same `Idempotency-Key`. Absent otherwise. (This can only be one of true)","type":"text/plain"},"key":"Idempotent-Replayed","value":"true"}],"body":"{\n  \"data\": {\n    \"success\": true\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request, or an invalid `Idempotency-Key` (`invalid-idempotency-key`).","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/invalid-idempotency-key\",\n  \"title\": \"Invalid Idempotency Key\",\n  \"status\": 400,\n  \"detail\": \"Idempotency-Key must be 1 to 255 printable ASCII characters.\",\n  \"instance\": \"/email/public/email\",\n  \"request_id\": \"08aba0ac-3266-48d7-8367-644694cc3465\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Scope missing, or the account's plan does not include email.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`idempotency-key-reused`: the key was already used with a different body (or\non a different route); nothing was sent. `idempotency-request-in-progress`:\nthe first request with this key has not finished; retry shortly with the\nsame key. After 15 minutes an unfinished first request releases the key and\na retry goes through.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/idempotency-key-reused\",\n  \"title\": \"Idempotency Key Reused\",\n  \"status\": 409,\n  \"detail\": \"This Idempotency-Key was already used with a different request body.\",\n  \"instance\": \"/email/public/email\",\n  \"request_id\": \"d6c279b8-311d-4f38-9b2c-30ddb68e15e7\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["email","public","email"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"disabled":false,"description":{"content":"1 to 255 printable ASCII characters; a random UUID is the easy choice. Scoped\nto your account for 24 hours from first use. Unlike the four send routes, an\nempty value is rejected with `400`.\n","type":"text/plain"},"key":"Idempotency-Key","value":"7c9e6679-7425-40de-944b-e07fc1f90ae7"},{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": [\n    {\n      \"address\": \"jordan.rivera@example.com\",\n      \"name\": \"Jordan Rivera\"\n    }\n  ],\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"subject\": \"Your order is ready\",\n  \"html\": \"<p>Hi Jordan, your order is ready for pickup.</p>\",\n  \"send_type\": \"transactional\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Send an email and record its template","request":{"name":"Send an email and record its template","description":{"content":"Same as `POST /email/public/email`, with `template_id` recorded against the\nsend. You supply the final `subject` and `html`; nothing is merged. To merge a\nsaved template with a contact's fields in one call, use\n`POST /email/public/email/merged-template`.\n","type":"text/plain"},"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Processed. Check `success`.","originalRequest":{"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"success\": false,\n    \"error\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"233de249-5cce-cf05-b5c9-41198d057f0e\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["email","public","email","template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": 4737,\n  \"to\": 3213.886911980808\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Send an email from a template","request":{"name":"Send an email from a template","description":{"content":"Loads an email template, fills its merge fields from the recipient contact (and\nfrom `merged_user_id`, or the calling user, for sender fields), and sends it.\nThe recipient must resolve to a contact: pass `contact_id`, or a `to` address\n(a contact is created if none matches). RCS templates are rejected.\n","type":"text/plain"},"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Processed. Check `success`.","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"success\": true\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["email","public","email","merged-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"f8a2c6e4-1d9b-4f3a-8c5e-7b1d3f9a2c46\",\n  \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n  \"send_type\": \"bulk\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List mailboxes","request":{"name":"List mailboxes","description":{"content":"Mailboxes you can send from. Pass `mailbox_id` to the email send routes and to email campaigns (`email_from_mailbox_id`).","type":"text/plain"},"url":{"path":["domain","public","mailboxes"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Mailboxes","originalRequest":{"url":{"path":["domain","public","mailboxes"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"mailboxes\": [\n      {\n        \"mailbox_id\": \"c5f1a8d3-6e2b-4c9f-b1a7-8d4e2c6f9b35\",\n        \"title\": \"Hello\",\n        \"address\": \"hello@mail.example.com\",\n        \"domain\": \"mail.example.com\",\n        \"display_name\": \"Example Dental\",\n        \"is_personal\": false,\n        \"send_purpose\": \"marketing\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["domain","public","mailboxes"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["domain","public","mailboxes"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["domain","public","mailboxes"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Campaigns","description":"Create, schedule, start and pause campaigns, and read their statistics.","item":[{"name":"List campaigns","request":{"name":"List campaigns","description":{"content":"Lists the campaigns on your account. Narrow the list with `status`, `type` and\n`search_term`, and limit the page with `limit`. The response also carries `counts`, the\nnumber of campaigns in each status across the whole account rather than only this page.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of rvm,sms,email,voice_broadcast,ai_broadcast)","type":"text/plain"},"key":"type","value":"email"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaigns","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of rvm,sms,email,voice_broadcast,ai_broadcast)","type":"text/plain"},"key":"type","value":"email"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"campaigns\": [\n      {\n        \"campaign_id\": \"d36730f0-8a7b-33a0-e1c5-5b6fa1c8da5e\",\n        \"team_id\": \"e82e8e01-774a-c5f3-2038-07b4056f8518\",\n        \"type\": \"ai_broadcast\",\n        \"campaign_data\": {\n          \"name\": \"string\",\n          \"list_ids\": [\n            \"b68055fa-c826-6341-1e50-a5fc8f551929\",\n            \"154bf099-28a5-568d-4aca-60591d18c8cf\"\n          ],\n          \"phone_line_id\": \"75292ea8-8945-89bd-390d-d1c411e4c4ca\",\n          \"brand_id\": \"9af4e444-36a8-7896-0d05-b1a44c26d51d\",\n          \"media_id\": \"19b78a17-4b43-8a84-20e0-b86a8c1437ca\",\n          \"voice_id\": \"075c8906-c54f-335a-5782-a07064f73773\",\n          \"tts_body\": \"string\",\n          \"sms_body\": \"string\",\n          \"rcs_content\": {},\n          \"media_on_speech\": \"3555d5c6-4960-c51f-1923-5d37334bd812\",\n          \"media_on_beep\": \"d3a1f400-d6da-e9d9-b094-b9a81d1306b6\",\n          \"tts_on_speech\": \"string\",\n          \"tts_on_beep\": \"string\",\n          \"ai_agent\": {\n            \"agent_id\": \"58ab5922-181f-04e7-ee79-4bf1c8be8fc9\",\n            \"voice_ids\": [\n              \"e37a5217-d407-4862-2550-8db9f6a8d874\",\n              \"b4cb1d91-abb8-8c80-7669-98adf96d5e23\"\n            ],\n            \"voice_rotation\": \"round_robin\"\n          },\n          \"email_subject\": \"string\",\n          \"email_html\": \"string\",\n          \"email_preheader\": \"string\",\n          \"email_from_mailbox_id\": \"9b41e994-5555-f2a6-1a0e-81cf120bb5c8\",\n          \"email_from\": \"jordan.rivera@example.com\",\n          \"email_from_name\": \"string\",\n          \"email_reply_to\": \"jordan.rivera@example.com\",\n          \"email_template_id\": \"395195fd-ce0f-2cc9-52a6-f7ad9ff2323d\",\n          \"method\": \"string\",\n          \"drip\": {\n            \"rate\": 9173,\n            \"timezone\": \"string\"\n          }\n        },\n        \"approved\": false,\n        \"approved_at\": 5408,\n        \"delivery_type\": \"string\",\n        \"deliver_at\": 9490,\n        \"created_at\": 7305,\n        \"modified_at\": 9173\n      },\n      {\n        \"campaign_id\": \"68c0fa6b-1e83-4d34-80bf-038d6d6fcd77\",\n        \"team_id\": \"bd5b3778-2ab7-545e-3f16-e72cb1981bbc\",\n        \"type\": \"sms\",\n        \"campaign_data\": {\n          \"name\": \"string\",\n          \"list_ids\": [\n            \"d9e2a431-8593-d443-74f2-d3b846f9e90f\",\n            \"4eee240a-837c-1dfa-a39b-bbd636fe861f\"\n          ],\n          \"phone_line_id\": \"2972d0ee-e85e-ac2a-b79c-5671d192eecf\",\n          \"brand_id\": \"0d68049a-1e93-b18b-7702-521b970cf2d3\",\n          \"media_id\": \"cfac7987-88fb-d27d-cc36-bf3894f0c420\",\n          \"voice_id\": \"6e50397d-6191-642f-2a87-9342e79448cd\",\n          \"tts_body\": \"string\",\n          \"sms_body\": \"string\",\n          \"rcs_content\": {},\n          \"media_on_speech\": \"5b625cce-9617-56bc-c6ac-259d575470f5\",\n          \"media_on_beep\": \"9b30a601-f57e-bc7d-4a31-e43f46ec2905\",\n          \"tts_on_speech\": \"string\",\n          \"tts_on_beep\": \"string\",\n          \"ai_agent\": {\n            \"agent_id\": \"5f7a13ae-a921-0eff-bca7-88d96a57fcba\",\n            \"voice_ids\": [\n              \"d8d6dbdb-605d-31ee-d23c-5c531f9d1afa\",\n              \"6f971144-957f-5285-634c-d21e32a12e04\"\n            ],\n            \"voice_rotation\": \"sticky\"\n          },\n          \"email_subject\": \"string\",\n          \"email_html\": \"string\",\n          \"email_preheader\": \"string\",\n          \"email_from_mailbox_id\": \"5be8eaba-3c26-cea2-e02d-ebf89a5e1098\",\n          \"email_from\": \"jordan.rivera@example.com\",\n          \"email_from_name\": \"string\",\n          \"email_reply_to\": \"jordan.rivera@example.com\",\n          \"email_template_id\": \"b1e3cb5f-eb7c-642d-c7cc-77f2ae519f8c\",\n          \"method\": \"string\",\n          \"drip\": {\n            \"rate\": 1450,\n            \"timezone\": \"string\"\n          }\n        },\n        \"approved\": false,\n        \"approved_at\": 3813,\n        \"delivery_type\": \"string\",\n        \"deliver_at\": null,\n        \"created_at\": 6706,\n        \"modified_at\": 2766\n      }\n    ],\n    \"counts\": {\n      \"draft\": 4745,\n      \"active\": 7552,\n      \"scheduled\": 4653,\n      \"paused\": 4556,\n      \"complete\": 7579\n    },\n    \"next_cursor\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"33f78c76-4091-2e68-2de6-c93444ba9d30\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of rvm,sms,email,voice_broadcast,ai_broadcast)","type":"text/plain"},"key":"type","value":"email"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of rvm,sms,email,voice_broadcast,ai_broadcast)","type":"text/plain"},"key":"type","value":"email"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of rvm,sms,email,voice_broadcast,ai_broadcast)","type":"text/plain"},"key":"type","value":"email"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a campaign","request":{"name":"Create a campaign","description":{"content":"Creates a campaign for one channel: `rvm`, `sms`, `email`, `voice_broadcast` or\n`ai_broadcast`. A new campaign may need review by Drop Cowboy before it can\nsend; until then `approved` is `false`.\n\nVoice and messaging campaigns follow TCPA rules (calling hours, consent, your\naccount's contact frequency limit). Email campaigns follow CAN-SPAM\n(unsubscribe link, physical address, email frequency limit). Accounts that have\nnot verified their brand get `403`; past-due accounts get `402`.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign created","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"campaign_id\": \"2cbcbf44-13fe-bafe-e82f-7bc97cfdedd4\",\n    \"approved\": false,\n    \"started\": false\n  },\n  \"meta\": {\n    \"request_id\": \"130e33f5-50d7-73a7-e636-dab8675dd004\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Scope missing, brand not verified, or a trial limit was reached.","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"type\": \"rvm\",\n  \"campaign_data\": {\n    \"name\": \"Spring reminder\",\n    \"list_ids\": [\n      \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n    ],\n    \"phone_line_id\": \"e2b6f9a3-5c1d-4e8b-a4f7-9c3e1b5d7a28\",\n    \"brand_id\": \"2c9d4e1f-7a3b-4f6c-8d2e-9b1a5c7e3f40\",\n    \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a campaign","request":{"name":"Get a campaign","description":{"content":"Returns one campaign, including the settings you sent and its current `status`. Find\nthe `campaign_id` with List campaigns.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"campaign_id\": \"96510b63-c2ca-d8a6-0192-52b3f4751362\",\n    \"team_id\": \"e3b5315d-2140-b9b5-46a4-9e8153470ec3\",\n    \"type\": \"rvm\",\n    \"campaign_data\": {\n      \"name\": \"string\",\n      \"list_ids\": [\n        \"99fd8897-dfd9-eb61-29a7-0e7cefec3347\",\n        \"f81d1d66-ed31-8d03-04c3-375ff6c6fa56\"\n      ],\n      \"phone_line_id\": \"f54ce83f-399d-042e-3627-de1838f2ca58\",\n      \"brand_id\": \"4a78ddcb-fc35-58f5-4f61-8506f3fe0e83\",\n      \"media_id\": \"8f02e0be-757e-2b19-9701-885cf00d1bd3\",\n      \"voice_id\": \"7a7c5cdc-bf43-97a0-5b3b-8fcfd29349e4\",\n      \"tts_body\": \"string\",\n      \"sms_body\": \"string\",\n      \"rcs_content\": {},\n      \"media_on_speech\": \"5f0be495-84e8-085f-c2e8-1e950e2fdd56\",\n      \"media_on_beep\": \"2c227d3d-f8fa-6b8a-8aec-24cce5085262\",\n      \"tts_on_speech\": \"string\",\n      \"tts_on_beep\": \"string\",\n      \"ai_agent\": {\n        \"agent_id\": \"57160cc2-94c2-f945-93c6-d96b34bcf556\",\n        \"voice_ids\": [\n          \"ac76e5f3-f003-c14d-4537-f69892cbc95c\",\n          \"047be831-fe45-675b-2a49-67eb849cffd9\"\n        ],\n        \"voice_rotation\": \"round_robin\"\n      },\n      \"email_subject\": \"string\",\n      \"email_html\": \"string\",\n      \"email_preheader\": \"string\",\n      \"email_from_mailbox_id\": \"85d5c502-24ac-2658-9540-f698bb885601\",\n      \"email_from\": \"jordan.rivera@example.com\",\n      \"email_from_name\": \"string\",\n      \"email_reply_to\": \"jordan.rivera@example.com\",\n      \"email_template_id\": \"2d8a68b8-004e-d3f0-d004-70a32978cc76\",\n      \"method\": \"string\",\n      \"drip\": {\n        \"rate\": 8048,\n        \"timezone\": \"string\"\n      }\n    },\n    \"approved\": false,\n    \"approved_at\": 8481,\n    \"delivery_type\": \"string\",\n    \"deliver_at\": 1572,\n    \"created_at\": 9730,\n    \"modified_at\": 3725\n  },\n  \"meta\": {\n    \"request_id\": \"b7e51a4a-230f-f848-ed9b-24224578fcb9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a campaign","request":{"name":"Update a campaign","description":{"content":"Replaces `campaign_data` and optionally schedules the start with `deliver_at`.\n`risk` and `approved` are set by Drop Cowboy and ignored here. Changing what\ncontacts receive (message, audio, voice, AI agent, lists, brand, caller ID or\nsending numbers) sends the campaign back to compliance review, and a sending\ncampaign that isn't approved again straight away is paused.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign updated","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"campaign_id\": \"96510b63-c2ca-d8a6-0192-52b3f4751362\",\n    \"team_id\": \"e3b5315d-2140-b9b5-46a4-9e8153470ec3\",\n    \"type\": \"rvm\",\n    \"campaign_data\": {\n      \"name\": \"string\",\n      \"list_ids\": [\n        \"99fd8897-dfd9-eb61-29a7-0e7cefec3347\",\n        \"f81d1d66-ed31-8d03-04c3-375ff6c6fa56\"\n      ],\n      \"phone_line_id\": \"f54ce83f-399d-042e-3627-de1838f2ca58\",\n      \"brand_id\": \"4a78ddcb-fc35-58f5-4f61-8506f3fe0e83\",\n      \"media_id\": \"8f02e0be-757e-2b19-9701-885cf00d1bd3\",\n      \"voice_id\": \"7a7c5cdc-bf43-97a0-5b3b-8fcfd29349e4\",\n      \"tts_body\": \"string\",\n      \"sms_body\": \"string\",\n      \"rcs_content\": {},\n      \"media_on_speech\": \"5f0be495-84e8-085f-c2e8-1e950e2fdd56\",\n      \"media_on_beep\": \"2c227d3d-f8fa-6b8a-8aec-24cce5085262\",\n      \"tts_on_speech\": \"string\",\n      \"tts_on_beep\": \"string\",\n      \"ai_agent\": {\n        \"agent_id\": \"57160cc2-94c2-f945-93c6-d96b34bcf556\",\n        \"voice_ids\": [\n          \"ac76e5f3-f003-c14d-4537-f69892cbc95c\",\n          \"047be831-fe45-675b-2a49-67eb849cffd9\"\n        ],\n        \"voice_rotation\": \"round_robin\"\n      },\n      \"email_subject\": \"string\",\n      \"email_html\": \"string\",\n      \"email_preheader\": \"string\",\n      \"email_from_mailbox_id\": \"85d5c502-24ac-2658-9540-f698bb885601\",\n      \"email_from\": \"jordan.rivera@example.com\",\n      \"email_from_name\": \"string\",\n      \"email_reply_to\": \"jordan.rivera@example.com\",\n      \"email_template_id\": \"2d8a68b8-004e-d3f0-d004-70a32978cc76\",\n      \"method\": \"string\",\n      \"drip\": {\n        \"rate\": 8048,\n        \"timezone\": \"string\"\n      }\n    },\n    \"approved\": false,\n    \"approved_at\": 8481,\n    \"delivery_type\": \"string\",\n    \"deliver_at\": 1572,\n    \"created_at\": 9730,\n    \"modified_at\": 3725\n  },\n  \"meta\": {\n    \"request_id\": \"b7e51a4a-230f-f848-ed9b-24224578fcb9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"campaign_data\": {\n    \"name\": \"string\",\n    \"list_ids\": [\n      \"c90b2db7-a9d4-c04a-cfb6-2f2e2ffe4042\",\n      \"657b4dfe-d968-07d2-3607-e927a3bb9df1\"\n    ],\n    \"phone_line_id\": \"b7e81fb4-9d46-6895-5a39-9e26512d71b0\",\n    \"brand_id\": \"1d574676-5697-de22-ee5c-f1f393446178\",\n    \"media_id\": \"65cf12d8-91fa-63ee-e060-578e2026168b\",\n    \"voice_id\": \"1579f7e8-848c-a939-782d-59abd2e93629\",\n    \"tts_body\": \"string\",\n    \"sms_body\": \"string\",\n    \"rcs_content\": {},\n    \"media_on_speech\": \"cdd3cd09-7bef-9b73-a39b-205885023d22\",\n    \"media_on_beep\": \"988246dd-fc40-2b1e-54f5-f5701cb63127\",\n    \"tts_on_speech\": \"string\",\n    \"tts_on_beep\": \"string\",\n    \"ai_agent\": {\n      \"agent_id\": \"85660d29-1f1c-ceb1-b973-6b9da3d520e2\",\n      \"voice_ids\": [\n        \"c5a25d81-f5f4-3933-eabc-823c00a6be55\",\n        \"bf33c880-59e8-9312-88f5-63e7c19bd0b7\"\n      ],\n      \"voice_rotation\": \"round_robin\"\n    },\n    \"email_subject\": \"string\",\n    \"email_html\": \"string\",\n    \"email_preheader\": \"string\",\n    \"email_from_mailbox_id\": \"239bd9f3-92ab-a5ca-5be9-77e734a50a68\",\n    \"email_from\": \"jordan.rivera@example.com\",\n    \"email_from_name\": \"string\",\n    \"email_reply_to\": \"jordan.rivera@example.com\",\n    \"email_template_id\": \"82a62b38-1d31-18b9-b8e8-36572f64a123\",\n    \"method\": \"string\",\n    \"drip\": {\n      \"rate\": 1194,\n      \"timezone\": \"string\"\n    }\n  },\n  \"deliver_at\": 6214\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a campaign","request":{"name":"Delete a campaign","description":{"content":"Deletes one campaign. Find the `campaign_id` with List campaigns.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign deleted","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {},\n  \"meta\": {\n    \"request_id\": \"2a487d25-eafb-a464-6b3f-27542bb16e3b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Start a campaign","request":{"name":"Start a campaign","description":{"content":"Starts sending to the campaign's lists. Each contact's outcome arrives on the\nchannel's status webhook (`contact.rvm.status`, `contact.sms.status` or\n`contact.email.status`) and the campaign itself emits `campaign.started` and\n`campaign.completed`.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign started, or held for compliance review. `started` is false when\nnothing was queued. Starting a campaign that already completed returns it\nunchanged with `started: true`. A campaign still waiting for review returns\n`campaign_id`, `approved: false` and `started: false` and stays in the review\nqueue; start it again once it's approved.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"campaign\": {\n      \"campaign_id\": \"0b786f18-3761-b551-6994-4fb8aae808e0\",\n      \"team_id\": \"9f50425b-454a-b47c-6e02-68b8709902ec\",\n      \"type\": \"sms\",\n      \"campaign_data\": {\n        \"name\": \"string\",\n        \"list_ids\": [\n          \"4d34baf6-9d68-8cf9-d277-aafde3dc19cd\",\n          \"37e99779-092a-0233-4c86-9dbc554b8aae\"\n        ],\n        \"phone_line_id\": \"65ee1891-8184-65eb-3b3c-aea6c10de26d\",\n        \"brand_id\": \"777c1ee2-1823-cc31-a640-99b10d10c6af\",\n        \"media_id\": \"5421ef34-f103-6a45-8b00-837e1a490265\",\n        \"voice_id\": \"31de5a54-9888-b192-fe30-be9a36051805\",\n        \"tts_body\": \"string\",\n        \"sms_body\": \"string\",\n        \"rcs_content\": {},\n        \"media_on_speech\": \"58eb78a0-7374-5b7d-06c1-5fb8dca0fea2\",\n        \"media_on_beep\": \"86350320-6ab3-0aa6-142f-e8d5056848db\",\n        \"tts_on_speech\": \"string\",\n        \"tts_on_beep\": \"string\",\n        \"ai_agent\": {\n          \"agent_id\": \"806d2167-3ad6-4ffa-2ff7-6d1434d35dfc\",\n          \"voice_ids\": [\n            \"8e730491-1e5d-fad7-a0ca-7c611fc7e3f1\",\n            \"7a724d18-577c-7e44-712c-db18cfa6b404\"\n          ],\n          \"voice_rotation\": \"round_robin\"\n        },\n        \"email_subject\": \"string\",\n        \"email_html\": \"string\",\n        \"email_preheader\": \"string\",\n        \"email_from_mailbox_id\": \"e03ac573-6133-0285-b1f3-cddaf1aa0de8\",\n        \"email_from\": \"jordan.rivera@example.com\",\n        \"email_from_name\": \"string\",\n        \"email_reply_to\": \"jordan.rivera@example.com\",\n        \"email_template_id\": \"ec7517eb-f6bd-2f88-66c7-50b36704cbea\",\n        \"method\": \"string\",\n        \"drip\": {\n          \"rate\": 3583,\n          \"timezone\": \"string\"\n        }\n      },\n      \"approved\": false,\n      \"approved_at\": 2290,\n      \"delivery_type\": \"string\",\n      \"deliver_at\": null,\n      \"created_at\": 4278,\n      \"modified_at\": 3263\n    },\n    \"started\": false\n  },\n  \"meta\": {\n    \"request_id\": \"36015bfd-da2c-b103-df5b-3b1d0497dd57\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Bad request, for example the campaign is still a draft.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Scope missing, or the brand is not verified (`error` is `trial_feature_blocked`).","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","start"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Pause a campaign","request":{"name":"Pause a campaign","description":{"content":"Pauses one campaign. The response is the campaign with its updated `status`. Find the\n`campaign_id` with List campaigns.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign paused","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"campaign_id\": \"96510b63-c2ca-d8a6-0192-52b3f4751362\",\n    \"team_id\": \"e3b5315d-2140-b9b5-46a4-9e8153470ec3\",\n    \"type\": \"rvm\",\n    \"campaign_data\": {\n      \"name\": \"string\",\n      \"list_ids\": [\n        \"99fd8897-dfd9-eb61-29a7-0e7cefec3347\",\n        \"f81d1d66-ed31-8d03-04c3-375ff6c6fa56\"\n      ],\n      \"phone_line_id\": \"f54ce83f-399d-042e-3627-de1838f2ca58\",\n      \"brand_id\": \"4a78ddcb-fc35-58f5-4f61-8506f3fe0e83\",\n      \"media_id\": \"8f02e0be-757e-2b19-9701-885cf00d1bd3\",\n      \"voice_id\": \"7a7c5cdc-bf43-97a0-5b3b-8fcfd29349e4\",\n      \"tts_body\": \"string\",\n      \"sms_body\": \"string\",\n      \"rcs_content\": {},\n      \"media_on_speech\": \"5f0be495-84e8-085f-c2e8-1e950e2fdd56\",\n      \"media_on_beep\": \"2c227d3d-f8fa-6b8a-8aec-24cce5085262\",\n      \"tts_on_speech\": \"string\",\n      \"tts_on_beep\": \"string\",\n      \"ai_agent\": {\n        \"agent_id\": \"57160cc2-94c2-f945-93c6-d96b34bcf556\",\n        \"voice_ids\": [\n          \"ac76e5f3-f003-c14d-4537-f69892cbc95c\",\n          \"047be831-fe45-675b-2a49-67eb849cffd9\"\n        ],\n        \"voice_rotation\": \"round_robin\"\n      },\n      \"email_subject\": \"string\",\n      \"email_html\": \"string\",\n      \"email_preheader\": \"string\",\n      \"email_from_mailbox_id\": \"85d5c502-24ac-2658-9540-f698bb885601\",\n      \"email_from\": \"jordan.rivera@example.com\",\n      \"email_from_name\": \"string\",\n      \"email_reply_to\": \"jordan.rivera@example.com\",\n      \"email_template_id\": \"2d8a68b8-004e-d3f0-d004-70a32978cc76\",\n      \"method\": \"string\",\n      \"drip\": {\n        \"rate\": 8048,\n        \"timezone\": \"string\"\n      }\n    },\n    \"approved\": false,\n    \"approved_at\": 8481,\n    \"delivery_type\": \"string\",\n    \"deliver_at\": 1572,\n    \"created_at\": 9730,\n    \"modified_at\": 3725\n  },\n  \"meta\": {\n    \"request_id\": \"b7e51a4a-230f-f848-ed9b-24224578fcb9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","pause"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get campaign statistics","request":{"name":"Get campaign statistics","description":{"content":"Returns delivery totals for one campaign: sent, delivered, failed, pending and\nbillable counts, with the matching rates. Use `start_ts` and `end_ts` to limit the window\nand `bucket_type` to choose how the results are grouped.\n","type":"text/plain"},"url":{"path":["campaign","public","campaigns",":id","stats"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"bucket_type","value":"string"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"start_ts","value":"9683"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"end_ts","value":"9683"}],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Campaign statistics","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","stats"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"bucket_type","value":"string"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"start_ts","value":"9683"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"end_ts","value":"9683"}],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"sent\": 3218,\n    \"delivered\": 8751,\n    \"failed\": 8729,\n    \"pending\": 1433,\n    \"read\": 4493,\n    \"billable\": 2225,\n    \"non_billable\": 1274,\n    \"delivery_rate\": 6377.1711103618145,\n    \"failure_rate\": 504.6162288635969,\n    \"read_rate\": 1190.1166243478656,\n    \"opened\": 9156,\n    \"clicked\": 7494,\n    \"bounced\": 6831,\n    \"complained\": 7478,\n    \"unsubscribed\": 6281,\n    \"open_rate\": 4047.1477690152824,\n    \"click_rate\": 4684.414900839329\n  },\n  \"meta\": {\n    \"request_id\": \"c2e7c0b9-c3cb-d976-c461-0eee65570774\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","stats"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"bucket_type","value":"string"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"start_ts","value":"9683"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"end_ts","value":"9683"}],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","stats"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"bucket_type","value":"string"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"start_ts","value":"9683"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"end_ts","value":"9683"}],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","stats"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"bucket_type","value":"string"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"start_ts","value":"9683"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"end_ts","value":"9683"}],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["campaign","public","campaigns",":id","stats"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"bucket_type","value":"string"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"start_ts","value":"9683"},{"disabled":false,"description":{"content":"Epoch milliseconds.","type":"text/plain"},"key":"end_ts","value":"9683"}],"variable":[{"disabled":false,"description":{"content":"(Required) `campaign_id` from `GET /campaign/public/campaigns`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Conversations","description":"Read text threads, reply to texts, and reply to website chats.","item":[{"name":"Get a text","request":{"name":"Get a text","description":{"content":"Inbound texts and messages sent from the inbox or with\n`POST /phone/public/sms/reply`. `POST /sms` sends are not stored here. An unknown\n`sms_id`, or one that belongs to another account, answers `404`. Files are listed\nunder `mms_media`, with a download `url` once a file's scan is `clean`.\n","type":"text/plain"},"url":{"path":["phone","public","sms",":sms_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"sms_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The text","originalRequest":{"url":{"path":["phone","public","sms",":sms_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"sms_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"sms_id\": \"8945b5d3-d4b9-435e-ab6d-a21bb5b9b628\",\n    \"sms_type\": \"inbound\",\n    \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n    \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n    \"from\": \"+13125550142\",\n    \"to\": \"+12125550100\",\n    \"sms_body\": \"Here is the photo of the damage.\",\n    \"created_at\": 1774041600000,\n    \"mms_media\": [\n      {\n        \"media_id\": \"a9c3e8f1-4b2d-4a7c-8e9b-1c2d3e4f5a6b\",\n        \"ext\": \"jpg\",\n        \"content_type\": \"image/jpeg\",\n        \"size\": 184220,\n        \"width\": 1024,\n        \"height\": 768,\n        \"scan_status\": \"clean\",\n        \"url\": \"https://files.example.com/a9c3e8f1-4b2d-4a7c-8e9b-1c2d3e4f5a6b.jpg?X-Amz-Expires=86400\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"c7238eeb-141a-492c-84e8-d71321d19b99\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","sms",":sms_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"sms_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","sms",":sms_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"sms_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","sms",":sms_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"sms_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a contact's text thread","request":{"name":"Get a contact's text thread","description":{"content":"Stored messages recorded against the contact, inbound and outbound, newest first.\n`POST /sms` sends are not included. A `contact_id` with no messages, or one that\nis not on your account, returns an empty `smss`.\n\nReading the thread marks that contact's unseen messages as seen, with `seen_by`\nset to `null`; no other contact's messages are touched. Messages in the response\nstill carry the `seen_at` they had before this read. A `skip` or `limit` that is\nnot a whole number in range answers `400` (`invalid-parameters`).\n","type":"text/plain"},"url":{"path":["phone","public","sms","thread",":contact_id"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[{"type":"any","value":"string","key":"contact_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"SMS thread","originalRequest":{"url":{"path":["phone","public","sms","thread",":contact_id"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"contact_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"smss\": [\n      {\n        \"sms_id\": \"string\",\n        \"sms_type\": \"inbound\",\n        \"team_id\": \"9d36900e-1641-c7a2-30b9-5f697dd2d503\",\n        \"user_id\": null,\n        \"contact_id\": \"string\",\n        \"list_id\": null,\n        \"note_id\": null,\n        \"from\": \"string\",\n        \"to\": \"string\",\n        \"sms_body\": \"string\",\n        \"mms_media\": [\n          {\n            \"media_id\": \"4abf2001-4346-8078-e28b-2cccd6862180\",\n            \"ext\": null,\n            \"content_type\": null,\n            \"size\": null,\n            \"width\": null,\n            \"height\": 8270,\n            \"has_audio\": null,\n            \"duration_sec\": 502.85616889595985,\n            \"scan_status\": \"infected\",\n            \"scanned_at\": 5800,\n            \"url\": \"https://example.com/\"\n          },\n          {\n            \"media_id\": \"77df81a2-1d1b-36d2-206d-1617f47717d6\",\n            \"ext\": null,\n            \"content_type\": \"string\",\n            \"size\": null,\n            \"width\": 5934,\n            \"height\": null,\n            \"has_audio\": null,\n            \"duration_sec\": null,\n            \"scan_status\": \"pending\",\n            \"scanned_at\": null,\n            \"url\": \"https://example.com/\"\n          }\n        ],\n        \"reason\": null,\n        \"spam\": false,\n        \"created_at\": 4893,\n        \"read_at\": null,\n        \"read_by\": \"string\",\n        \"seen_at\": null,\n        \"seen_by\": \"string\",\n        \"hidden_at\": null,\n        \"hidden_by\": \"string\"\n      },\n      {\n        \"sms_id\": \"string\",\n        \"sms_type\": \"inbound\",\n        \"team_id\": \"be71dae9-a09c-f39d-e040-110bd7cb0b1e\",\n        \"user_id\": null,\n        \"contact_id\": \"string\",\n        \"list_id\": null,\n        \"note_id\": \"string\",\n        \"from\": \"string\",\n        \"to\": \"string\",\n        \"sms_body\": null,\n        \"mms_media\": null,\n        \"reason\": null,\n        \"spam\": null,\n        \"created_at\": 2155,\n        \"read_at\": 5950,\n        \"read_by\": null,\n        \"seen_at\": 9108,\n        \"seen_by\": null,\n        \"hidden_at\": null,\n        \"hidden_by\": null\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"09a70cfe-9bf6-88c9-086b-94456d438fe7\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["phone","public","sms","thread",":contact_id"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"contact_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","sms","thread",":contact_id"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"contact_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","sms","thread",":contact_id"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"contact_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Send a text reply","request":{"name":"Send a text reply","description":{"content":"Sends one text or MMS to one number and answers with the stored message. Unlike\n`POST /sms` it is synchronous: media is fetched, stored and scanned (up to 12\nseconds) before the answer, and media problems come back as HTTP errors. Media\nlimits are the same as on `POST /sms`; see\n[MMS](https://www.dropcowboy.com/developers/api/texts#mms). Billed per file for MMS.\n","type":"text/plain"},"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Sent. The body is the stored message.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"sms_id\": \"f3fe47ad-c169-4f00-8993-68025a9195a1\",\n    \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n    \"user_id\": \"9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d\",\n    \"contact_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n    \"sms_type\": \"outbound\",\n    \"from\": \"+12125550100\",\n    \"to\": \"+13125550142\",\n    \"sms_body\": \"Here is the floor plan you asked about.\",\n    \"parts\": 1,\n    \"delivered\": true,\n    \"reason\": \"delivered\",\n    \"action\": \"Say\",\n    \"campaign_id\": null,\n    \"media_urls\": [\n      \"https://mms.dropcowboy.com/3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f/0b7c9e2d-4f1a-5d3b-9e6c-2a8f4b1d7c35.png\"\n    ],\n    \"mms_media\": [\n      {\n        \"media_id\": \"0b7c9e2d-4f1a-5d3b-9e6c-2a8f4b1d7c35\",\n        \"ext\": \"png\",\n        \"content_type\": \"image/png\",\n        \"size\": 48213,\n        \"width\": null,\n        \"height\": null,\n        \"has_audio\": null,\n        \"duration_sec\": null,\n        \"scan_status\": \"clean\",\n        \"scanned_at\": 1774041600000,\n        \"url\": \"https://mms.dropcowboy.com/3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f/0b7c9e2d-4f1a-5d3b-9e6c-2a8f4b1d7c35.png\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"78af89a4-2fcb-4956-bd6f-5053d50869d5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`type` `.../invalid-parameters`: bad `media_urls` or `media_ids`, more than 10\nfiles, or a `media_id` that is not found. `type` `.../server-error` with status\n`400`: missing `phone_number`, `caller_id`, or both `sms_body` and media; a\ndo-not-contact number; or no usable sender.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Account billing is past due. `type` is `.../server-error`.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`.../payload-too-large`: a file is over 1 MiB, or the files total over 5 MiB.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Request Entity Too Large","code":413,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`.../unsupported-media-type`: a file is not JPEG, PNG, GIF, WAV or MP3.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unsupported Media Type","code":415,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`.../media-fetch-failed`: a URL did not answer `200` in time, or redirected;\nretry later. `.../media-blocked`: the malware scan flagged a file; do not retry.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unprocessable Entity (WebDAV) (RFC 4918)","code":422,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`.../server-error`: storing a file failed. Retry later.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`.../server-error`: the malware scan could not finish. Retry later.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`.../media-scan-pending`: the scan did not finish in time. Retry after `Retry-After`; the retry reuses the finished scan.","originalRequest":{"url":{"path":["phone","public","sms","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"caller_id\": \"+12125550100\",\n  \"sms_body\": \"Here is the floor plan you asked about.\",\n  \"media_urls\": [\n    \"https://files.example.com/floor-plan.png\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Service Unavailable","code":503,"header":[{"key":"Content-Type","value":"application/json"},{"disabled":false,"description":{"content":"Seconds to wait.","type":"text/plain"},"key":"Retry-After","value":"15"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List chat sites","request":{"name":"List chat sites","description":{"content":"Websites with the Drop Cowboy chat widget installed. Use `chat_site_id` wherever a chat site is asked for, for example in chat automations.","type":"text/plain"},"url":{"path":["chat","public","sites"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Chat sites","originalRequest":{"url":{"path":["chat","public","sites"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"chat_site_id\": \"0e4b8d2f-6a1c-4d9e-b3f7-2a8c5e1d9b64\",\n      \"site_name\": \"www.example.com\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["chat","public","sites"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["chat","public","sites"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["chat","public","sites"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"9683"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Reply to a chat","request":{"name":"Reply to a chat","description":{"content":"Posts a message into an existing chat conversation. The visitor sees it in the\nchat widget immediately, and it appears in the shared inbox as an automation\nreply. `conversation_id` comes from the chat automation triggers (for example\n\"Chat Received\").\n\nEach call posts a new message and the route doesn't support `Idempotency-Key`,\nso don't retry after a success. The team's plan must include chat on at least one\nseat; otherwise the answer is `403` with `type` ending `addon_not_enabled`. An\ninactive account also answers `403`, with its own `type`.\n","type":"text/plain"},"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Reply posted","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"message_id\": \"6e8a0c2d-4f1b-4a3c-9e5d-7b9f1d3a5c28\",\n    \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\"\n  },\n  \"meta\": {\n    \"request_id\": \"0c2e4a6b-8d1f-4b3e-a5c7-9e1b3d5f7a41\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`conversation_id` or the message is missing (`validation-error`).","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"missing parameters\",\n  \"instance\": \"/chat/public/reply\",\n  \"request_id\": \"7c9e1a3b-5d2f-4e6a-8b0c-2d4f6a8c0e53\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Scope missing (`insufficient-scope`), the plan does not include chat\n(`addon_not_enabled`), or the account is inactive.","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/addon_not_enabled\",\n  \"title\": \"Addon_not_enabled\",\n  \"status\": 403,\n  \"detail\": \"This team's plan does not include chat capabilities. Upgrade a seat license to send chat replies over the API.\",\n  \"instance\": \"/chat/public/reply\",\n  \"request_id\": \"4a6c8e0f-2b3d-4f5a-8c7e-1d3f5b7a9c02\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"No conversation with that `conversation_id` in your account (`not-found`).","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"conversation not found\",\n  \"instance\": \"/chat/public/reply\",\n  \"request_id\": \"3e5a7c9d-1b2f-4d4e-a6c8-0f2b4d6e8a91\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Unexpected failure. Safe to retry idempotent reads; for writes, check state first.","originalRequest":{"url":{"path":["chat","public","reply"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"conversation_id\": \"2b7d9f1a-4c6e-4e8a-b0d2-6f8a1c3e5b79\",\n  \"message\": \"Thanks for reaching out! A teammate will follow up within the hour.\",\n  \"sender_name\": \"Example Dental\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Internal Server Error","code":500,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/server-error\",\n  \"title\": \"Server Error\",\n  \"status\": 500,\n  \"detail\": \"Internal error\",\n  \"instance\": \"/contact/public/contacts\",\n  \"request_id\": \"0b8f5d2e-3c4a-4e1f-9a7b-6d5c4b3a2f10\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Call history","description":"Read call records and recordings.","item":[{"name":"Get a call","request":{"name":"Get a call","description":{"content":"An unknown `call_id` returns 200 with an empty object.","type":"text/plain"},"url":{"path":["phone","public","calls",":call_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"call_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Call details","originalRequest":{"url":{"path":["phone","public","calls",":call_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"call_id\": \"string\",\n    \"root_call_id\": \"string\",\n    \"leg_id\": \"string\",\n    \"team_id\": \"string\",\n    \"user_id\": null,\n    \"contact_id\": null,\n    \"list_id\": \"string\",\n    \"call_direction\": \"outbound\",\n    \"call_type\": \"string\",\n    \"from\": \"+13125550142\",\n    \"to\": \"+13125550187\",\n    \"contact_number\": \"string\",\n    \"from_country_iso\": \"string\",\n    \"to_country_iso\": \"string\",\n    \"ivr_id\": \"string\",\n    \"conference_id\": \"string\",\n    \"conference_role\": null,\n    \"carrier\": null,\n    \"record_call\": false,\n    \"created_at\": 7013,\n    \"started_at\": null,\n    \"answered\": true,\n    \"answered_at\": null,\n    \"abandoned\": false,\n    \"abandoned_at\": null,\n    \"failed\": false,\n    \"completed_at\": null,\n    \"duration\": 726.8336997367442,\n    \"disposition\": \"\",\n    \"disposition_at\": null,\n    \"post_call_action\": \"\",\n    \"seen_at\": null,\n    \"seen_by\": null,\n    \"read_at\": 2777,\n    \"read_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"9c25de40-483f-1a0c-c6d6-27721efb717d\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","calls",":call_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","calls",":call_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a call recording","request":{"name":"Get a call recording","description":{"content":"Returns a signed download link for the call's first recording, valid for five\ndays. Returns 404 when the call or its recording doesn't exist. Outside a trial,\nthe response holds only `recording_unavailable_reason` when your balance is below\nzero now, or when it was too low to record at the time of the call.\n","type":"text/plain"},"url":{"path":["phone","public","calls",":call_id","recording"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"call_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Recording URL","originalRequest":{"url":{"path":["phone","public","calls",":call_id","recording"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"url\": \"https://example.com/\",\n    \"recording_id\": \"string\",\n    \"recording_type\": \"string\",\n    \"extension\": \".ogg\",\n    \"duration\": 6574.58889298141,\n    \"recording_unavailable_reason\": \"negative_balance\"\n  },\n  \"meta\": {\n    \"request_id\": \"bd3a7250-ed06-ba30-d3dd-5777538ffa53\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","calls",":call_id","recording"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","calls",":call_id","recording"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","calls",":call_id","recording"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"call_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Contacts","description":"Create, find, update and delete contacts.","item":[{"name":"List contacts","request":{"name":"List contacts","description":{"content":"Page with `limit` and `offset`. The page is `data.contacts`, and\n`data.total_contacts` counts every match.\n","type":"text/plain"},"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only contacts on this list.","type":"text/plain"},"key":"list_id","value":"string"},{"disabled":false,"description":{"content":"Free-text search across field values, such as a name, phone number or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Only contacts with this disposition id. `none` returns contacts without one.","type":"text/plain"},"key":"disposition","value":"string"},{"disabled":false,"description":{"content":"Only contacts owned by this user id. `__unassigned__` returns contacts with no owner.","type":"text/plain"},"key":"owner","value":"string"},{"disabled":false,"description":{"content":"Only contacts of this brand. Without it you get every brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of modified_at,created_at,last_activity,last_called_at,first_name)","type":"text/plain"},"key":"sort_by","value":"modified_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"asc"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"A page of contacts","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only contacts on this list.","type":"text/plain"},"key":"list_id","value":"string"},{"disabled":false,"description":{"content":"Free-text search across field values, such as a name, phone number or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Only contacts with this disposition id. `none` returns contacts without one.","type":"text/plain"},"key":"disposition","value":"string"},{"disabled":false,"description":{"content":"Only contacts owned by this user id. `__unassigned__` returns contacts with no owner.","type":"text/plain"},"key":"owner","value":"string"},{"disabled":false,"description":{"content":"Only contacts of this brand. Without it you get every brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of modified_at,created_at,last_activity,last_called_at,first_name)","type":"text/plain"},"key":"sort_by","value":"modified_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"asc"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contacts\": [\n      {\n        \"contact_id\": \"0db85f2b-b69a-af87-ba4e-871f75de5698\",\n        \"brand_id\": null,\n        \"first_name\": \"string\",\n        \"last_name\": \"string\",\n        \"email\": \"string\",\n        \"main_phone\": \"+13125550142\",\n        \"phone_numbers\": [\n          \"+13125550142\",\n          \"+13125550142\"\n        ],\n        \"gravatar_id\": \"string\",\n        \"list_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"list_entered_at\": {\n          \"key_0\": 3301\n        },\n        \"tags\": [\n          {\n            \"tag_id\": \"2f1c6a2b-2c1a-395f-0ff5-8ee78e1ec8e4\",\n            \"tagged_at\": 8455,\n            \"tagged_by\": \"string\",\n            \"deleted_at\": null,\n            \"deleted_by\": null\n          },\n          {\n            \"tag_id\": \"950753c6-fa2e-456b-fd2b-1278bb752067\",\n            \"tagged_at\": 3059,\n            \"tagged_by\": null,\n            \"deleted_at\": 9249,\n            \"deleted_by\": \"string\"\n          }\n        ],\n        \"owner\": \"string\",\n        \"disposition\": {\n          \"id\": \"string\"\n        },\n        \"location\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\"\n        },\n        \"call_info\": {\n          \"key_0\": \"string\"\n        },\n        \"message_info\": {\n          \"key_0\": \"string\"\n        },\n        \"email_info\": {\n          \"key_0\": \"string\",\n          \"key_1\": 6342,\n          \"key_2\": 9921.925999224186\n        },\n        \"sms_count\": 5463,\n        \"dnc\": false,\n        \"email_dnc\": true,\n        \"email_issue_reason\": \"hard_bounce\",\n        \"has_tcpa_consent\": true,\n        \"sold\": \"\",\n        \"pricing_interest\": [\n          \"\",\n          \"\"\n        ],\n        \"first_touch\": {\n          \"key_0\": 4801.0893748141825\n        },\n        \"last_touch\": {\n          \"key_0\": \"string\",\n          \"key_1\": false,\n          \"key_2\": 9133.669438306242\n        },\n        \"is_test\": false,\n        \"created_at\": 2491,\n        \"modified_at\": 1189\n      },\n      {\n        \"contact_id\": \"4d77dbd2-dd01-e10c-8ac9-34f826e5bf73\",\n        \"brand_id\": null,\n        \"first_name\": \"string\",\n        \"last_name\": \"string\",\n        \"email\": \"string\",\n        \"main_phone\": \"+13125550142\",\n        \"phone_numbers\": [\n          \"+13125550142\",\n          \"+13125550142\"\n        ],\n        \"gravatar_id\": null,\n        \"list_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"list_entered_at\": {\n          \"key_0\": 5892\n        },\n        \"tags\": [\n          {\n            \"tag_id\": \"73d41d4a-56d7-b35b-d284-4f7d3c9a81b7\",\n            \"tagged_at\": 7913,\n            \"tagged_by\": null,\n            \"deleted_at\": null,\n            \"deleted_by\": \"string\"\n          },\n          {\n            \"tag_id\": \"d7fc0a36-473d-88a2-e7ea-0d252ff3eb8b\",\n            \"tagged_at\": 1261,\n            \"tagged_by\": \"string\",\n            \"deleted_at\": null,\n            \"deleted_by\": null\n          }\n        ],\n        \"owner\": \"string\",\n        \"disposition\": {\n          \"id\": \"string\"\n        },\n        \"location\": {\n          \"key_0\": \"string\",\n          \"key_1\": 3589.9129696190357,\n          \"key_2\": 2751\n        },\n        \"call_info\": {\n          \"key_0\": false,\n          \"key_1\": 8913\n        },\n        \"message_info\": {\n          \"key_0\": 6272.578528150916,\n          \"key_1\": 874\n        },\n        \"email_info\": {\n          \"key_0\": 9646.24325511977,\n          \"key_1\": 3149\n        },\n        \"sms_count\": 2906,\n        \"dnc\": true,\n        \"email_dnc\": false,\n        \"email_issue_reason\": \"hard_bounce\",\n        \"has_tcpa_consent\": true,\n        \"sold\": \"\",\n        \"pricing_interest\": [\n          \"\",\n          \"\"\n        ],\n        \"first_touch\": {\n          \"key_0\": 9402\n        },\n        \"last_touch\": {\n          \"key_0\": true,\n          \"key_1\": true,\n          \"key_2\": 3598,\n          \"key_3\": 3363.1189190782607\n        },\n        \"is_test\": true,\n        \"created_at\": 6051,\n        \"modified_at\": 9126\n      }\n    ],\n    \"total_contacts\": 3660,\n    \"next_cursor\": null\n  },\n  \"meta\": {\n    \"request_id\": \"a95b236d-26dd-4ed8-bb53-9f1e635e48f5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only contacts on this list.","type":"text/plain"},"key":"list_id","value":"string"},{"disabled":false,"description":{"content":"Free-text search across field values, such as a name, phone number or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Only contacts with this disposition id. `none` returns contacts without one.","type":"text/plain"},"key":"disposition","value":"string"},{"disabled":false,"description":{"content":"Only contacts owned by this user id. `__unassigned__` returns contacts with no owner.","type":"text/plain"},"key":"owner","value":"string"},{"disabled":false,"description":{"content":"Only contacts of this brand. Without it you get every brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of modified_at,created_at,last_activity,last_called_at,first_name)","type":"text/plain"},"key":"sort_by","value":"modified_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"asc"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only contacts on this list.","type":"text/plain"},"key":"list_id","value":"string"},{"disabled":false,"description":{"content":"Free-text search across field values, such as a name, phone number or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Only contacts with this disposition id. `none` returns contacts without one.","type":"text/plain"},"key":"disposition","value":"string"},{"disabled":false,"description":{"content":"Only contacts owned by this user id. `__unassigned__` returns contacts with no owner.","type":"text/plain"},"key":"owner","value":"string"},{"disabled":false,"description":{"content":"Only contacts of this brand. Without it you get every brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of modified_at,created_at,last_activity,last_called_at,first_name)","type":"text/plain"},"key":"sort_by","value":"modified_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"asc"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only contacts on this list.","type":"text/plain"},"key":"list_id","value":"string"},{"disabled":false,"description":{"content":"Free-text search across field values, such as a name, phone number or email.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"Only contacts with this disposition id. `none` returns contacts without one.","type":"text/plain"},"key":"disposition","value":"string"},{"disabled":false,"description":{"content":"Only contacts owned by this user id. `__unassigned__` returns contacts with no owner.","type":"text/plain"},"key":"owner","value":"string"},{"disabled":false,"description":{"content":"Only contacts of this brand. Without it you get every brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of modified_at,created_at,last_activity,last_called_at,first_name)","type":"text/plain"},"key":"sort_by","value":"modified_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"asc"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create contacts","request":{"name":"Create contacts","description":{"content":"Creates one or more contacts. Describe your columns once in `fields`, then send one\nrow per contact in `values`. A row that matches an existing contact by `record_id`,\nemail or phone number updates that contact instead, following `conflict_mode`. Every\nrow needs a `record_id`, an email or a phone number; rows without one are rejected.\nBy default no webhooks are sent and no automations start.\n","type":"text/plain"},"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"fields\": [\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    },\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    }\n  ],\n  \"values\": [\n    [\n      \"Dana\",\n      \"Reyes\",\n      \"+13125550142\",\n      \"dana@example.com\"\n    ]\n  ],\n  \"add_list_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"add_tag_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"conflict_mode\": \"append\",\n  \"owner\": \"string\",\n  \"region\": \"US\",\n  \"return_counts\": false,\n  \"fire_webhook_events\": false,\n  \"fire_automation_events\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Per-row results, or totals when `return_counts` is true.","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"fields\": [\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    },\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    }\n  ],\n  \"values\": [\n    [\n      \"Dana\",\n      \"Reyes\",\n      \"+13125550142\",\n      \"dana@example.com\"\n    ]\n  ],\n  \"add_list_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"add_tag_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"conflict_mode\": \"append\",\n  \"owner\": \"string\",\n  \"region\": \"US\",\n  \"return_counts\": false,\n  \"fire_webhook_events\": false,\n  \"fire_automation_events\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"inserted\": [\n      {\n        \"index\": 2772,\n        \"contact_id\": \"3de4d638-3ff2-2772-404e-2164a554ce6e\"\n      },\n      {\n        \"index\": 4268,\n        \"contact_id\": \"8fdf26a4-b222-c4c0-fd10-c37e39483dfb\"\n      }\n    ],\n    \"updated\": [\n      {\n        \"index\": 6392,\n        \"contact_id\": \"909b38fa-28e9-8f3b-1502-28a18d51c389\"\n      },\n      {\n        \"index\": 8958,\n        \"contact_id\": \"3e85bd66-93bc-8d71-e5e6-4161e8d6e768\"\n      }\n    ],\n    \"rejected\": [\n      {\n        \"index\": 7888,\n        \"reasons\": [\n          \"\",\n          \"\"\n        ]\n      },\n      {\n        \"index\": 8081,\n        \"reasons\": [\n          \"\",\n          \"\"\n        ]\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"cc1625d9-5a74-9041-3da5-3a810225f2f7\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"fields\": [\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    },\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    }\n  ],\n  \"values\": [\n    [\n      \"Dana\",\n      \"Reyes\",\n      \"+13125550142\",\n      \"dana@example.com\"\n    ]\n  ],\n  \"add_list_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"add_tag_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"conflict_mode\": \"append\",\n  \"owner\": \"string\",\n  \"region\": \"US\",\n  \"return_counts\": false,\n  \"fire_webhook_events\": false,\n  \"fire_automation_events\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"fields\": [\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    },\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    }\n  ],\n  \"values\": [\n    [\n      \"Dana\",\n      \"Reyes\",\n      \"+13125550142\",\n      \"dana@example.com\"\n    ]\n  ],\n  \"add_list_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"add_tag_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"conflict_mode\": \"append\",\n  \"owner\": \"string\",\n  \"region\": \"US\",\n  \"return_counts\": false,\n  \"fire_webhook_events\": false,\n  \"fire_automation_events\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"fields\": [\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    },\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    }\n  ],\n  \"values\": [\n    [\n      \"Dana\",\n      \"Reyes\",\n      \"+13125550142\",\n      \"dana@example.com\"\n    ]\n  ],\n  \"add_list_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"add_tag_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"conflict_mode\": \"append\",\n  \"owner\": \"string\",\n  \"region\": \"US\",\n  \"return_counts\": false,\n  \"fire_webhook_events\": false,\n  \"fire_automation_events\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"fields\": [\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    },\n    {\n      \"type\": \"first_name\",\n      \"field_id\": \"string\"\n    }\n  ],\n  \"values\": [\n    [\n      \"Dana\",\n      \"Reyes\",\n      \"+13125550142\",\n      \"dana@example.com\"\n    ]\n  ],\n  \"add_list_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"add_tag_ids\": [\n    \"string\",\n    \"string\"\n  ],\n  \"conflict_mode\": \"append\",\n  \"owner\": \"string\",\n  \"region\": \"US\",\n  \"return_counts\": false,\n  \"fire_webhook_events\": false,\n  \"fire_automation_events\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Search contacts by phone or email","request":{"name":"Search contacts by phone or email","description":{"content":"Exact match on `phone`, `email`, or both. At least one is required; a request\nwith neither answers `400`. To search by name, use `search_term` on\n`GET /contact/public/contacts`. Page with `limit` and `offset`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts","search"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"phone","value":"+13125550142"},{"disabled":false,"description":{"content":"Matched without regard to case.","type":"text/plain"},"key":"email","value":"jordan.rivera@example.com"},{"disabled":false,"description":{"content":"Only contacts of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Matching contacts. No match returns an empty `contacts` array.","originalRequest":{"url":{"path":["contact","public","contacts","search"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"phone","value":"+13125550142"},{"disabled":false,"description":{"content":"Matched without regard to case.","type":"text/plain"},"key":"email","value":"jordan.rivera@example.com"},{"disabled":false,"description":{"content":"Only contacts of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contacts\": [\n      {\n        \"contact_id\": \"0db85f2b-b69a-af87-ba4e-871f75de5698\",\n        \"brand_id\": null,\n        \"first_name\": \"string\",\n        \"last_name\": \"string\",\n        \"email\": \"string\",\n        \"main_phone\": \"+13125550142\",\n        \"phone_numbers\": [\n          \"+13125550142\",\n          \"+13125550142\"\n        ],\n        \"gravatar_id\": \"string\",\n        \"list_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"list_entered_at\": {\n          \"key_0\": 3301\n        },\n        \"tags\": [\n          {\n            \"tag_id\": \"2f1c6a2b-2c1a-395f-0ff5-8ee78e1ec8e4\",\n            \"tagged_at\": 8455,\n            \"tagged_by\": \"string\",\n            \"deleted_at\": null,\n            \"deleted_by\": null\n          },\n          {\n            \"tag_id\": \"950753c6-fa2e-456b-fd2b-1278bb752067\",\n            \"tagged_at\": 3059,\n            \"tagged_by\": null,\n            \"deleted_at\": 9249,\n            \"deleted_by\": \"string\"\n          }\n        ],\n        \"owner\": \"string\",\n        \"disposition\": {\n          \"id\": \"string\"\n        },\n        \"location\": {\n          \"key_0\": \"string\",\n          \"key_1\": \"string\"\n        },\n        \"call_info\": {\n          \"key_0\": \"string\"\n        },\n        \"message_info\": {\n          \"key_0\": \"string\"\n        },\n        \"email_info\": {\n          \"key_0\": \"string\",\n          \"key_1\": 6342,\n          \"key_2\": 9921.925999224186\n        },\n        \"sms_count\": 5463,\n        \"dnc\": false,\n        \"email_dnc\": true,\n        \"email_issue_reason\": \"hard_bounce\",\n        \"has_tcpa_consent\": true,\n        \"sold\": \"\",\n        \"pricing_interest\": [\n          \"\",\n          \"\"\n        ],\n        \"first_touch\": {\n          \"key_0\": 4801.0893748141825\n        },\n        \"last_touch\": {\n          \"key_0\": \"string\",\n          \"key_1\": false,\n          \"key_2\": 9133.669438306242\n        },\n        \"is_test\": false,\n        \"created_at\": 2491,\n        \"modified_at\": 1189\n      },\n      {\n        \"contact_id\": \"4d77dbd2-dd01-e10c-8ac9-34f826e5bf73\",\n        \"brand_id\": null,\n        \"first_name\": \"string\",\n        \"last_name\": \"string\",\n        \"email\": \"string\",\n        \"main_phone\": \"+13125550142\",\n        \"phone_numbers\": [\n          \"+13125550142\",\n          \"+13125550142\"\n        ],\n        \"gravatar_id\": null,\n        \"list_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"list_entered_at\": {\n          \"key_0\": 5892\n        },\n        \"tags\": [\n          {\n            \"tag_id\": \"73d41d4a-56d7-b35b-d284-4f7d3c9a81b7\",\n            \"tagged_at\": 7913,\n            \"tagged_by\": null,\n            \"deleted_at\": null,\n            \"deleted_by\": \"string\"\n          },\n          {\n            \"tag_id\": \"d7fc0a36-473d-88a2-e7ea-0d252ff3eb8b\",\n            \"tagged_at\": 1261,\n            \"tagged_by\": \"string\",\n            \"deleted_at\": null,\n            \"deleted_by\": null\n          }\n        ],\n        \"owner\": \"string\",\n        \"disposition\": {\n          \"id\": \"string\"\n        },\n        \"location\": {\n          \"key_0\": \"string\",\n          \"key_1\": 3589.9129696190357,\n          \"key_2\": 2751\n        },\n        \"call_info\": {\n          \"key_0\": false,\n          \"key_1\": 8913\n        },\n        \"message_info\": {\n          \"key_0\": 6272.578528150916,\n          \"key_1\": 874\n        },\n        \"email_info\": {\n          \"key_0\": 9646.24325511977,\n          \"key_1\": 3149\n        },\n        \"sms_count\": 2906,\n        \"dnc\": true,\n        \"email_dnc\": false,\n        \"email_issue_reason\": \"hard_bounce\",\n        \"has_tcpa_consent\": true,\n        \"sold\": \"\",\n        \"pricing_interest\": [\n          \"\",\n          \"\"\n        ],\n        \"first_touch\": {\n          \"key_0\": 9402\n        },\n        \"last_touch\": {\n          \"key_0\": true,\n          \"key_1\": true,\n          \"key_2\": 3598,\n          \"key_3\": 3363.1189190782607\n        },\n        \"is_test\": true,\n        \"created_at\": 6051,\n        \"modified_at\": 9126\n      }\n    ],\n    \"total_contacts\": 3660,\n    \"next_cursor\": null\n  },\n  \"meta\": {\n    \"request_id\": \"a95b236d-26dd-4ed8-bb53-9f1e635e48f5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts","search"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"phone","value":"+13125550142"},{"disabled":false,"description":{"content":"Matched without regard to case.","type":"text/plain"},"key":"email","value":"jordan.rivera@example.com"},{"disabled":false,"description":{"content":"Only contacts of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts","search"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"phone","value":"+13125550142"},{"disabled":false,"description":{"content":"Matched without regard to case.","type":"text/plain"},"key":"email","value":"jordan.rivera@example.com"},{"disabled":false,"description":{"content":"Only contacts of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts","search"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"phone","value":"+13125550142"},{"disabled":false,"description":{"content":"Matched without regard to case.","type":"text/plain"},"key":"email","value":"jordan.rivera@example.com"},{"disabled":false,"description":{"content":"Only contacts of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a contact","request":{"name":"Get a contact","description":{"content":"Returns everything about one contact in `data.contact`: field values, phone numbers,\nlists, tags, pinned notes, consent and do-not-contact flags. An unknown id still\nanswers `200`, with `data.contact` set to `null`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact details","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"status\": 200,\n    \"contact\": {\n      \"contact_id\": \"9e672279-49fe-76a3-60d1-1ee67a8ad966\",\n      \"brand_id\": \"string\",\n      \"field_data\": [\n        {\n          \"field_id\": \"9e7585bc-a4a1-4143-9398-b5fd0c4eb3a2\",\n          \"type\": \"first_name\",\n          \"display_name\": \"First Name\",\n          \"value\": \"Dana\"\n        },\n        {\n          \"field_id\": \"23f618e7-7bb5-1c6c-bbd9-d2bc32f7f1b7\",\n          \"type\": \"first_name\",\n          \"display_name\": \"First Name\",\n          \"value\": \"Dana\"\n        }\n      ],\n      \"phone_numbers\": [\n        \"+13125550142\",\n        \"+13125550142\"\n      ],\n      \"gravatar_id\": null,\n      \"location\": {\n        \"key_0\": 9135.389002040029\n      },\n      \"list_ids\": [\n        \"string\",\n        \"string\"\n      ],\n      \"notes\": [\n        {\n          \"note_id\": \"cd787da0-fac8-94a9-f143-e516ae8c2dda\",\n          \"team_id\": \"string\",\n          \"user_id\": \"string\",\n          \"contact_id\": \"4d30019b-c423-7ee3-3243-9a216793c74f\",\n          \"call_id\": \"string\",\n          \"sms_id\": null,\n          \"task_id\": \"string\",\n          \"type\": \"contact\",\n          \"note\": \"string\",\n          \"note_text\": null,\n          \"ai_source\": {\n            \"key_0\": 9758.827593177557\n          },\n          \"attachments\": [\n            \"\",\n            \"\"\n          ],\n          \"attachment_history\": [\n            \"\",\n            \"\"\n          ],\n          \"mentioned\": [\n            \"string\",\n            \"string\"\n          ],\n          \"created_at\": 1208,\n          \"created_by\": \"string\",\n          \"modified_at\": 48,\n          \"modified_by\": \"string\",\n          \"deleted_at\": 7630,\n          \"deleted_by\": \"string\"\n        },\n        {\n          \"note_id\": \"42725385-d289-0502-e3db-5566f79746e8\",\n          \"team_id\": \"string\",\n          \"user_id\": \"string\",\n          \"contact_id\": \"4ed8bd66-baa8-1457-0523-28e69d1a9dbc\",\n          \"call_id\": \"string\",\n          \"sms_id\": \"string\",\n          \"task_id\": \"string\",\n          \"type\": \"contact\",\n          \"note\": \"string\",\n          \"note_text\": null,\n          \"ai_source\": {\n            \"key_0\": 2327,\n            \"key_1\": 2158\n          },\n          \"attachments\": [\n            \"\",\n            \"\"\n          ],\n          \"attachment_history\": [\n            \"\",\n            \"\"\n          ],\n          \"mentioned\": [\n            \"string\",\n            \"string\"\n          ],\n          \"created_at\": 8571,\n          \"created_by\": \"string\",\n          \"modified_at\": 7371,\n          \"modified_by\": \"string\",\n          \"deleted_at\": null,\n          \"deleted_by\": null\n        }\n      ],\n      \"pinned_notes_ids\": [\n        \"string\",\n        \"string\"\n      ],\n      \"documents\": [\n        \"\",\n        \"\"\n      ],\n      \"tags\": [\n        {\n          \"tag_id\": \"4aa07973-2b94-e4a4-a027-714eb744d32e\",\n          \"tagged_at\": 5827,\n          \"tagged_by\": null,\n          \"deleted_at\": null,\n          \"deleted_by\": \"string\"\n        },\n        {\n          \"tag_id\": \"425f833a-1996-8aa9-8608-83d4f64cec85\",\n          \"tagged_at\": 3098,\n          \"tagged_by\": \"string\",\n          \"deleted_at\": null,\n          \"deleted_by\": \"string\"\n        }\n      ],\n      \"owner\": null,\n      \"dnc\": true,\n      \"litigator\": false,\n      \"call_info\": {\n        \"key_0\": 5522.624058648944,\n        \"key_1\": 616.9427861459553,\n        \"key_2\": true\n      },\n      \"message_info\": {\n        \"key_0\": 9604.871340561658\n      },\n      \"email_info\": {\n        \"key_0\": 2966,\n        \"key_1\": 6158.422532025725,\n        \"key_2\": true,\n        \"key_3\": false\n      },\n      \"consents\": {\n        \"key_0\": 4537.477341946214,\n        \"key_1\": false\n      },\n      \"has_esign_consent\": true,\n      \"has_tcpa_consent\": true,\n      \"tcpa_opted_out_at\": null,\n      \"tcpa_consent_date\": \"\",\n      \"tcpa_consent_id\": \"string\",\n      \"trustedform_cert_url\": \"string\",\n      \"jornaya_lead_id\": null,\n      \"has_sms_consent\": true,\n      \"sms_opted_out_at\": null,\n      \"has_email_consent\": true,\n      \"email_opted_out_at\": 8563,\n      \"email_dnc\": false,\n      \"email_issue_reason\": \"unsubscribed\",\n      \"rnd_status\": \"string\",\n      \"rnd_checked_at\": null,\n      \"rnd_safe_harbor\": true,\n      \"litigator_status\": \"string\",\n      \"litigator_checked_at\": 6768,\n      \"litigator_source\": null,\n      \"timezone_info\": {\n        \"key_0\": 5747,\n        \"key_1\": 6777\n      },\n      \"first_touch\": null,\n      \"last_touch\": null,\n      \"visitor_id\": \"string\",\n      \"pricing_interest\": [\n        \"\",\n        \"\"\n      ],\n      \"website_safe_url\": \"string\",\n      \"created_at\": 6111\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"1745993c-dacd-973c-dcd1-e371088738d7\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a contact","request":{"name":"Update a contact","description":{"content":"Changes field values. Send standard fields by name, such as `first_name`, `email` or\n`main_phone`, at the top level of the body or inside `contact`; each one updates the\ncontact's field of that type, or adds it. For custom fields, or to target one field by\nid, send `contact.field_data` entries with the `field_id` from\n`GET /contact/public/contacts/{id}`. A `field_data` entry wins over a standard field\nof the same type. Phone numbers are stored in E.164, and one that can't be read is\nleft out. A body with nothing to update is a `400` (`details.code`\n`no_updatable_fields`). Lists, tags, the owner and the disposition have their own\nroutes. The response is the updated contact as stored.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact updated","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contact_id\": \"72d3147f-10df-fa52-32c4-c92aa8e3d09e\",\n    \"team_id\": \"string\",\n    \"brand_id\": null,\n    \"record_id\": null,\n    \"field_data\": [\n      {\n        \"field_id\": \"6cfd74f8-2257-faa9-5fa3-711e5864c8ba\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      },\n      {\n        \"field_id\": \"881322cf-eb32-6da5-6cc4-4a45a7f565db\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      }\n    ],\n    \"main_phone\": \"+13125550142\",\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"gravatar_id\": null,\n    \"location\": {\n      \"key_0\": 8738\n    },\n    \"list_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"tags\": [\n      {\n        \"tag_id\": \"fc930688-c02d-2c79-f411-5ca2a466701b\",\n        \"tagged_at\": 5499,\n        \"tagged_by\": null,\n        \"deleted_at\": 6063,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"tag_id\": \"79b5ae3d-6967-c48f-15f4-b3bde649078b\",\n        \"tagged_at\": 6184,\n        \"tagged_by\": \"string\",\n        \"deleted_at\": 6867,\n        \"deleted_by\": null\n      }\n    ],\n    \"owner\": null,\n    \"disposition\": {\n      \"id\": \"string\"\n    },\n    \"call_info\": {\n      \"key_0\": \"string\",\n      \"key_1\": \"string\"\n    },\n    \"dnc\": true,\n    \"litigator\": false,\n    \"source\": \"string\",\n    \"consents\": {\n      \"key_0\": 8722,\n      \"key_1\": \"string\"\n    },\n    \"has_esign_consent\": true,\n    \"has_tcpa_consent\": false,\n    \"has_sms_consent\": true,\n    \"has_email_consent\": true,\n    \"tcpa_opted_out_at\": 3998,\n    \"sms_opted_out_at\": 7813,\n    \"email_opted_out_at\": null,\n    \"email_dnc\": false,\n    \"email_issue_reason\": \"string\",\n    \"rnd_status\": \"string\",\n    \"litigator_status\": \"string\",\n    \"created_at\": 6386,\n    \"created_by\": \"string\",\n    \"modified_at\": 300,\n    \"modified_by\": \"string\",\n    \"deleted_at\": 3264,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"5406df7e-77ae-0f00-05cc-26241db0906b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"first_name\": \"Danielle\",\n  \"email\": \"danielle@example.com\",\n  \"main_phone\": \"+13125550142\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a contact","request":{"name":"Delete a contact","description":{"content":"Deletes the contact. It no longer appears when you list, search or get contacts.\nThe response is the deleted contact with `deleted_at` and `deleted_by` set.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact deleted","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contact_id\": \"72d3147f-10df-fa52-32c4-c92aa8e3d09e\",\n    \"team_id\": \"string\",\n    \"brand_id\": null,\n    \"record_id\": null,\n    \"field_data\": [\n      {\n        \"field_id\": \"6cfd74f8-2257-faa9-5fa3-711e5864c8ba\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      },\n      {\n        \"field_id\": \"881322cf-eb32-6da5-6cc4-4a45a7f565db\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      }\n    ],\n    \"main_phone\": \"+13125550142\",\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"gravatar_id\": null,\n    \"location\": {\n      \"key_0\": 8738\n    },\n    \"list_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"tags\": [\n      {\n        \"tag_id\": \"fc930688-c02d-2c79-f411-5ca2a466701b\",\n        \"tagged_at\": 5499,\n        \"tagged_by\": null,\n        \"deleted_at\": 6063,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"tag_id\": \"79b5ae3d-6967-c48f-15f4-b3bde649078b\",\n        \"tagged_at\": 6184,\n        \"tagged_by\": \"string\",\n        \"deleted_at\": 6867,\n        \"deleted_by\": null\n      }\n    ],\n    \"owner\": null,\n    \"disposition\": {\n      \"id\": \"string\"\n    },\n    \"call_info\": {\n      \"key_0\": \"string\",\n      \"key_1\": \"string\"\n    },\n    \"dnc\": true,\n    \"litigator\": false,\n    \"source\": \"string\",\n    \"consents\": {\n      \"key_0\": 8722,\n      \"key_1\": \"string\"\n    },\n    \"has_esign_consent\": true,\n    \"has_tcpa_consent\": false,\n    \"has_sms_consent\": true,\n    \"has_email_consent\": true,\n    \"tcpa_opted_out_at\": 3998,\n    \"sms_opted_out_at\": 7813,\n    \"email_opted_out_at\": null,\n    \"email_dnc\": false,\n    \"email_issue_reason\": \"string\",\n    \"rnd_status\": \"string\",\n    \"litigator_status\": \"string\",\n    \"created_at\": 6386,\n    \"created_by\": \"string\",\n    \"modified_at\": 300,\n    \"modified_by\": \"string\",\n    \"deleted_at\": 3264,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"5406df7e-77ae-0f00-05cc-26241db0906b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Contact details","description":"Notes, follow-ups, owner, disposition, tags, custom fields and timeline events on a contact.","item":[{"name":"Add a tag to a contact","request":{"name":"Add a tag to a contact","description":{"content":"Adds an existing tag to the contact. Adding a tag the contact already has is safe.\nThe response lists the contact's tags after the change. An unknown contact or tag\nreturns `404`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"string","key":"tag_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The contact's tags","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"tag_id\": \"5bb1a879-ee4b-cbe2-7ac5-66553e6b7207\",\n      \"tagged_at\": 7423,\n      \"tagged_by\": \"string\",\n      \"deleted_at\": 8993,\n      \"deleted_by\": \"string\"\n    },\n    {\n      \"tag_id\": \"b5b9da35-2aa9-c1ae-cd29-5129c1c40bfc\",\n      \"tagged_at\": 1106,\n      \"tagged_by\": \"string\",\n      \"deleted_at\": null,\n      \"deleted_by\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"e030fcfd-548b-e1fc-d7cc-42dee97fb1c0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Remove a tag from a contact","request":{"name":"Remove a tag from a contact","description":{"content":"Removes the tag from the contact; the tag itself still exists. The response lists the\ntags the contact still has, which can be empty. An unknown contact or tag, or a tag\nthe contact doesn't have, returns `404`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"string","key":"tag_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The contact's remaining tags","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"tag_id\": \"5bb1a879-ee4b-cbe2-7ac5-66553e6b7207\",\n      \"tagged_at\": 7423,\n      \"tagged_by\": \"string\",\n      \"deleted_at\": 8993,\n      \"deleted_by\": \"string\"\n    },\n    {\n      \"tag_id\": \"b5b9da35-2aa9-c1ae-cd29-5129c1c40bfc\",\n      \"tagged_at\": 1106,\n      \"tagged_by\": \"string\",\n      \"deleted_at\": null,\n      \"deleted_by\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"e030fcfd-548b-e1fc-d7cc-42dee97fb1c0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List a contact's notes","request":{"name":"List a contact's notes","description":{"content":"Returns every note on the contact, pinned or not, newest first. `username` is the\nauthor's name.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The contact's notes","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"note_id\": \"dbae96ca-c1e2-878f-51d7-fdd519d4493b\",\n      \"team_id\": \"string\",\n      \"user_id\": \"string\",\n      \"contact_id\": \"644a993d-a9da-32fa-7b08-af1df4119909\",\n      \"call_id\": \"string\",\n      \"sms_id\": \"string\",\n      \"task_id\": \"string\",\n      \"type\": \"contact\",\n      \"note\": \"string\",\n      \"note_text\": \"string\",\n      \"ai_source\": {\n        \"key_0\": 6873\n      },\n      \"mentioned\": [\n        \"string\",\n        \"string\"\n      ],\n      \"created_at\": 574,\n      \"created_by\": \"string\",\n      \"modified_at\": 8728,\n      \"modified_by\": \"string\",\n      \"deleted_at\": null,\n      \"deleted_by\": \"string\",\n      \"username\": \"string\"\n    },\n    {\n      \"note_id\": \"d4ed5599-13b5-9ef3-18e6-b6e46985b82f\",\n      \"team_id\": \"string\",\n      \"user_id\": \"string\",\n      \"contact_id\": \"a5f5bbe0-9264-df00-17a2-35a824884757\",\n      \"call_id\": \"string\",\n      \"sms_id\": \"string\",\n      \"task_id\": null,\n      \"type\": \"contact\",\n      \"note\": \"string\",\n      \"note_text\": null,\n      \"ai_source\": {\n        \"key_0\": 3668\n      },\n      \"mentioned\": [\n        \"string\",\n        \"string\"\n      ],\n      \"created_at\": 6708,\n      \"created_by\": \"string\",\n      \"modified_at\": 4292,\n      \"modified_by\": \"string\",\n      \"deleted_at\": 6870,\n      \"deleted_by\": null,\n      \"username\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"94525d0e-892a-d48f-e8e9-5961eccc4ed1\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add a note to a contact","request":{"name":"Add a note to a contact","description":{"content":"Adds a note. `note` can contain basic HTML, which is sanitized. New notes aren't\npinned, and `GET /contact/public/contacts/{id}` returns only pinned notes.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"note\": \"<p>Asked for a quote on the <b>annual</b> plan.</p>\",\n  \"note_text\": \"string\",\n  \"type\": \"contact\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Note created","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"note\": \"<p>Asked for a quote on the <b>annual</b> plan.</p>\",\n  \"note_text\": \"string\",\n  \"type\": \"contact\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"note_id\": \"60fd352d-4058-48c1-822f-01aaab37ddfb\",\n    \"team_id\": \"string\",\n    \"user_id\": \"string\",\n    \"contact_id\": \"652471a0-9037-213a-25d7-d3378d6719af\",\n    \"call_id\": \"string\",\n    \"sms_id\": \"string\",\n    \"task_id\": null,\n    \"type\": \"contact\",\n    \"note\": \"string\",\n    \"note_text\": null,\n    \"ai_source\": {\n      \"key_0\": 7036.268441006541,\n      \"key_1\": false\n    },\n    \"attachments\": [\n      \"\",\n      \"\"\n    ],\n    \"attachment_history\": [\n      \"\",\n      \"\"\n    ],\n    \"mentioned\": [\n      \"string\",\n      \"string\"\n    ],\n    \"created_at\": 9074,\n    \"created_by\": \"string\",\n    \"modified_at\": 5395,\n    \"modified_by\": \"string\",\n    \"deleted_at\": 5217,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"a51c36fd-ea97-e40e-c13b-fc0a6713a3d3\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"note\": \"<p>Asked for a quote on the <b>annual</b> plan.</p>\",\n  \"note_text\": \"string\",\n  \"type\": \"contact\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"note\": \"<p>Asked for a quote on the <b>annual</b> plan.</p>\",\n  \"note_text\": \"string\",\n  \"type\": \"contact\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","notes"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"note\": \"<p>Asked for a quote on the <b>annual</b> plan.</p>\",\n  \"note_text\": \"string\",\n  \"type\": \"contact\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List a contact's follow-ups","request":{"name":"List a contact's follow-ups","description":{"content":"Returns all of the contact's follow-ups in one response, soonest first. Cancelled\nfollow-ups are left out unless you ask for them with `status`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only follow-ups with this status. (This can only be one of pending,triggered,completed,cancelled)","type":"text/plain"},"key":"status","value":"pending"}],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact follow-ups","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only follow-ups with this status. (This can only be one of pending,triggered,completed,cancelled)","type":"text/plain"},"key":"status","value":"pending"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"followup_id\": \"67e3bd47-7b28-3de6-f9a5-ce0fedf1cb42\",\n      \"team_id\": \"string\",\n      \"contact_id\": \"930ccfeb-b984-6e60-5212-e2261712cd52\",\n      \"scheduled_at\": 3064,\n      \"status\": \"pending\",\n      \"description\": \"string\",\n      \"description_text\": \"string\",\n      \"assigned_to\": null,\n      \"assigned_type\": \"team\",\n      \"task_id\": \"string\",\n      \"triggered_at\": null,\n      \"cancelled_at\": null,\n      \"cancelled_by\": null,\n      \"created_at\": 6086,\n      \"created_by\": null,\n      \"updated_at\": 133,\n      \"updated_by\": null\n    },\n    {\n      \"followup_id\": \"48ad0eb6-f5ce-4742-d5bb-6ab3a7394d67\",\n      \"team_id\": \"string\",\n      \"contact_id\": \"bbf463e1-6968-2f31-64d6-4c891eefe9f9\",\n      \"scheduled_at\": 294,\n      \"status\": \"cancelled\",\n      \"description\": \"string\",\n      \"description_text\": null,\n      \"assigned_to\": null,\n      \"assigned_type\": \"user\",\n      \"task_id\": null,\n      \"triggered_at\": null,\n      \"cancelled_at\": null,\n      \"cancelled_by\": null,\n      \"created_at\": 3920,\n      \"created_by\": \"string\",\n      \"updated_at\": 5514,\n      \"updated_by\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"a002f95a-4508-234e-150a-60209105db3a\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only follow-ups with this status. (This can only be one of pending,triggered,completed,cancelled)","type":"text/plain"},"key":"status","value":"pending"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only follow-ups with this status. (This can only be one of pending,triggered,completed,cancelled)","type":"text/plain"},"key":"status","value":"pending"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only follow-ups with this status. (This can only be one of pending,triggered,completed,cancelled)","type":"text/plain"},"key":"status","value":"pending"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a follow-up","request":{"name":"Create a follow-up","description":{"content":"Schedules a reminder to get back to the contact. When it's due, the follow-up becomes\n`triggered` and creates an Inbox task for whoever it's assigned to.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"2026-10-04T15:00:00Z\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Follow-up created","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"2026-10-04T15:00:00Z\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"followup_id\": \"ba7df88b-2ffa-a093-452b-f17e46e13c7a\",\n    \"team_id\": \"string\",\n    \"contact_id\": \"bda1d700-5847-b9f9-a09d-1b9ed01cde10\",\n    \"scheduled_at\": 8927,\n    \"status\": \"pending\",\n    \"description\": \"string\",\n    \"description_text\": null,\n    \"assigned_to\": null,\n    \"assigned_type\": \"team\",\n    \"task_id\": null,\n    \"triggered_at\": null,\n    \"cancelled_at\": 971,\n    \"cancelled_by\": null,\n    \"created_at\": 7994,\n    \"created_by\": null,\n    \"updated_at\": 7735,\n    \"updated_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"d5d5f030-7d7e-4963-1a41-6033fe47e24c\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"2026-10-04T15:00:00Z\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"2026-10-04T15:00:00Z\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","follow-ups"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"2026-10-04T15:00:00Z\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a follow-up","request":{"name":"Update a follow-up","description":{"content":"Changes when it's due, what it says, or who it's assigned to. Send only the fields you\nare changing. Only pending follow-ups can change; any other status is a `409`. To\nclose one, cancel it with `DELETE /contact/public/follow-ups/{id}`.\n","type":"text/plain"},"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Follow-up updated","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"followup_id\": \"ba7df88b-2ffa-a093-452b-f17e46e13c7a\",\n    \"team_id\": \"string\",\n    \"contact_id\": \"bda1d700-5847-b9f9-a09d-1b9ed01cde10\",\n    \"scheduled_at\": 8927,\n    \"status\": \"pending\",\n    \"description\": \"string\",\n    \"description_text\": null,\n    \"assigned_to\": null,\n    \"assigned_type\": \"team\",\n    \"task_id\": null,\n    \"triggered_at\": null,\n    \"cancelled_at\": 971,\n    \"cancelled_by\": null,\n    \"created_at\": 7994,\n    \"created_by\": null,\n    \"updated_at\": 7735,\n    \"updated_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"d5d5f030-7d7e-4963-1a41-6033fe47e24c\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource conflict","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"A resource with this identifier already exists\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"scheduled_at\": \"string\",\n  \"description\": \"string\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"user\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Cancel a follow-up","request":{"name":"Cancel a follow-up","description":{"content":"Cancels a pending follow-up so it never becomes a task. Any other status is a `409`.\n","type":"text/plain"},"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Follow-up cancelled","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"followup_id\": \"6da39807-5e2b-4e2d-85f8-f30405a38221\",\n    \"cancelled\": true,\n    \"message\": \"Follow-up cancelled successfully\"\n  },\n  \"meta\": {\n    \"request_id\": \"5c4886b1-092a-6b19-96d6-975190a1419b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource conflict","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"A resource with this identifier already exists\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","follow-ups",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `followup_id` of the follow-up.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Set a contact's owner","request":{"name":"Set a contact's owner","description":{"content":"Makes a user the contact's owner. Only the current owner or a manager can change the\nowner of a contact someone else owns. The response is the updated contact as stored.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Owner assigned","originalRequest":{"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contact_id\": \"72d3147f-10df-fa52-32c4-c92aa8e3d09e\",\n    \"team_id\": \"string\",\n    \"brand_id\": null,\n    \"record_id\": null,\n    \"field_data\": [\n      {\n        \"field_id\": \"6cfd74f8-2257-faa9-5fa3-711e5864c8ba\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      },\n      {\n        \"field_id\": \"881322cf-eb32-6da5-6cc4-4a45a7f565db\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      }\n    ],\n    \"main_phone\": \"+13125550142\",\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"gravatar_id\": null,\n    \"location\": {\n      \"key_0\": 8738\n    },\n    \"list_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"tags\": [\n      {\n        \"tag_id\": \"fc930688-c02d-2c79-f411-5ca2a466701b\",\n        \"tagged_at\": 5499,\n        \"tagged_by\": null,\n        \"deleted_at\": 6063,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"tag_id\": \"79b5ae3d-6967-c48f-15f4-b3bde649078b\",\n        \"tagged_at\": 6184,\n        \"tagged_by\": \"string\",\n        \"deleted_at\": 6867,\n        \"deleted_by\": null\n      }\n    ],\n    \"owner\": null,\n    \"disposition\": {\n      \"id\": \"string\"\n    },\n    \"call_info\": {\n      \"key_0\": \"string\",\n      \"key_1\": \"string\"\n    },\n    \"dnc\": true,\n    \"litigator\": false,\n    \"source\": \"string\",\n    \"consents\": {\n      \"key_0\": 8722,\n      \"key_1\": \"string\"\n    },\n    \"has_esign_consent\": true,\n    \"has_tcpa_consent\": false,\n    \"has_sms_consent\": true,\n    \"has_email_consent\": true,\n    \"tcpa_opted_out_at\": 3998,\n    \"sms_opted_out_at\": 7813,\n    \"email_opted_out_at\": null,\n    \"email_dnc\": false,\n    \"email_issue_reason\": \"string\",\n    \"rnd_status\": \"string\",\n    \"litigator_status\": \"string\",\n    \"created_at\": 6386,\n    \"created_by\": \"string\",\n    \"modified_at\": 300,\n    \"modified_by\": \"string\",\n    \"deleted_at\": 3264,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"5406df7e-77ae-0f00-05cc-26241db0906b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","owner"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"owner_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Set a contact's disposition","request":{"name":"Set a contact's disposition","description":{"content":"Records a disposition on one contact. Send the `disposition_id` of the disposition to\nrecord. The response is the updated contact, whose `disposition` field holds the latest\none.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","disposition"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"disposition_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Disposition set. The response is the updated contact as stored.","originalRequest":{"url":{"path":["contact","public","contacts",":id","disposition"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"disposition_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contact_id\": \"72d3147f-10df-fa52-32c4-c92aa8e3d09e\",\n    \"team_id\": \"string\",\n    \"brand_id\": null,\n    \"record_id\": null,\n    \"field_data\": [\n      {\n        \"field_id\": \"6cfd74f8-2257-faa9-5fa3-711e5864c8ba\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      },\n      {\n        \"field_id\": \"881322cf-eb32-6da5-6cc4-4a45a7f565db\",\n        \"type\": \"first_name\",\n        \"display_name\": \"First Name\",\n        \"value\": \"Dana\"\n      }\n    ],\n    \"main_phone\": \"+13125550142\",\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"gravatar_id\": null,\n    \"location\": {\n      \"key_0\": 8738\n    },\n    \"list_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"tags\": [\n      {\n        \"tag_id\": \"fc930688-c02d-2c79-f411-5ca2a466701b\",\n        \"tagged_at\": 5499,\n        \"tagged_by\": null,\n        \"deleted_at\": 6063,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"tag_id\": \"79b5ae3d-6967-c48f-15f4-b3bde649078b\",\n        \"tagged_at\": 6184,\n        \"tagged_by\": \"string\",\n        \"deleted_at\": 6867,\n        \"deleted_by\": null\n      }\n    ],\n    \"owner\": null,\n    \"disposition\": {\n      \"id\": \"string\"\n    },\n    \"call_info\": {\n      \"key_0\": \"string\",\n      \"key_1\": \"string\"\n    },\n    \"dnc\": true,\n    \"litigator\": false,\n    \"source\": \"string\",\n    \"consents\": {\n      \"key_0\": 8722,\n      \"key_1\": \"string\"\n    },\n    \"has_esign_consent\": true,\n    \"has_tcpa_consent\": false,\n    \"has_sms_consent\": true,\n    \"has_email_consent\": true,\n    \"tcpa_opted_out_at\": 3998,\n    \"sms_opted_out_at\": 7813,\n    \"email_opted_out_at\": null,\n    \"email_dnc\": false,\n    \"email_issue_reason\": \"string\",\n    \"rnd_status\": \"string\",\n    \"litigator_status\": \"string\",\n    \"created_at\": 6386,\n    \"created_by\": \"string\",\n    \"modified_at\": 300,\n    \"modified_by\": \"string\",\n    \"deleted_at\": 3264,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"5406df7e-77ae-0f00-05cc-26241db0906b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","disposition"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"disposition_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","disposition"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"disposition_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","disposition"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"disposition_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","disposition"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"disposition_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List custom fields","request":{"name":"List custom fields","description":{"content":"Returns every custom field on your account in one response, newest first. Use\n`custom_field_id` as `field_id` when you create contacts with a `custom_field` column.\n","type":"text/plain"},"url":{"path":["contact","public","fields"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Custom field definitions","originalRequest":{"url":{"path":["contact","public","fields"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"custom_field_id\": \"9881180e-071e-69bc-b61b-96a7af9a1642\",\n      \"team_id\": \"string\",\n      \"brand_id\": null,\n      \"type\": \"string\",\n      \"display_name\": \"Membership tier\",\n      \"slug\": \"membership_tier\",\n      \"sort_index\": null,\n      \"list_items\": [\n        {\n          \"item_id\": \"7255aca5-4d4b-ee8a-e59e-7fe55eb94f53\",\n          \"display_name\": \"string\",\n          \"value\": \"string\"\n        },\n        {\n          \"item_id\": \"33e16325-3da0-b9f9-9dff-6ee19a72f6b4\",\n          \"display_name\": \"string\",\n          \"value\": \"string\"\n        }\n      ],\n      \"search_slot\": 3585,\n      \"created_at\": 4081,\n      \"created_by\": \"string\",\n      \"modified_at\": 1897,\n      \"modified_by\": null,\n      \"deleted_at\": 7763,\n      \"deleted_by\": null\n    },\n    {\n      \"custom_field_id\": \"a2a5b872-500a-5232-44ac-2bc657064362\",\n      \"team_id\": \"string\",\n      \"brand_id\": \"string\",\n      \"type\": \"list\",\n      \"display_name\": \"Membership tier\",\n      \"slug\": \"membership_tier\",\n      \"sort_index\": null,\n      \"list_items\": [\n        {\n          \"item_id\": \"87860b2e-ef3b-1fe2-50dc-f69f422ab205\",\n          \"display_name\": \"string\",\n          \"value\": \"string\"\n        },\n        {\n          \"item_id\": \"36699916-e913-2981-e4cb-6d3dcea56427\",\n          \"display_name\": \"string\",\n          \"value\": \"string\"\n        }\n      ],\n      \"search_slot\": 1866,\n      \"created_at\": 7190,\n      \"created_by\": null,\n      \"modified_at\": 3780,\n      \"modified_by\": \"string\",\n      \"deleted_at\": null,\n      \"deleted_by\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"73e53824-9e3b-e6a3-ce98-b9b7e900915f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","fields"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","fields"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add an event to a contact's timeline","request":{"name":"Add an event to a contact's timeline","description":{"content":"Adds an event from your own system to a contact's timeline, sends it to your webhook subscriptions and starts any automations that trigger on it. Identify the contact with `contact_id`, or with `contact_lookup` (email is tried first, then phone). Send `client_event_id` to make retries safe.\n","type":"text/plain"},"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Duplicate event (idempotent, client_event_id already exists)","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"id\": \"string\",\n  \"event_type\": \"string\",\n  \"title\": \"string\",\n  \"source\": \"string\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"external_url\": \"string\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"string\",\n  \"created_at\": \"1947-03-13T12:08:10.261Z\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Event created","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"id\": \"string\",\n  \"event_type\": \"string\",\n  \"title\": \"string\",\n  \"source\": \"string\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"external_url\": \"string\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"string\",\n  \"created_at\": \"1947-03-13T12:08:10.261Z\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Contact not found","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[],"cookie":[],"_postman_previewlanguage":"text"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","events"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"event_type\": \"custom\",\n  \"title\": \"string\",\n  \"source\": \"Cr\",\n  \"icon\": \"string\",\n  \"contact_id\": \"string\",\n  \"contact_lookup\": {\n    \"email\": \"jordan.rivera@example.com\",\n    \"phone\": \"string\"\n  },\n  \"external_url\": \"https://example.com/\",\n  \"data\": {},\n  \"client_event_id\": \"string\",\n  \"priority\": \"normal\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a contact's timeline","request":{"name":"Get a contact's timeline","description":{"content":"Lists the contact's activity, newest first: calls, texts, notes, tag changes, consent\nchanges, follow-ups, and events added with `POST /register/public/events`. `type` is\napplied to each page after it is read, so a filtered page can come back short or empty\nwhile older entries of that type still exist. `total` counts the entries in this\nresponse only. An unknown contact returns an empty page.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","timeline"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only entries of this type, such as `call`, `sms`, `note`, `tag_added`, `consent_granted` or `followup.created`.","type":"text/plain"},"key":"type","value":"tag_added"},{"disabled":false,"description":{"content":"Page size. Values above 100 are treated as 100.","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) `contact_id` of the contact.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Timeline entries","originalRequest":{"url":{"path":["contact","public","contacts",":id","timeline"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only entries of this type, such as `call`, `sms`, `note`, `tag_added`, `consent_granted` or `followup.created`.","type":"text/plain"},"key":"type","value":"tag_added"},{"disabled":false,"description":{"content":"Page size. Values above 100 are treated as 100.","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) `contact_id` of the contact.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"entries\": [\n      {\n        \"entry_id\": \"bc0ac768-2289-df56-3ffa-7a95ae5ba0e9\",\n        \"type\": \"tag_added\",\n        \"team_id\": \"string\",\n        \"contact_id\": \"c565dc66-4ba6-467c-4c22-604e1e96244c\",\n        \"user_id\": null,\n        \"task_id\": \"string\",\n        \"list_id\": \"string\",\n        \"note_id\": \"string\",\n        \"note\": \"string\",\n        \"call_id\": \"string\",\n        \"sms_id\": \"string\",\n        \"sms_body\": \"string\",\n        \"direction\": null,\n        \"duration\": 2046,\n        \"from\": \"+13125550142\",\n        \"to\": \"+13125550187\",\n        \"disposition\": \"\",\n        \"tag_id\": \"string\",\n        \"tag_label\": \"string\",\n        \"consent_id\": \"string\",\n        \"consent_type\": \"string\",\n        \"consent_method\": \"string\",\n        \"consent_text\": \"string\",\n        \"followup_id\": \"string\",\n        \"source\": \"string\",\n        \"title\": \"string\",\n        \"icon\": null,\n        \"external_url\": \"string\",\n        \"sub_type\": null,\n        \"data\": null,\n        \"attachments\": [\n          \"\",\n          \"\"\n        ],\n        \"created_at\": 6122\n      },\n      {\n        \"entry_id\": \"a149cdcb-ba99-e072-341b-549ce9d73ccd\",\n        \"type\": \"tag_added\",\n        \"team_id\": \"string\",\n        \"contact_id\": \"33cce71f-e4a7-fe8e-27f2-bec669c8afce\",\n        \"user_id\": null,\n        \"task_id\": null,\n        \"list_id\": null,\n        \"note_id\": \"string\",\n        \"note\": \"string\",\n        \"call_id\": \"string\",\n        \"sms_id\": \"string\",\n        \"sms_body\": \"string\",\n        \"direction\": \"string\",\n        \"duration\": 8680,\n        \"from\": \"+13125550142\",\n        \"to\": \"+13125550187\",\n        \"disposition\": \"\",\n        \"tag_id\": \"string\",\n        \"tag_label\": \"string\",\n        \"consent_id\": \"string\",\n        \"consent_type\": \"string\",\n        \"consent_method\": \"string\",\n        \"consent_text\": \"string\",\n        \"followup_id\": \"string\",\n        \"source\": \"string\",\n        \"title\": \"string\",\n        \"icon\": null,\n        \"external_url\": null,\n        \"sub_type\": \"string\",\n        \"data\": {\n          \"key_0\": \"string\"\n        },\n        \"attachments\": [\n          \"\",\n          \"\"\n        ],\n        \"created_at\": 386\n      }\n    ],\n    \"total\": 3613\n  },\n  \"meta\": {\n    \"request_id\": \"658a7453-a74b-8cc1-c964-aedee53a07b6\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","timeline"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only entries of this type, such as `call`, `sms`, `note`, `tag_added`, `consent_granted` or `followup.created`.","type":"text/plain"},"key":"type","value":"tag_added"},{"disabled":false,"description":{"content":"Page size. Values above 100 are treated as 100.","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) `contact_id` of the contact.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","timeline"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only entries of this type, such as `call`, `sms`, `note`, `tag_added`, `consent_granted` or `followup.created`.","type":"text/plain"},"key":"type","value":"tag_added"},{"disabled":false,"description":{"content":"Page size. Values above 100 are treated as 100.","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) `contact_id` of the contact.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","timeline"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only entries of this type, such as `call`, `sms`, `note`, `tag_added`, `consent_granted` or `followup.created`.","type":"text/plain"},"key":"type","value":"tag_added"},{"disabled":false,"description":{"content":"Page size. Values above 100 are treated as 100.","type":"text/plain"},"key":"limit","value":"50"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) `contact_id` of the contact.","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Lists","description":"Create lists and manage which contacts are on them.","item":[{"name":"Add a contact to lists","request":{"name":"Add a contact to lists","description":{"content":"Adds the contact to each list in `list_ids`, one list at a time in the order given.\nRepeated ids are added once. Each list sends its own `contact.list.added`. If adding\nto a list fails, the request stops there and returns the error: lists earlier in\n`list_ids` keep the contact and later ones are not attempted. On success\n`data.contact` is the updated contact, as in `GET /contact/public/contacts/{id}`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact added to lists","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"status\": 200,\n    \"contact\": {\n      \"contact_id\": \"9e672279-49fe-76a3-60d1-1ee67a8ad966\",\n      \"brand_id\": \"string\",\n      \"field_data\": [\n        {\n          \"field_id\": \"9e7585bc-a4a1-4143-9398-b5fd0c4eb3a2\",\n          \"type\": \"first_name\",\n          \"display_name\": \"First Name\",\n          \"value\": \"Dana\"\n        },\n        {\n          \"field_id\": \"23f618e7-7bb5-1c6c-bbd9-d2bc32f7f1b7\",\n          \"type\": \"first_name\",\n          \"display_name\": \"First Name\",\n          \"value\": \"Dana\"\n        }\n      ],\n      \"phone_numbers\": [\n        \"+13125550142\",\n        \"+13125550142\"\n      ],\n      \"gravatar_id\": null,\n      \"location\": {\n        \"key_0\": 9135.389002040029\n      },\n      \"list_ids\": [\n        \"string\",\n        \"string\"\n      ],\n      \"notes\": [\n        {\n          \"note_id\": \"cd787da0-fac8-94a9-f143-e516ae8c2dda\",\n          \"team_id\": \"string\",\n          \"user_id\": \"string\",\n          \"contact_id\": \"4d30019b-c423-7ee3-3243-9a216793c74f\",\n          \"call_id\": \"string\",\n          \"sms_id\": null,\n          \"task_id\": \"string\",\n          \"type\": \"contact\",\n          \"note\": \"string\",\n          \"note_text\": null,\n          \"ai_source\": {\n            \"key_0\": 9758.827593177557\n          },\n          \"attachments\": [\n            \"\",\n            \"\"\n          ],\n          \"attachment_history\": [\n            \"\",\n            \"\"\n          ],\n          \"mentioned\": [\n            \"string\",\n            \"string\"\n          ],\n          \"created_at\": 1208,\n          \"created_by\": \"string\",\n          \"modified_at\": 48,\n          \"modified_by\": \"string\",\n          \"deleted_at\": 7630,\n          \"deleted_by\": \"string\"\n        },\n        {\n          \"note_id\": \"42725385-d289-0502-e3db-5566f79746e8\",\n          \"team_id\": \"string\",\n          \"user_id\": \"string\",\n          \"contact_id\": \"4ed8bd66-baa8-1457-0523-28e69d1a9dbc\",\n          \"call_id\": \"string\",\n          \"sms_id\": \"string\",\n          \"task_id\": \"string\",\n          \"type\": \"contact\",\n          \"note\": \"string\",\n          \"note_text\": null,\n          \"ai_source\": {\n            \"key_0\": 2327,\n            \"key_1\": 2158\n          },\n          \"attachments\": [\n            \"\",\n            \"\"\n          ],\n          \"attachment_history\": [\n            \"\",\n            \"\"\n          ],\n          \"mentioned\": [\n            \"string\",\n            \"string\"\n          ],\n          \"created_at\": 8571,\n          \"created_by\": \"string\",\n          \"modified_at\": 7371,\n          \"modified_by\": \"string\",\n          \"deleted_at\": null,\n          \"deleted_by\": null\n        }\n      ],\n      \"pinned_notes_ids\": [\n        \"string\",\n        \"string\"\n      ],\n      \"documents\": [\n        \"\",\n        \"\"\n      ],\n      \"tags\": [\n        {\n          \"tag_id\": \"4aa07973-2b94-e4a4-a027-714eb744d32e\",\n          \"tagged_at\": 5827,\n          \"tagged_by\": null,\n          \"deleted_at\": null,\n          \"deleted_by\": \"string\"\n        },\n        {\n          \"tag_id\": \"425f833a-1996-8aa9-8608-83d4f64cec85\",\n          \"tagged_at\": 3098,\n          \"tagged_by\": \"string\",\n          \"deleted_at\": null,\n          \"deleted_by\": \"string\"\n        }\n      ],\n      \"owner\": null,\n      \"dnc\": true,\n      \"litigator\": false,\n      \"call_info\": {\n        \"key_0\": 5522.624058648944,\n        \"key_1\": 616.9427861459553,\n        \"key_2\": true\n      },\n      \"message_info\": {\n        \"key_0\": 9604.871340561658\n      },\n      \"email_info\": {\n        \"key_0\": 2966,\n        \"key_1\": 6158.422532025725,\n        \"key_2\": true,\n        \"key_3\": false\n      },\n      \"consents\": {\n        \"key_0\": 4537.477341946214,\n        \"key_1\": false\n      },\n      \"has_esign_consent\": true,\n      \"has_tcpa_consent\": true,\n      \"tcpa_opted_out_at\": null,\n      \"tcpa_consent_date\": \"\",\n      \"tcpa_consent_id\": \"string\",\n      \"trustedform_cert_url\": \"string\",\n      \"jornaya_lead_id\": null,\n      \"has_sms_consent\": true,\n      \"sms_opted_out_at\": null,\n      \"has_email_consent\": true,\n      \"email_opted_out_at\": 8563,\n      \"email_dnc\": false,\n      \"email_issue_reason\": \"unsubscribed\",\n      \"rnd_status\": \"string\",\n      \"rnd_checked_at\": null,\n      \"rnd_safe_harbor\": true,\n      \"litigator_status\": \"string\",\n      \"litigator_checked_at\": 6768,\n      \"litigator_source\": null,\n      \"timezone_info\": {\n        \"key_0\": 5747,\n        \"key_1\": 6777\n      },\n      \"first_touch\": null,\n      \"last_touch\": null,\n      \"visitor_id\": \"string\",\n      \"pricing_interest\": [\n        \"\",\n        \"\"\n      ],\n      \"website_safe_url\": \"string\",\n      \"created_at\": 6111\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"1745993c-dacd-973c-dcd1-e371088738d7\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_ids\": [\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Remove a contact from a list","request":{"name":"Remove a contact from a list","description":{"content":"Removes one contact from one list. A contact whose brand differs from the list's\nbrand is skipped, and the response reports how many were skipped.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"string","key":"list_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact removed from list","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"success\": true,\n    \"list_id\": \"string\",\n    \"contact_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"skipped\": 9874,\n    \"skipped_brand_mismatch\": [\n      \"string\",\n      \"string\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"0898c8d4-cd16-8ec2-153c-0dd2f4487cd5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Move a contact between lists","request":{"name":"Move a contact between lists","description":{"content":"Adds the contact to `to_list_id` and removes it from `from_list_id`. If the target\nlist belongs to a different brand than the contact, the contact stays where it is\nand is counted in `skipped`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact moved","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"success\": true,\n    \"list_id\": \"string\",\n    \"contact_ids\": [\n      \"string\",\n      \"string\"\n    ],\n    \"skipped\": 9874,\n    \"skipped_brand_mismatch\": [\n      \"string\",\n      \"string\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"0898c8d4-cd16-8ec2-153c-0dd2f4487cd5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","lists","move"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"from_list_id\": \"string\",\n  \"to_list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List lists","request":{"name":"List lists","description":{"content":"Page with `limit` and `offset`. The page is `data.lists`. The built-in Unlisted list,\nwhich holds contacts on no other list, is moved to the front of whichever page it\nfalls on. Each list carries `contact_count`; for line-type and other counts, get the\nlist with `GET /contact/public/lists/{id}`.\n","type":"text/plain"},"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only lists whose name matches.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of created_at,list_name,modified_at,contact_count)","type":"text/plain"},"key":"sort_by","value":"created_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"Only lists of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"A page of lists","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only lists whose name matches.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of created_at,list_name,modified_at,contact_count)","type":"text/plain"},"key":"sort_by","value":"created_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"Only lists of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"lists\": [\n      {\n        \"list_id\": \"3ce19f91-110c-5351-cb3f-08bf7ce3beaf\",\n        \"list_name\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": \"string\",\n        \"shared_across_brands\": true,\n        \"owner\": null,\n        \"visibility\": {\n          \"type\": \"teams\",\n          \"user_ids\": [\n            \"string\",\n            \"string\"\n          ],\n          \"user_group_id\": \"string\"\n        },\n        \"callable\": null,\n        \"compliance\": {\n          \"user_id\": \"string\",\n          \"timestamp\": 4806,\n          \"ip\": \"string\"\n        },\n        \"recordings\": \"\",\n        \"outbound_scripts\": [\n          \"\",\n          \"\"\n        ],\n        \"is_seed\": false,\n        \"system_type\": \"string\",\n        \"delete_protected\": true,\n        \"contact_count\": 7039,\n        \"created_at\": 8300,\n        \"created_by\": null,\n        \"modified_at\": 7191,\n        \"modified_by\": \"string\",\n        \"deleted_at\": 2911,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"list_id\": \"597ef16b-3b08-3abe-2d0f-0c14afa105bd\",\n        \"list_name\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": null,\n        \"shared_across_brands\": true,\n        \"owner\": \"string\",\n        \"visibility\": {\n          \"type\": \"teams\",\n          \"user_ids\": [\n            \"string\",\n            \"string\"\n          ],\n          \"user_group_id\": \"string\"\n        },\n        \"callable\": false,\n        \"compliance\": null,\n        \"recordings\": \"\",\n        \"outbound_scripts\": [\n          \"\",\n          \"\"\n        ],\n        \"is_seed\": false,\n        \"system_type\": null,\n        \"delete_protected\": false,\n        \"contact_count\": 1487,\n        \"created_at\": 5620,\n        \"created_by\": null,\n        \"modified_at\": 4294,\n        \"modified_by\": \"string\",\n        \"deleted_at\": null,\n        \"deleted_by\": \"string\"\n      }\n    ],\n    \"next_cursor\": {\n      \"key_0\": 1039,\n      \"key_1\": true,\n      \"key_2\": 8353.265395853668,\n      \"key_3\": 275.79923858866096\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"448defeb-57f7-c5f1-31b1-b604b4517a14\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only lists whose name matches.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of created_at,list_name,modified_at,contact_count)","type":"text/plain"},"key":"sort_by","value":"created_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"Only lists of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Only lists whose name matches.","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of created_at,list_name,modified_at,contact_count)","type":"text/plain"},"key":"sort_by","value":"created_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"Only lists of this brand.","type":"text/plain"},"key":"brand_id","value":"string"},{"disabled":false,"description":{"content":"Page size.","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a list","request":{"name":"Create a list","description":{"content":"Creates an empty list. List names are unique on your account; a duplicate name is a\n`409`. The response is the stored list, without counts.\n","type":"text/plain"},"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"List created","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"list_id\": \"06ef63b9-bd24-7df7-d692-6ad23e6d9c0f\",\n    \"list_name\": \"string\",\n    \"team_id\": \"string\",\n    \"brand_id\": null,\n    \"shared_across_brands\": false,\n    \"owner\": null,\n    \"visibility\": {\n      \"type\": \"everyone\",\n      \"user_ids\": [\n        \"string\",\n        \"string\"\n      ],\n      \"user_group_id\": \"string\"\n    },\n    \"callable\": null,\n    \"compliance\": null,\n    \"recordings\": \"\",\n    \"outbound_scripts\": [\n      \"\",\n      \"\"\n    ],\n    \"is_seed\": true,\n    \"system_type\": null,\n    \"delete_protected\": false,\n    \"contact_count\": 5405,\n    \"created_at\": 6196,\n    \"created_by\": null,\n    \"modified_at\": 9295,\n    \"modified_by\": null,\n    \"deleted_at\": null,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"e1790622-9f9f-eb00-0e0c-a2644f8653cd\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource conflict","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"A resource with this identifier already exists\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","lists"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list_name\": \"My List\",\n  \"compliance\": false,\n  \"callable\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a list","request":{"name":"Get a list","description":{"content":"The list, with its counts, is in `data.list`.","type":"text/plain"},"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"List details","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"list\": {\n      \"list_id\": \"f9e40f34-47b5-e616-a497-141751c4a9a4\",\n      \"list_name\": \"string\",\n      \"team_id\": \"string\",\n      \"brand_id\": null,\n      \"shared_across_brands\": false,\n      \"owner\": \"string\",\n      \"visibility\": {\n        \"type\": \"everyone\",\n        \"user_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"user_group_id\": \"string\"\n      },\n      \"callable\": null,\n      \"compliance\": {\n        \"user_id\": \"string\",\n        \"timestamp\": 3178,\n        \"ip\": \"string\"\n      },\n      \"recordings\": \"\",\n      \"is_seed\": false,\n      \"system_type\": \"string\",\n      \"delete_protected\": true,\n      \"contact_count\": 4377,\n      \"created_at\": 4785,\n      \"created_by\": \"string\",\n      \"modified_at\": 5270,\n      \"modified_by\": \"string\",\n      \"deleted_at\": 2777,\n      \"deleted_by\": null,\n      \"import\": {\n        \"status\": \"string\",\n        \"accepted_count\": 6331\n      },\n      \"total_phone_numbers\": 923,\n      \"wireless_count\": 9706,\n      \"landline_count\": 6749,\n      \"voip_count\": 3426,\n      \"tollfree_count\": 1943,\n      \"invalid_count\": 7644,\n      \"unknown_count\": 6376,\n      \"email_capable_count\": 8454,\n      \"non_callable_contacts\": 3598,\n      \"available_to_dial\": \"\",\n      \"last_dial\": \"\",\n      \"timezone_distribution\": {\n        \"key_0\": \"string\"\n      },\n      \"stats_dirty\": false\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"033bdbca-9b69-0948-c71d-5c4848ee256f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a list","request":{"name":"Update a list","description":{"content":"Changes only the fields you send. The response is the updated list as stored,\nwithout counts.\n","type":"text/plain"},"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_name\": \"string\",\n  \"recordings\": \"\",\n  \"callable\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"List updated","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_name\": \"string\",\n  \"recordings\": \"\",\n  \"callable\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"list_id\": \"06ef63b9-bd24-7df7-d692-6ad23e6d9c0f\",\n    \"list_name\": \"string\",\n    \"team_id\": \"string\",\n    \"brand_id\": null,\n    \"shared_across_brands\": false,\n    \"owner\": null,\n    \"visibility\": {\n      \"type\": \"everyone\",\n      \"user_ids\": [\n        \"string\",\n        \"string\"\n      ],\n      \"user_group_id\": \"string\"\n    },\n    \"callable\": null,\n    \"compliance\": null,\n    \"recordings\": \"\",\n    \"outbound_scripts\": [\n      \"\",\n      \"\"\n    ],\n    \"is_seed\": true,\n    \"system_type\": null,\n    \"delete_protected\": false,\n    \"contact_count\": 5405,\n    \"created_at\": 6196,\n    \"created_by\": null,\n    \"modified_at\": 9295,\n    \"modified_by\": null,\n    \"deleted_at\": null,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"e1790622-9f9f-eb00-0e0c-a2644f8653cd\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_name\": \"string\",\n  \"recordings\": \"\",\n  \"callable\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_name\": \"string\",\n  \"recordings\": \"\",\n  \"callable\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_name\": \"string\",\n  \"recordings\": \"\",\n  \"callable\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_name\": \"string\",\n  \"recordings\": \"\",\n  \"callable\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a list","request":{"name":"Delete a list","description":{"content":"Deletes the list. Its contacts stay on your account unless you send\n`delete_contacts: true`, which needs permission to delete contacts. System lists\ncan't be deleted.\n","type":"text/plain"},"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"List deleted","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"list_id\": \"9cca1e95-d1da-cd4c-552e-67f17b74cd71\",\n    \"contacts_deleted\": 7006\n  },\n  \"meta\": {\n    \"request_id\": \"ef73a5ff-bc0b-a192-599d-8dab263ebbd1\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","lists",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{"mode":"raw","raw":"{\n  \"delete_contacts\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List a list's contacts","request":{"name":"List a list's contacts","description":{"content":"Cursor pagination, oldest first. Pass `next_cursor` back as `after_id` until\n`has_more` is false. Operation webhooks such as `contact.list.added` carry a\nready-made `more_via` URL for this route.\n","type":"text/plain"},"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id","disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"A page of contacts","originalRequest":{"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"contacts\": [\n      {\n        \"_id\": \"string\",\n        \"contact_id\": \"570ada21-3179-a46f-7fd8-c6084911df6f\",\n        \"team_id\": \"string\",\n        \"field_data\": [\n          {\n            \"field_id\": \"dc6c4837-053b-ed60-1350-fb06d500f158\",\n            \"type\": \"first_name\",\n            \"display_name\": \"First Name\",\n            \"value\": \"Dana\"\n          },\n          {\n            \"field_id\": \"142c80fd-0b69-834e-8907-82adfa63190d\",\n            \"type\": \"first_name\",\n            \"display_name\": \"First Name\",\n            \"value\": \"Dana\"\n          }\n        ],\n        \"phone_numbers\": [\n          \"string\",\n          \"string\"\n        ],\n        \"main_phone\": \"+13125550142\",\n        \"location\": {\n          \"key_0\": \"string\",\n          \"key_1\": 9960.838372353464\n        },\n        \"list_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"dnc\": false,\n        \"tags\": [\n          {\n            \"tag_id\": \"6169b27e-3a52-7e7b-763f-a03f30005596\",\n            \"tagged_at\": 1958,\n            \"tagged_by\": \"string\",\n            \"deleted_at\": null,\n            \"deleted_by\": null\n          },\n          {\n            \"tag_id\": \"283e59d6-552a-7886-0a09-e3b88905f079\",\n            \"tagged_at\": 5300,\n            \"tagged_by\": null,\n            \"deleted_at\": null,\n            \"deleted_by\": null\n          }\n        ],\n        \"created_at\": 357,\n        \"modified_at\": 1974\n      },\n      {\n        \"_id\": \"string\",\n        \"contact_id\": \"803d8f85-d9c7-0934-88f0-61f5aec14746\",\n        \"team_id\": \"string\",\n        \"field_data\": [\n          {\n            \"field_id\": \"b57ab9ee-c075-03c3-2ec8-4eb0852a1522\",\n            \"type\": \"first_name\",\n            \"display_name\": \"First Name\",\n            \"value\": \"Dana\"\n          },\n          {\n            \"field_id\": \"90368554-f596-dcff-6608-291d0f059652\",\n            \"type\": \"first_name\",\n            \"display_name\": \"First Name\",\n            \"value\": \"Dana\"\n          }\n        ],\n        \"phone_numbers\": [\n          \"string\",\n          \"string\"\n        ],\n        \"main_phone\": \"+13125550142\",\n        \"location\": {\n          \"key_0\": \"string\"\n        },\n        \"list_ids\": [\n          \"string\",\n          \"string\"\n        ],\n        \"dnc\": true,\n        \"tags\": [\n          {\n            \"tag_id\": \"68bb8bd7-09cb-45fa-5f79-122b336278cb\",\n            \"tagged_at\": 1549,\n            \"tagged_by\": null,\n            \"deleted_at\": 7527,\n            \"deleted_by\": \"string\"\n          },\n          {\n            \"tag_id\": \"da51e4e3-69d2-22c9-48ba-b6023a155c3b\",\n            \"tagged_at\": 108,\n            \"tagged_by\": null,\n            \"deleted_at\": 1204,\n            \"deleted_by\": \"string\"\n          }\n        ],\n        \"created_at\": 5543,\n        \"modified_at\": 9034\n      }\n    ],\n    \"next_cursor\": \"string\",\n    \"has_more\": true\n  },\n  \"meta\": {\n    \"request_id\": \"263d6240-a1cb-b5b9-d036-83dd47fb0033\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","lists",":id","contacts"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Cursor. Pass the previous page's `next_cursor`; omit for the first page.","type":"text/plain"},"key":"after_id","value":"string"},{"disabled":false,"description":{"content":"Page size. Values above 500 are treated as 500.","type":"text/plain"},"key":"limit","value":"25"}],"variable":[{"disabled":false,"description":{"content":"(Required) `list_id` from `GET /contact/public/lists`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Tags","description":"Create, update and delete tags.","item":[{"name":"List tags","request":{"name":"List tags","description":{"content":"Returns every tag on your account.","type":"text/plain"},"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Filter tags whose label matches (case-insensitive substring).","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"List of tags","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Filter tags whose label matches (case-insensitive substring).","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"team_id\": \"string\",\n      \"tag_id\": \"string\",\n      \"label\": \"string\",\n      \"color\": \"string\",\n      \"text_color\": \"string\",\n      \"created_at\": 591,\n      \"created_by\": \"string\",\n      \"updated_at\": 3466,\n      \"updated_by\": \"string\"\n    },\n    {\n      \"team_id\": \"string\",\n      \"tag_id\": \"string\",\n      \"label\": \"string\",\n      \"color\": \"string\",\n      \"text_color\": \"string\",\n      \"created_at\": 7947,\n      \"created_by\": \"string\",\n      \"updated_at\": 6251,\n      \"updated_by\": \"string\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"d456fdfa-03ca-56a4-32a0-78d9f3a6d847\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Filter tags whose label matches (case-insensitive substring).","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Filter tags whose label matches (case-insensitive substring).","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a tag","request":{"name":"Create a tag","description":{"content":"Creates a tag. Send a `label` and, optionally, a `color` and a `text_color` as hex\nvalues. The response is the new tag, and its `tag_id` is the id you use to refer to it.\n","type":"text/plain"},"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Tag created. The tag's id is `tag_id`.","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"team_id\": \"string\",\n    \"tag_id\": \"string\",\n    \"label\": \"string\",\n    \"color\": \"string\",\n    \"text_color\": \"string\",\n    \"created_at\": 8058,\n    \"created_by\": \"string\",\n    \"updated_at\": 2489,\n    \"updated_by\": \"string\",\n    \"is_seed\": true,\n    \"deleted_at\": null,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"c710e252-4796-ca7e-50bd-9bf6ba752093\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["tag","public","tags"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a tag","request":{"name":"Update a tag","description":{"content":"Changes only the fields you send. Always send `label`, even when you change only the colors.","type":"text/plain"},"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"tag_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Tag updated","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"id\": \"string\",\n    \"label\": \"string\",\n    \"color\": \"string\",\n    \"text_color\": \"string\",\n    \"updated_at\": \"2016-09-25T14:03:47.105Z\"\n  },\n  \"meta\": {\n    \"request_id\": \"1b633b70-41af-7f60-6027-391af2a46077\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"label\": \"string\",\n  \"color\": \"string\",\n  \"text_color\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a tag","request":{"name":"Delete a tag","description":{"content":"Deletes the tag, which then no longer appears in `GET /tag/public/tags`. Contacts\nthat had the tag are not updated, so their `tags` can still hold its id.\n","type":"text/plain"},"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"tag_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Tag deleted","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"id\": \"string\",\n    \"deleted\": true\n  },\n  \"meta\": {\n    \"request_id\": \"e8121e75-d69d-8da2-6eff-d1bfdfd47a63\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["tag","public","tags",":tag_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"tag_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete several tags","request":{"name":"Delete several tags","description":{"content":"Deletes every tag in `tag_ids`. Ids that aren't on your account are skipped without an error.","type":"text/plain"},"url":{"path":["tag","public","tags","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"tag_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Bulk delete result","originalRequest":{"url":{"path":["tag","public","tags","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"tag_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"matched_count\": 3048,\n    \"modified_count\": 8561\n  },\n  \"meta\": {\n    \"request_id\": \"fe5c00b3-fd97-6fc4-fbce-0137cfef10f2\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["tag","public","tags","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"tag_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["tag","public","tags","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"tag_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["tag","public","tags","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"tag_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Consent","description":"Record, read and revoke a contact's consent.","item":[{"name":"List a contact's consent records","request":{"name":"List a contact's consent records","description":{"content":"Returns every consent record for the contact in one response, newest first, including\nopt-outs and revocations. An unknown contact returns an empty array.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Consent records","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"consent_id\": \"e5f07074-bcc3-924e-0b75-b33697c5d91c\",\n      \"team_id\": \"string\",\n      \"contact_id\": null,\n      \"lead_id\": null,\n      \"phone_number\": \"+13125550142\",\n      \"email\": \"string\",\n      \"site_id\": null,\n      \"page_url\": null,\n      \"webform_id\": null,\n      \"consent_type\": \"tcpa_optin\",\n      \"consent_status\": \"string\",\n      \"consent_version\": \"1.0.0\",\n      \"consent_method\": \"api\",\n      \"consent_text\": \"string\",\n      \"consent_text_hash\": \"string\",\n      \"ip_address\": \"string\",\n      \"user_agent\": \"string\",\n      \"fingerprint\": \"\",\n      \"session\": \"\",\n      \"form_interaction\": \"\",\n      \"device\": \"\",\n      \"network\": \"\",\n      \"third_party\": {\n        \"trustedform_cert_url\": null,\n        \"trustedform_token\": \"string\",\n        \"jornaya_lead_id\": \"string\",\n        \"custom_verification_id\": null,\n        \"custom_verification_url\": null\n      },\n      \"has_screenshot\": false,\n      \"screenshot_ext\": null,\n      \"granted_at\": 168,\n      \"revoked_at\": 8068,\n      \"created_at\": 9027\n    },\n    {\n      \"consent_id\": \"d4f1b5b3-08d3-d34a-3b9d-13da9ad9bebb\",\n      \"team_id\": \"string\",\n      \"contact_id\": null,\n      \"lead_id\": null,\n      \"phone_number\": \"+13125550142\",\n      \"email\": null,\n      \"site_id\": \"string\",\n      \"page_url\": \"string\",\n      \"webform_id\": null,\n      \"consent_type\": \"web_tracking\",\n      \"consent_status\": \"string\",\n      \"consent_version\": \"1.0.0\",\n      \"consent_method\": \"api\",\n      \"consent_text\": \"string\",\n      \"consent_text_hash\": null,\n      \"ip_address\": null,\n      \"user_agent\": null,\n      \"fingerprint\": \"\",\n      \"session\": \"\",\n      \"form_interaction\": \"\",\n      \"device\": \"\",\n      \"network\": \"\",\n      \"third_party\": {\n        \"trustedform_cert_url\": null,\n        \"trustedform_token\": null,\n        \"jornaya_lead_id\": \"string\",\n        \"custom_verification_id\": \"string\",\n        \"custom_verification_url\": null\n      },\n      \"has_screenshot\": true,\n      \"screenshot_ext\": \"string\",\n      \"granted_at\": 5374,\n      \"revoked_at\": null,\n      \"created_at\": 7004\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"ba0c8c96-fd55-2144-58f7-602afbe0aa04\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Record consent for a contact","request":{"name":"Record consent for a contact","description":{"content":"Stores a consent record and updates the contact's consent flags. Send `phone_number`,\n`email`, or both. Opt-out types (`tcpa_optout`, `sms_optout`, `email_optout`) record\na revocation and send no `contact.consent.granted`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"consent_type\": \"sms_optout\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"consent_status\": \"granted\",\n  \"consent_version\": \"1.0.0\",\n  \"consent_method\": \"api\",\n  \"consent_text\": \"string\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\",\n  \"trustedform_cert_url\": \"string\",\n  \"trustedform_token\": \"string\",\n  \"jornaya_lead_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Consent recorded","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"consent_type\": \"sms_optout\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"consent_status\": \"granted\",\n  \"consent_version\": \"1.0.0\",\n  \"consent_method\": \"api\",\n  \"consent_text\": \"string\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\",\n  \"trustedform_cert_url\": \"string\",\n  \"trustedform_token\": \"string\",\n  \"jornaya_lead_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"consent_id\": \"88ff93d9-b2f0-c868-0388-743baa74742e\",\n    \"consent\": {\n      \"consent_id\": \"8e9bd707-0538-ffa6-ab45-24b942209683\",\n      \"team_id\": \"string\",\n      \"contact_id\": \"string\",\n      \"lead_id\": null,\n      \"phone_number\": \"+13125550142\",\n      \"email\": \"string\",\n      \"site_id\": \"string\",\n      \"page_url\": \"string\",\n      \"webform_id\": \"string\",\n      \"consent_type\": \"tcpa_optout\",\n      \"consent_status\": \"string\",\n      \"consent_version\": \"1.0.0\",\n      \"consent_method\": \"api\",\n      \"consent_text\": null,\n      \"consent_text_hash\": \"string\",\n      \"ip_address\": \"string\",\n      \"user_agent\": null,\n      \"fingerprint\": \"\",\n      \"session\": \"\",\n      \"form_interaction\": \"\",\n      \"device\": \"\",\n      \"network\": \"\",\n      \"third_party\": {\n        \"trustedform_cert_url\": \"string\",\n        \"trustedform_token\": \"string\",\n        \"jornaya_lead_id\": null,\n        \"custom_verification_id\": null,\n        \"custom_verification_url\": null\n      },\n      \"has_screenshot\": true,\n      \"screenshot_ext\": null,\n      \"granted_at\": 4866,\n      \"revoked_at\": null,\n      \"created_at\": 4648\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"c3ab068f-a4db-07a1-dfc1-32aeca5dccdf\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"consent_type\": \"sms_optout\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"consent_status\": \"granted\",\n  \"consent_version\": \"1.0.0\",\n  \"consent_method\": \"api\",\n  \"consent_text\": \"string\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\",\n  \"trustedform_cert_url\": \"string\",\n  \"trustedform_token\": \"string\",\n  \"jornaya_lead_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"consent_type\": \"sms_optout\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"consent_status\": \"granted\",\n  \"consent_version\": \"1.0.0\",\n  \"consent_method\": \"api\",\n  \"consent_text\": \"string\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\",\n  \"trustedform_cert_url\": \"string\",\n  \"trustedform_token\": \"string\",\n  \"jornaya_lead_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"consent_type\": \"sms_optout\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"consent_status\": \"granted\",\n  \"consent_version\": \"1.0.0\",\n  \"consent_method\": \"api\",\n  \"consent_text\": \"string\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\",\n  \"trustedform_cert_url\": \"string\",\n  \"trustedform_token\": \"string\",\n  \"jornaya_lead_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Revoke a consent record","request":{"name":"Revoke a consent record","description":{"content":"Records a `tcpa_optout` for the phone number and email on the consent `cid`, revokes\nthe contact's TCPA consents, and adds every phone number on the contact to your\ndo-not-contact list. Revoking an `esign` consent revokes all of the contact's\nconsents. The response is the new opt-out record. A `cid` that doesn't exist leaves\nno phone number or email to opt out, which is a `400`.\n","type":"text/plain"},"url":{"path":["contact","public","contacts",":id","consent",":cid","revoke"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"string","key":"cid","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"consent_method\": \"api\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Consent revoked","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent",":cid","revoke"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"cid"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"consent_method\": \"api\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"consent_id\": \"88ff93d9-b2f0-c868-0388-743baa74742e\",\n    \"consent\": {\n      \"consent_id\": \"8e9bd707-0538-ffa6-ab45-24b942209683\",\n      \"team_id\": \"string\",\n      \"contact_id\": \"string\",\n      \"lead_id\": null,\n      \"phone_number\": \"+13125550142\",\n      \"email\": \"string\",\n      \"site_id\": \"string\",\n      \"page_url\": \"string\",\n      \"webform_id\": \"string\",\n      \"consent_type\": \"tcpa_optout\",\n      \"consent_status\": \"string\",\n      \"consent_version\": \"1.0.0\",\n      \"consent_method\": \"api\",\n      \"consent_text\": null,\n      \"consent_text_hash\": \"string\",\n      \"ip_address\": \"string\",\n      \"user_agent\": null,\n      \"fingerprint\": \"\",\n      \"session\": \"\",\n      \"form_interaction\": \"\",\n      \"device\": \"\",\n      \"network\": \"\",\n      \"third_party\": {\n        \"trustedform_cert_url\": \"string\",\n        \"trustedform_token\": \"string\",\n        \"jornaya_lead_id\": null,\n        \"custom_verification_id\": null,\n        \"custom_verification_url\": null\n      },\n      \"has_screenshot\": true,\n      \"screenshot_ext\": null,\n      \"granted_at\": 4866,\n      \"revoked_at\": null,\n      \"created_at\": 4648\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"c3ab068f-a4db-07a1-dfc1-32aeca5dccdf\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent",":cid","revoke"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"cid"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"consent_method\": \"api\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent",":cid","revoke"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"cid"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"consent_method\": \"api\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["contact","public","contacts",":id","consent",":cid","revoke"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"cid"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"consent_method\": \"api\",\n  \"ip_address\": \"string\",\n  \"user_agent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Do-not-contact list","description":"Add, check and remove numbers on your do-not-contact list.","item":[{"name":"Check numbers or emails against the do-not-contact list","request":{"name":"Check numbers or emails against the do-not-contact list","description":{"content":"Send `phone_numbers`, `emails` or both. `on_dnc` is true when any of them is\nlisted. With `brand_id`, entries for that brand and entries that apply to\nevery brand both count.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Comma-separated phone numbers in E.164 format.","type":"text/plain"},"key":"phone_numbers","value":"+13125550142,+13125550187"},{"disabled":false,"description":{"content":"Comma-separated email addresses. Matching ignores case.","type":"text/plain"},"key":"emails","value":"jordan@example.com"},{"disabled":false,"description":{"content":"Check as this brand.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Lookup result","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Comma-separated phone numbers in E.164 format.","type":"text/plain"},"key":"phone_numbers","value":"+13125550142,+13125550187"},{"disabled":false,"description":{"content":"Comma-separated email addresses. Matching ignores case.","type":"text/plain"},"key":"emails","value":"jordan@example.com"},{"disabled":false,"description":{"content":"Check as this brand.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"on_dnc\": false,\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"emails\": [\n      \"string\",\n      \"string\"\n    ],\n    \"matched\": [\n      \"string\",\n      \"string\"\n    ],\n    \"data\": [\n      {\n        \"_id\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": null,\n        \"phone_number\": \"+13125550142\",\n        \"email\": \"string\",\n        \"record_id\": null,\n        \"method\": \"string\",\n        \"reason\": \"api\",\n        \"self_added\": true,\n        \"block_inbound\": true,\n        \"created_at\": 8995,\n        \"created_by\": \"string\",\n        \"updated_at\": 6644,\n        \"updated_by\": \"string\"\n      },\n      {\n        \"_id\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": \"string\",\n        \"phone_number\": \"+13125550142\",\n        \"email\": \"string\",\n        \"record_id\": null,\n        \"method\": \"string\",\n        \"reason\": \"api\",\n        \"self_added\": true,\n        \"block_inbound\": true,\n        \"created_at\": 142,\n        \"created_by\": null,\n        \"updated_at\": 4929,\n        \"updated_by\": null\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"9f20b676-144e-defe-3fa4-5c2e397399a5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Comma-separated phone numbers in E.164 format.","type":"text/plain"},"key":"phone_numbers","value":"+13125550142,+13125550187"},{"disabled":false,"description":{"content":"Comma-separated email addresses. Matching ignores case.","type":"text/plain"},"key":"emails","value":"jordan@example.com"},{"disabled":false,"description":{"content":"Check as this brand.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Comma-separated phone numbers in E.164 format.","type":"text/plain"},"key":"phone_numbers","value":"+13125550142,+13125550187"},{"disabled":false,"description":{"content":"Comma-separated email addresses. Matching ignores case.","type":"text/plain"},"key":"emails","value":"jordan@example.com"},{"disabled":false,"description":{"content":"Check as this brand.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Comma-separated phone numbers in E.164 format.","type":"text/plain"},"key":"phone_numbers","value":"+13125550142,+13125550187"},{"disabled":false,"description":{"content":"Comma-separated email addresses. Matching ignores case.","type":"text/plain"},"key":"emails","value":"jordan@example.com"},{"disabled":false,"description":{"content":"Check as this brand.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add numbers or emails to the do-not-contact list","request":{"name":"Add numbers or emails to the do-not-contact list","description":{"content":"Adds or updates one entry per number and email, and flags matching contacts\nas do-not-contact. Without `brand_id` the entries apply to every brand.\nAdding something already listed for the same brand updates its entry and\nis reported in `already_listed`.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan@example.com\",\n  \"brand_id\": \"string\",\n  \"reason\": \"api\",\n  \"method\": \"api\",\n  \"record_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Entries added","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan@example.com\",\n  \"brand_id\": \"string\",\n  \"reason\": \"api\",\n  \"method\": \"api\",\n  \"record_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"added\": [\n      \"+13125550142\"\n    ],\n    \"already_listed\": [\n      \"+13125550187\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"2025ff67-0089-4119-f056-53e47a166543\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan@example.com\",\n  \"brand_id\": \"string\",\n  \"reason\": \"api\",\n  \"method\": \"api\",\n  \"record_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan@example.com\",\n  \"brand_id\": \"string\",\n  \"reason\": \"api\",\n  \"method\": \"api\",\n  \"record_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan@example.com\",\n  \"brand_id\": \"string\",\n  \"reason\": \"api\",\n  \"method\": \"api\",\n  \"record_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Remove several numbers or emails from the do-not-contact list","request":{"name":"Remove several numbers or emails from the do-not-contact list","description":{"content":"Removes each number and email and clears the do-not-contact flag on matching\ncontacts. Opt-outs the recipient made themselves (for example a STOP reply)\nare kept and reported in `skipped`.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_numbers\": [\n    \"+13125550142\",\n    \"+13125550142\"\n  ],\n  \"emails\": [\n    \"jordan@example.com\",\n    \"jordan@example.com\"\n  ],\n  \"brand_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Removal result","originalRequest":{"url":{"path":["dnc","public","dnc","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_numbers\": [\n    \"+13125550142\",\n    \"+13125550142\"\n  ],\n  \"emails\": [\n    \"jordan@example.com\",\n    \"jordan@example.com\"\n  ],\n  \"brand_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"deleted\": [\n      \"string\",\n      \"string\"\n    ],\n    \"skipped\": [\n      {\n        \"phone_number\": \"string\",\n        \"email\": null,\n        \"reason\": \"self_added_opt_out\"\n      },\n      {\n        \"phone_number\": null,\n        \"email\": null,\n        \"reason\": \"self_added_opt_out\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"95cec6ed-34e9-3e46-7040-a20e001ca8b8\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["dnc","public","dnc","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_numbers\": [\n    \"+13125550142\",\n    \"+13125550142\"\n  ],\n  \"emails\": [\n    \"jordan@example.com\",\n    \"jordan@example.com\"\n  ],\n  \"brand_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_numbers\": [\n    \"+13125550142\",\n    \"+13125550142\"\n  ],\n  \"emails\": [\n    \"jordan@example.com\",\n    \"jordan@example.com\"\n  ],\n  \"brand_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc","bulk-delete"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_numbers\": [\n    \"+13125550142\",\n    \"+13125550142\"\n  ],\n  \"emails\": [\n    \"jordan@example.com\",\n    \"jordan@example.com\"\n  ],\n  \"brand_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Check one number against the do-not-contact list","request":{"name":"Check one number against the do-not-contact list","description":{"content":"Returns the matching entries when the number is listed, and `404` when it\nisn't. To check several numbers or emails at once, use `GET /dnc/public/dnc`.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"type":"any","value":"+13125550142","key":"phoneNumber","disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The number is listed","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"on_dnc\": false,\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"emails\": [\n      \"string\",\n      \"string\"\n    ],\n    \"matched\": [\n      \"string\",\n      \"string\"\n    ],\n    \"data\": [\n      {\n        \"_id\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": null,\n        \"phone_number\": \"+13125550142\",\n        \"email\": \"string\",\n        \"record_id\": null,\n        \"method\": \"string\",\n        \"reason\": \"api\",\n        \"self_added\": true,\n        \"block_inbound\": true,\n        \"created_at\": 8995,\n        \"created_by\": \"string\",\n        \"updated_at\": 6644,\n        \"updated_by\": \"string\"\n      },\n      {\n        \"_id\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": \"string\",\n        \"phone_number\": \"+13125550142\",\n        \"email\": \"string\",\n        \"record_id\": null,\n        \"method\": \"string\",\n        \"reason\": \"api\",\n        \"self_added\": true,\n        \"block_inbound\": true,\n        \"created_at\": 142,\n        \"created_by\": null,\n        \"updated_at\": 4929,\n        \"updated_by\": null\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"9f20b676-144e-defe-3fa4-5c2e397399a5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Not on the do-not-contact list.","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Remove a number from the do-not-contact list","request":{"name":"Remove a number from the do-not-contact list","description":{"content":"Removes the entry and clears the do-not-contact flag on matching contacts,\nand returns the entry that was removed. Returns 400 if the recipient opted\nout themselves. A number that isn't listed still returns 200, with\n`deleted_at` and `deleted_by` set to `null`.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"type":"any","value":"+13125550142","key":"phoneNumber","disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Number removed","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"phone_number\": \"+13125550187\",\n    \"email\": \"string\",\n    \"brand_id\": null,\n    \"method\": null,\n    \"reason\": null,\n    \"record_id\": null,\n    \"created_at\": 4239,\n    \"updated_at\": 3150,\n    \"deleted_at\": 5208,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"766fcc59-f47e-320b-8341-a64832b0a747\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc",":phoneNumber"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The number exactly as it was added, in E.164 format.","type":"text/plain"},"type":"any","value":"+13125550142","key":"phoneNumber"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Check one email against the do-not-contact list","request":{"name":"Check one email against the do-not-contact list","description":{"content":"Returns the matching entries when the address is listed, and `404` when it\nisn't.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"type":"any","value":"jordan.rivera@example.com","key":"email","disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The email is listed","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"on_dnc\": false,\n    \"phone_numbers\": [\n      \"string\",\n      \"string\"\n    ],\n    \"emails\": [\n      \"string\",\n      \"string\"\n    ],\n    \"matched\": [\n      \"string\",\n      \"string\"\n    ],\n    \"data\": [\n      {\n        \"_id\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": null,\n        \"phone_number\": \"+13125550142\",\n        \"email\": \"string\",\n        \"record_id\": null,\n        \"method\": \"string\",\n        \"reason\": \"api\",\n        \"self_added\": true,\n        \"block_inbound\": true,\n        \"created_at\": 8995,\n        \"created_by\": \"string\",\n        \"updated_at\": 6644,\n        \"updated_by\": \"string\"\n      },\n      {\n        \"_id\": \"string\",\n        \"team_id\": \"string\",\n        \"brand_id\": \"string\",\n        \"phone_number\": \"+13125550142\",\n        \"email\": \"string\",\n        \"record_id\": null,\n        \"method\": \"string\",\n        \"reason\": \"api\",\n        \"self_added\": true,\n        \"block_inbound\": true,\n        \"created_at\": 142,\n        \"created_by\": null,\n        \"updated_at\": 4929,\n        \"updated_by\": null\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"9f20b676-144e-defe-3fa4-5c2e397399a5\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Not on the do-not-contact list.","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Check as this brand. Entries for that brand and entries that apply to every brand both count.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Remove an email from the do-not-contact list","request":{"name":"Remove an email from the do-not-contact list","description":{"content":"Removes the entry and clears the do-not-contact flag on contacts with that\nemail, and returns the entry that was removed. Returns 400 if the recipient\nunsubscribed themselves. An email that isn't listed still returns 200, with\n`deleted_at` and `deleted_by` set to `null`.\n","type":"text/plain"},"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"type":"any","value":"jordan.rivera@example.com","key":"email","disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Email removed","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"phone_number\": \"+13125550187\",\n    \"email\": \"string\",\n    \"brand_id\": null,\n    \"method\": null,\n    \"reason\": null,\n    \"record_id\": null,\n    \"created_at\": 4239,\n    \"updated_at\": 3150,\n    \"deleted_at\": 5208,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"766fcc59-f47e-320b-8341-a64832b0a747\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["dnc","public","dnc","email",":email"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Brand of the entry to remove. Without it, the newest matching entry is removed.","type":"text/plain"},"key":"brand_id","value":"string"}],"variable":[{"disabled":false,"description":{"content":"(Required) The email address. Matching ignores case.","type":"text/plain"},"type":"any","value":"jordan.rivera@example.com","key":"email"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Media","description":"Upload and manage audio files for voicemail and calls.","item":[{"name":"List media files","request":{"name":"List media files","description":{"content":"Lists playable, non-deleted media files, newest first. Page with `skip` and\n`limit` until `skip` reaches `total`.\n","type":"text/plain"},"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Paginated media files","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"medias\": [\n      {\n        \"media_id\": \"26f1446b-728d-35a3-a04a-ead7b0220f89\",\n        \"team_id\": \"string\",\n        \"name\": \"string\",\n        \"created_at\": 1843,\n        \"requested_at\": 3373,\n        \"approved_at\": 65,\n        \"api_allowed\": false\n      },\n      {\n        \"media_id\": \"f513a2f7-145d-1ca2-2088-f8f296f8b499\",\n        \"team_id\": \"string\",\n        \"name\": \"string\",\n        \"created_at\": 3333,\n        \"requested_at\": 4509,\n        \"approved_at\": 9739,\n        \"api_allowed\": false\n      }\n    ],\n    \"total\": 1877\n  },\n  \"meta\": {\n    \"request_id\": \"d15c743e-24e3-f143-ac89-408b3904447e\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add a media file","request":{"name":"Add a media file","description":{"content":"Two ways to add audio, both JSON:\n\n- **From a URL.** Send `url`. We fetch the file and the entry is playable when\n  this returns (`media_exists: true`).\n- **Signed upload.** Send `signed_upload: true`. The response carries\n  `upload.mp3` and `upload.wav`, each a signed `url` and the `content_type` to\n  send with it. `PUT` the file bytes to one of them with that `Content-Type`,\n  then call `POST /media/public/media/{media_id}/complete`. Until then the entry\n  has `media_exists: false` and is hidden from the list.\n\nSpeech to text and voice cloning detect whether a `media_id` was uploaded as\nMP3 or WAV, so you do not need to pass `ext` when you use it there.\n","type":"text/plain"},"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"url\": \"https://example.com/\",\n  \"ext\": \"string\",\n  \"signed_upload\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Media created","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"url\": \"https://example.com/\",\n  \"ext\": \"string\",\n  \"signed_upload\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"media_id\": \"f033d3f2-f013-221d-e440-f2fc3cb88349\",\n    \"name\": null,\n    \"type\": null,\n    \"media_exists\": true,\n    \"approved_at\": 2830,\n    \"api_allowed\": false,\n    \"signed_upload\": false,\n    \"upload\": {\n      \"mp3\": {\n        \"url\": \"https://example.com/\",\n        \"content_type\": \"audio/mpeg\"\n      },\n      \"wav\": {\n        \"url\": \"https://example.com/\",\n        \"content_type\": \"audio/mpeg\"\n      }\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"0623d7a8-ca81-2b02-9e5c-e8d57c86f354\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"url\": \"https://example.com/\",\n  \"ext\": \"string\",\n  \"signed_upload\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"url\": \"https://example.com/\",\n  \"ext\": \"string\",\n  \"signed_upload\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"url\": \"https://example.com/\",\n  \"ext\": \"string\",\n  \"signed_upload\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a media file","request":{"name":"Get a media file","description":{"content":"Returns the entry, including one whose audio hasn't arrived yet\n(`media_exists: false`). A deleted entry returns `404`.\n","type":"text/plain"},"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"media_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Media details","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"media_id\": \"7dbc9db1-7454-91a6-a762-ecbca45421dd\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"type\": \"string\",\n    \"media_exists\": true,\n    \"src_url\": null,\n    \"requested_at\": 9537,\n    \"approved_at\": 6234,\n    \"created_at\": 1601,\n    \"created_by\": \"string\",\n    \"modified_at\": 6054,\n    \"modified_by\": \"string\",\n    \"deleted_at\": null,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"cdb5607b-33e8-4cb8-50b9-78b42d16674c\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a media file","request":{"name":"Update a media file","description":{"content":"Sets `name` and `type`. Returns the fields written, not the full entry. An\nunknown or deleted `media_id` returns `404`.\n","type":"text/plain"},"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"media_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Fields written","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"media_id\": \"b18c99f0-5793-7787-b250-e7eefc5c60e4\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"type\": \"string\",\n    \"modified_at\": 1216,\n    \"modified_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"1f674ee0-4921-238e-e2b3-174742c9ea9b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a media file","request":{"name":"Delete a media file","description":{"content":"Soft delete: sets `deleted_at` and hides the entry. An unknown or already\ndeleted `media_id` returns `404`.\n","type":"text/plain"},"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"media_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Media deleted","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"deleted\": true\n  },\n  \"meta\": {\n    \"request_id\": \"f8d132e7-d4d5-18ce-d651-9843fe5dd05b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media",":media_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Complete a signed upload","request":{"name":"Complete a signed upload","description":{"content":"Call after the `PUT` to a signed upload URL succeeds. Marks the entry playable\n(`media_exists: true`). Returns `400` when no file was uploaded yet.\n","type":"text/plain"},"url":{"path":["media","public","media",":media_id","complete"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Upload completed","originalRequest":{"url":{"path":["media","public","media",":media_id","complete"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"media_id\": \"5ddb02bc-4959-2c4b-a99e-c2c6d4433054\",\n    \"media_exists\": true,\n    \"approved_at\": 7433,\n    \"api_allowed\": true\n  },\n  \"meta\": {\n    \"request_id\": \"76f46bda-9fe4-bdb5-4058-6100b9b752ec\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["media","public","media",":media_id","complete"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media",":media_id","complete"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["media","public","media",":media_id","complete"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media",":media_id","complete"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get new signed upload URLs","request":{"name":"Get new signed upload URLs","description":{"content":"Returns new signed upload URLs for an existing entry, for example when the ones\nfrom `POST /media/public/media` have expired.\n","type":"text/plain"},"url":{"path":["media","public","media",":media_id","policy"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Signed upload URLs","originalRequest":{"url":{"path":["media","public","media",":media_id","policy"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"mp3\": {\n      \"url\": \"https://example.com/\",\n      \"content_type\": \"audio/mpeg\"\n    },\n    \"wav\": {\n      \"url\": \"https://example.com/\",\n      \"content_type\": \"audio/mpeg\"\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"64c8118e-4b78-1e15-0bc2-6d0bf8578d80\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["media","public","media",":media_id","policy"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["media","public","media",":media_id","policy"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["media","public","media",":media_id","policy"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"media_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Templates","description":"Read message templates and merge them with contact data.","item":[{"name":"List templates","request":{"name":"List templates","description":{"content":"Lists non-deleted templates, newest first. Without `limit` every matching\ntemplate is returned. Page with `skip` and `limit` until `skip` reaches\n`totalItems`.\n","type":"text/plain"},"url":{"path":["template","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most templates to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only templates of this type. (This can only be one of email,sms,script,chat,macro,rcs)","type":"text/plain"},"key":"type","value":"chat"},{"disabled":false,"description":{"content":"Only templates with this status. Older email, macro and script templates have no status and match only when this is omitted. (This can only be one of draft,active)","type":"text/plain"},"key":"status","value":"active"},{"disabled":false,"description":{"content":"Case-insensitive match against the name and body.","type":"text/plain"},"key":"search","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Paginated templates","originalRequest":{"url":{"path":["template","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most templates to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only templates of this type. (This can only be one of email,sms,script,chat,macro,rcs)","type":"text/plain"},"key":"type","value":"chat"},{"disabled":false,"description":{"content":"Only templates with this status. Older email, macro and script templates have no status and match only when this is omitted. (This can only be one of draft,active)","type":"text/plain"},"key":"status","value":"active"},{"disabled":false,"description":{"content":"Case-insensitive match against the name and body.","type":"text/plain"},"key":"search","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"templates\": [\n      {\n        \"_id\": \"string\",\n        \"template_id\": \"876515e9-0b41-4e88-b55d-dbf54943f525\",\n        \"team_id\": \"string\",\n        \"user_id\": \"string\",\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"type\": \"sms\",\n        \"status\": \"string\",\n        \"subject\": \"string\",\n        \"html_text\": \"string\",\n        \"text\": \"string\",\n        \"preview\": \"string\",\n        \"channels\": [\n          \"string\",\n          \"string\"\n        ],\n        \"available_for\": null,\n        \"user_group_id\": null,\n        \"target_user_id\": \"string\",\n        \"template_group_id\": null,\n        \"related_template_ids\": null,\n        \"rcs_type\": \"string\",\n        \"rcs_content\": null,\n        \"rcs_layout_id\": null,\n        \"fallback_sms_text\": \"string\",\n        \"default_send_type\": \"transactional\",\n        \"approval\": null,\n        \"created_at\": 1417,\n        \"created_by\": \"string\",\n        \"updated_at\": 3084,\n        \"updated_by\": \"string\",\n        \"deleted_at\": 4359,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"_id\": \"string\",\n        \"template_id\": \"65f7f4c9-1797-b07f-67ab-f39445cefd5e\",\n        \"team_id\": \"string\",\n        \"user_id\": \"string\",\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"type\": \"sms\",\n        \"status\": \"string\",\n        \"subject\": \"string\",\n        \"html_text\": \"string\",\n        \"text\": \"string\",\n        \"preview\": \"string\",\n        \"channels\": [\n          \"string\",\n          \"string\"\n        ],\n        \"available_for\": null,\n        \"user_group_id\": null,\n        \"target_user_id\": \"string\",\n        \"template_group_id\": \"string\",\n        \"related_template_ids\": null,\n        \"rcs_type\": null,\n        \"rcs_content\": {},\n        \"rcs_layout_id\": \"string\",\n        \"fallback_sms_text\": null,\n        \"default_send_type\": \"transactional\",\n        \"approval\": {},\n        \"created_at\": 8185,\n        \"created_by\": \"string\",\n        \"updated_at\": 816,\n        \"updated_by\": \"string\",\n        \"deleted_at\": null,\n        \"deleted_by\": null\n      }\n    ],\n    \"totalItems\": 8497\n  },\n  \"meta\": {\n    \"request_id\": \"4b5eb5ef-c1af-8707-8406-7d35b41a4492\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["template","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most templates to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only templates of this type. (This can only be one of email,sms,script,chat,macro,rcs)","type":"text/plain"},"key":"type","value":"chat"},{"disabled":false,"description":{"content":"Only templates with this status. Older email, macro and script templates have no status and match only when this is omitted. (This can only be one of draft,active)","type":"text/plain"},"key":"status","value":"active"},{"disabled":false,"description":{"content":"Case-insensitive match against the name and body.","type":"text/plain"},"key":"search","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["template","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most templates to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only templates of this type. (This can only be one of email,sms,script,chat,macro,rcs)","type":"text/plain"},"key":"type","value":"chat"},{"disabled":false,"description":{"content":"Only templates with this status. Older email, macro and script templates have no status and match only when this is omitted. (This can only be one of draft,active)","type":"text/plain"},"key":"status","value":"active"},{"disabled":false,"description":{"content":"Case-insensitive match against the name and body.","type":"text/plain"},"key":"search","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a template","request":{"name":"Get a template","description":{"content":"An unknown or deleted `template_id` returns `404`.\n","type":"text/plain"},"url":{"path":["template","public","templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"template_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Template details","originalRequest":{"url":{"path":["template","public","templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"template_id\": \"8b711925-cd88-eb7b-3af4-34fc7890b1ca\",\n    \"team_id\": \"string\",\n    \"user_id\": \"string\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"type\": \"script\",\n    \"status\": null,\n    \"subject\": \"string\",\n    \"html_text\": \"string\",\n    \"text\": \"string\",\n    \"preview\": \"string\",\n    \"channels\": [\n      \"string\",\n      \"string\"\n    ],\n    \"available_for\": \"string\",\n    \"user_group_id\": \"string\",\n    \"target_user_id\": null,\n    \"template_group_id\": null,\n    \"related_template_ids\": null,\n    \"rcs_type\": \"string\",\n    \"rcs_content\": {},\n    \"rcs_layout_id\": null,\n    \"fallback_sms_text\": null,\n    \"default_send_type\": null,\n    \"approval\": {},\n    \"created_at\": 9148,\n    \"created_by\": \"string\",\n    \"updated_at\": 6790,\n    \"updated_by\": \"string\",\n    \"deleted_at\": 7009,\n    \"deleted_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"3a8c9189-b8d1-a152-13ac-95d79d7dd6aa\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["template","public","templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["template","public","templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["template","public","templates",":template_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Merge a template","request":{"name":"Merge a template","description":{"content":"Fills the template's merge fields from a contact and a user. Returns `404` when\nthe template, contact or user is not found.\n","type":"text/plain"},"url":{"path":["template","public","templates",":template_id","merge"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"template_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"merged_contact_id\": \"string\",\n  \"merged_user_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Merged template content","originalRequest":{"url":{"path":["template","public","templates",":template_id","merge"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"merged_contact_id\": \"string\",\n  \"merged_user_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"html_text\": \"string\",\n    \"subject\": \"string\",\n    \"rcs_type\": null,\n    \"rcs_content\": {},\n    \"fallback_sms_text\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"2f986ee0-bf11-2540-b003-9297caaa69a7\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["template","public","templates",":template_id","merge"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"merged_contact_id\": \"string\",\n  \"merged_user_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["template","public","templates",":template_id","merge"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"merged_contact_id\": \"string\",\n  \"merged_user_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["template","public","templates",":template_id","merge"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"merged_contact_id\": \"string\",\n  \"merged_user_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["template","public","templates",":template_id","merge"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"template_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"merged_contact_id\": \"string\",\n  \"merged_user_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Documents","description":"Upload and manage documents.","item":[{"name":"List documents","request":{"name":"List documents","description":{"content":"Lists non-deleted documents. Without `limit` every matching document is\nreturned. This route has no offset parameter.\n","type":"text/plain"},"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most documents to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Only documents attached to this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Send any value to add `total_documents` to the response.","type":"text/plain"},"key":"get_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Documents","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most documents to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Only documents attached to this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Send any value to add `total_documents` to the response.","type":"text/plain"},"key":"get_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"documents\": [\n      {\n        \"_id\": \"string\",\n        \"document_id\": \"26e60bd9-34f8-0f69-3cfc-618711779b7f\",\n        \"team_id\": \"string\",\n        \"document_type\": \"string\",\n        \"parent\": null,\n        \"filename\": \"string\",\n        \"ext\": \"string\",\n        \"content_type\": \"string\",\n        \"file_size\": 9024,\n        \"meta\": null,\n        \"owner_id\": \"string\",\n        \"state_id\": null,\n        \"state_history\": null,\n        \"visibility\": null,\n        \"hidden\": true,\n        \"read_at\": 2298,\n        \"read_by\": null,\n        \"created_at\": 8148,\n        \"created_by\": null,\n        \"modified_at\": 8244,\n        \"modified_by\": \"string\",\n        \"updated_at\": 8064,\n        \"updated_by\": \"string\",\n        \"deleted_at\": null,\n        \"deleted_by\": \"string\"\n      },\n      {\n        \"_id\": \"string\",\n        \"document_id\": \"992b9318-4b1a-c34f-51ef-4f946d5e6f10\",\n        \"team_id\": \"string\",\n        \"document_type\": \"string\",\n        \"parent\": null,\n        \"filename\": \"string\",\n        \"ext\": null,\n        \"content_type\": \"string\",\n        \"file_size\": 6613,\n        \"meta\": null,\n        \"owner_id\": \"string\",\n        \"state_id\": null,\n        \"state_history\": null,\n        \"visibility\": null,\n        \"hidden\": false,\n        \"read_at\": 2607,\n        \"read_by\": null,\n        \"created_at\": 2532,\n        \"created_by\": null,\n        \"modified_at\": 7376,\n        \"modified_by\": null,\n        \"updated_at\": 4987,\n        \"updated_by\": \"string\",\n        \"deleted_at\": null,\n        \"deleted_by\": \"string\"\n      }\n    ],\n    \"total_documents\": 9914\n  },\n  \"meta\": {\n    \"request_id\": \"5195cdc8-3155-c431-4843-ed1ef4500bbc\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most documents to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Only documents attached to this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Send any value to add `total_documents` to the response.","type":"text/plain"},"key":"get_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most documents to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Only documents attached to this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Send any value to add `total_documents` to the response.","type":"text/plain"},"key":"get_total","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Upload a document","request":{"name":"Upload a document","description":{"content":"Creates the document and returns a signed upload URL. `PUT` the file bytes to\n`policy.url` with `Content-Type: application/octet-stream`. The URL is valid for\ntwo days.\n","type":"text/plain"},"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"content_type\": \"string\",\n  \"file_size\": 833,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Document created","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"content_type\": \"string\",\n  \"file_size\": 833,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"document_id\": \"bd2b8fde-dba3-8e3a-3794-87a9d98c1c92\",\n    \"policy\": {\n      \"url\": \"https://example.com/\"\n    },\n    \"uploaded\": false\n  },\n  \"meta\": {\n    \"request_id\": \"d8b20b79-4087-51e2-21a0-0973ae2c847f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"content_type\": \"string\",\n  \"file_size\": 833,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"content_type\": \"string\",\n  \"file_size\": 833,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","documents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"content_type\": \"string\",\n  \"file_size\": 833,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a document from a URL","request":{"name":"Create a document from a URL","description":{"content":"Fetches `source_url` and stores the file before responding (`uploaded: true`).\n","type":"text/plain"},"url":{"path":["document","public","documents","from-url"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"source_url\": \"https://example.com/\",\n  \"content_type\": \"string\",\n  \"file_size\": 7320,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Document created from URL","originalRequest":{"url":{"path":["document","public","documents","from-url"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"source_url\": \"https://example.com/\",\n  \"content_type\": \"string\",\n  \"file_size\": 7320,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"document_id\": \"bd2b8fde-dba3-8e3a-3794-87a9d98c1c92\",\n    \"policy\": {\n      \"url\": \"https://example.com/\"\n    },\n    \"uploaded\": false\n  },\n  \"meta\": {\n    \"request_id\": \"d8b20b79-4087-51e2-21a0-0973ae2c847f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","documents","from-url"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"source_url\": \"https://example.com/\",\n  \"content_type\": \"string\",\n  \"file_size\": 7320,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","documents","from-url"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"source_url\": \"https://example.com/\",\n  \"content_type\": \"string\",\n  \"file_size\": 7320,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","documents","from-url"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"document_type\": \"string\",\n  \"filename\": \"string\",\n  \"source_url\": \"https://example.com/\",\n  \"content_type\": \"string\",\n  \"file_size\": 7320,\n  \"contact_id\": \"string\",\n  \"parent\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a document","request":{"name":"Get a document","description":{"content":"Returns the details of one document, such as its filename, type, size and content\ntype. To download the file itself, use Get a document download URL.\n","type":"text/plain"},"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Document details","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"document_id\": \"d4332280-b56e-67bc-9544-0dd2bef6ae1f\",\n    \"team_id\": \"string\",\n    \"document_type\": \"string\",\n    \"parent\": \"string\",\n    \"filename\": \"string\",\n    \"ext\": null,\n    \"content_type\": \"string\",\n    \"file_size\": 6236,\n    \"meta\": null,\n    \"owner_id\": \"string\",\n    \"state_id\": \"string\",\n    \"state_history\": null,\n    \"visibility\": null,\n    \"hidden\": false,\n    \"read_at\": 9968,\n    \"read_by\": null,\n    \"created_at\": 3200,\n    \"created_by\": null,\n    \"modified_at\": 3812,\n    \"modified_by\": null,\n    \"updated_at\": 227,\n    \"updated_by\": \"string\",\n    \"deleted_at\": null,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"964c3592-d682-79d1-aabe-df3daed53cb6\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a document","request":{"name":"Delete a document","description":{"content":"Soft delete. Returns the document with `deleted_at` set. An unknown or\nalready deleted `id` returns `404`.\n","type":"text/plain"},"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Deleted document","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"document_id\": \"d4332280-b56e-67bc-9544-0dd2bef6ae1f\",\n    \"team_id\": \"string\",\n    \"document_type\": \"string\",\n    \"parent\": \"string\",\n    \"filename\": \"string\",\n    \"ext\": null,\n    \"content_type\": \"string\",\n    \"file_size\": 6236,\n    \"meta\": null,\n    \"owner_id\": \"string\",\n    \"state_id\": \"string\",\n    \"state_history\": null,\n    \"visibility\": null,\n    \"hidden\": false,\n    \"read_at\": 9968,\n    \"read_by\": null,\n    \"created_at\": 3200,\n    \"created_by\": null,\n    \"modified_at\": 3812,\n    \"modified_by\": null,\n    \"updated_at\": 227,\n    \"updated_by\": \"string\",\n    \"deleted_at\": null,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"964c3592-d682-79d1-aabe-df3daed53cb6\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","documents",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a document download URL","request":{"name":"Get a document download URL","description":{"content":"Returns a signed URL for downloading one document. The URL is time-limited, so\nrequest a new one when you need the file again instead of storing it.\n","type":"text/plain"},"url":{"path":["document","public","documents",":id","url"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Signed download URL","originalRequest":{"url":{"path":["document","public","documents",":id","url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"url\": \"https://example.com/\"\n  },\n  \"meta\": {\n    \"request_id\": \"93d51d44-ce61-3efa-3f05-eeaa30d7928f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","documents",":id","url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","documents",":id","url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","documents",":id","url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Phone numbers","description":"Rent and read phone numbers, and manage the phone lines that decide how calls and texts to them are handled.","item":[{"name":"List phone numbers","request":{"name":"List phone numbers","description":{"content":"Returns every number on the account in one response, with the account's number\nlimits. Released numbers, dial-in numbers and 911 callback numbers are left out.\nThis route isn't paged.\n","type":"text/plain"},"url":{"path":["phone","public","numbers"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Every number on the account in one response, with the account's number limits.","originalRequest":{"url":{"path":["phone","public","numbers"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"limits\": {\n      \"used\": 2050,\n      \"sms_enabled\": 5283,\n      \"team_limit\": \"string\"\n    },\n    \"numbers\": [\n      {\n        \"phone_number\": \"+13125550142\",\n        \"team_id\": \"string\",\n        \"name\": \"string\",\n        \"status\": \"ready\",\n        \"voice_ivr_id\": null,\n        \"brand_id\": \"string\",\n        \"campaign_id\": \"string\",\n        \"pool_id\": \"string\",\n        \"dial_in\": true,\n        \"voice_enabled\": true,\n        \"sms_enabled\": true,\n        \"rcs_enabled\": false,\n        \"fax\": true,\n        \"is_byoc\": false,\n        \"features\": \"\",\n        \"dni\": {},\n        \"country_iso\": \"US\",\n        \"area_code\": \"312\",\n        \"state_iso\": \"string\",\n        \"city\": \"string\",\n        \"geo\": [\n          5451.581934466958,\n          2566.3793412968516\n        ],\n        \"tz_offset\": 2145.540378987789,\n        \"tz_offset_dst\": 1700.3953736275434,\n        \"healthy\": true,\n        \"health_scores\": {},\n        \"health_check_at\": 1001,\n        \"complaint_at\": 8232,\n        \"fcc_complaint_count\": 1290,\n        \"tcr_campaign_id\": \"string\",\n        \"tcr_status\": \"string\",\n        \"e911_location_id\": null,\n        \"e911_status\": null,\n        \"last_used_at\": 9866,\n        \"total_voice\": 5154,\n        \"total_sms\": 6952,\n        \"pending_purchase_at\": 5248,\n        \"created_at\": 1006,\n        \"created_by\": \"string\"\n      },\n      {\n        \"phone_number\": \"+13125550142\",\n        \"team_id\": \"string\",\n        \"name\": \"string\",\n        \"status\": \"ready\",\n        \"voice_ivr_id\": \"string\",\n        \"brand_id\": \"string\",\n        \"campaign_id\": null,\n        \"pool_id\": null,\n        \"dial_in\": false,\n        \"voice_enabled\": true,\n        \"sms_enabled\": true,\n        \"rcs_enabled\": true,\n        \"fax\": false,\n        \"is_byoc\": false,\n        \"features\": \"\",\n        \"dni\": {},\n        \"country_iso\": \"US\",\n        \"area_code\": \"312\",\n        \"state_iso\": \"string\",\n        \"city\": null,\n        \"geo\": [\n          5149.2507150396705,\n          8103.831892367452\n        ],\n        \"tz_offset\": 1823.35932739079,\n        \"tz_offset_dst\": 1697.5985211320221,\n        \"healthy\": true,\n        \"health_scores\": null,\n        \"health_check_at\": 3511,\n        \"complaint_at\": 1475,\n        \"fcc_complaint_count\": 5076,\n        \"tcr_campaign_id\": null,\n        \"tcr_status\": \"string\",\n        \"e911_location_id\": \"string\",\n        \"e911_status\": \"string\",\n        \"last_used_at\": 7893,\n        \"total_voice\": 9419,\n        \"total_sms\": 5397,\n        \"pending_purchase_at\": 5249,\n        \"created_at\": 1919,\n        \"created_by\": null\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"70566bb0-b938-70f9-b256-4e8d989063b4\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","numbers"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","numbers"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Rent phone numbers","request":{"name":"Rent phone numbers","description":{"content":"Rents the numbers in `numbers`. Accounts on Building Blocks rent from their own connected carrier (BYOC): connect a carrier first, or the call fails with `403`. A connected carrier with no default number pool fails with `400`. Other accounts can rent here only during their trial period; afterwards the call fails with `400` and code `use_cart_instead`. Going over the account's number limit fails with `403`.\n","type":"text/plain"},"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Rented numbers","originalRequest":{"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"numbers\": [\n      \"+13125550142\",\n      \"+13125550142\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"9263757c-314a-317f-a8a1-4012287e9741\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","numbers","rent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"numbers\": [\n    \"+13125550120\"\n  ],\n  \"voice_ivr_id\": \"string\",\n  \"provider\": \"string\",\n  \"services\": \"voice,sms\",\n  \"pool_id\": \"ff55f3aa-66aa-5378-529f-7dec1d03eb84\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a phone number","request":{"name":"Get a phone number","description":{"content":"Accepts the number with or without the leading `+`. Returns 404 for a number not on the account.","type":"text/plain"},"url":{"path":["phone","public","numbers",":number"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"number","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Phone number details","originalRequest":{"url":{"path":["phone","public","numbers",":number"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"number"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"phone_number\": \"+13125550142\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"status\": \"ready\",\n    \"voice_ivr_id\": \"string\",\n    \"brand_id\": \"string\",\n    \"campaign_id\": null,\n    \"pool_id\": \"string\",\n    \"dial_in\": false,\n    \"voice_enabled\": false,\n    \"sms_enabled\": false,\n    \"rcs_enabled\": true,\n    \"fax\": false,\n    \"is_byoc\": false,\n    \"features\": \"\",\n    \"dni\": {},\n    \"country_iso\": \"US\",\n    \"area_code\": \"312\",\n    \"state_iso\": \"string\",\n    \"city\": null,\n    \"geo\": [\n      8288.941027130932,\n      3876.415751874447\n    ],\n    \"tz_offset\": 4819.724957924336,\n    \"tz_offset_dst\": 2097.827410325408,\n    \"healthy\": true,\n    \"health_scores\": null,\n    \"health_check_at\": 1808,\n    \"complaint_at\": null,\n    \"fcc_complaint_count\": 6510,\n    \"tcr_campaign_id\": null,\n    \"tcr_status\": \"string\",\n    \"e911_location_id\": \"string\",\n    \"e911_status\": \"string\",\n    \"last_used_at\": 715,\n    \"total_voice\": 9814,\n    \"total_sms\": 6852,\n    \"pending_purchase_at\": 6315,\n    \"created_at\": 7283,\n    \"created_by\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"58407aa7-daab-8d2e-1ba3-86a2292a73f1\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","numbers",":number"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"number"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","numbers",":number"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"number"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","numbers",":number"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"number"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List phone lines","request":{"name":"List phone lines","description":{"content":"Phone lines group your numbers and decide how calls and texts to them are\nhandled. Use `ivr_id` as `phone_line_id` on sends and campaigns. Pass\n`statistics=true` to get `sms_enabled_count` and `rcs_enabled_count`, which tell\nyou which lines can text.\n","type":"text/plain"},"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"statistics","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Phone lines","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"statistics","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"ivr_id\": \"3a3340dc-8483-c111-efbc-e3534120b08f\",\n      \"team_id\": \"2c03cd4c-8338-f85a-cda7-e446422d8e8b\",\n      \"name\": \"string\",\n      \"type\": \"string\",\n      \"default\": false,\n      \"availability\": {\n        \"tz\": \"America/Denver\",\n        \"days\": [\n          {\n            \"open\": true,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": true,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": true,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          }\n        ]\n      },\n      \"rules\": [\n        {\n          \"start_rule\": true,\n          \"end_rule\": true,\n          \"user_input\": \"string\",\n          \"action\": \"Forward To\",\n          \"action_data\": {\n            \"agent_id\": \"d21f82fc-1ce0-1b34-473b-afa44a8db630\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        },\n        {\n          \"start_rule\": true,\n          \"end_rule\": true,\n          \"user_input\": \"string\",\n          \"action\": \"Sub-IVR\",\n          \"action_data\": {\n            \"agent_id\": \"e52a0403-2c2a-3e59-0d5f-28e33440ffbf\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        }\n      ],\n      \"after_hour_rules\": [\n        {\n          \"start_rule\": false,\n          \"end_rule\": true,\n          \"user_input\": \"string\",\n          \"action\": \"Sub-IVR\",\n          \"action_data\": {\n            \"agent_id\": \"1e9d6f17-f464-b9a3-edcb-2b73faedf044\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        },\n        {\n          \"start_rule\": true,\n          \"end_rule\": false,\n          \"user_input\": \"string\",\n          \"action\": \"Forward To\",\n          \"action_data\": {\n            \"agent_id\": \"b706056a-a095-f78a-db72-c29f8e911a13\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        }\n      ],\n      \"campaign_id\": null,\n      \"rcs_enabled\": false,\n      \"sms_enabled_count\": 5436,\n      \"rcs_enabled_count\": 2627\n    },\n    {\n      \"ivr_id\": \"e07644a1-0ebf-bdac-535c-b48a087b9567\",\n      \"team_id\": \"9784a5a4-b07d-fca3-6af3-7afb7e6cbfb7\",\n      \"name\": \"string\",\n      \"type\": \"string\",\n      \"default\": true,\n      \"availability\": {\n        \"tz\": \"America/Denver\",\n        \"days\": [\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": true,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": true,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": true,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          },\n          {\n            \"open\": false,\n            \"start\": \"9.0\",\n            \"end\": \"17.0\"\n          }\n        ]\n      },\n      \"rules\": [\n        {\n          \"start_rule\": false,\n          \"end_rule\": true,\n          \"user_input\": \"string\",\n          \"action\": \"AI Agent\",\n          \"action_data\": {\n            \"agent_id\": \"eccdf85f-8ea3-29bf-4526-299439dad336\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        },\n        {\n          \"start_rule\": false,\n          \"end_rule\": true,\n          \"user_input\": \"string\",\n          \"action\": \"Say\",\n          \"action_data\": {\n            \"agent_id\": \"7bcc223b-d4a7-c90c-c2c2-4f1b21880bfe\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        }\n      ],\n      \"after_hour_rules\": [\n        {\n          \"start_rule\": true,\n          \"end_rule\": false,\n          \"user_input\": \"string\",\n          \"action\": \"AI Agent\",\n          \"action_data\": {\n            \"agent_id\": \"49b5b483-fdf2-219d-f7a6-c00b14e6c365\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        },\n        {\n          \"start_rule\": true,\n          \"end_rule\": false,\n          \"user_input\": \"string\",\n          \"action\": \"Voicemail\",\n          \"action_data\": {\n            \"agent_id\": \"2353c90e-0301-0471-cbfd-c6c328aa04a9\",\n            \"say\": \"string\",\n            \"route_to\": \"+13125550118\"\n          }\n        }\n      ],\n      \"campaign_id\": null,\n      \"rcs_enabled\": true,\n      \"sms_enabled_count\": 2080,\n      \"rcs_enabled_count\": 4519\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"80bb0539-9af4-d3d2-cec5-feec4c425ece\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"statistics","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"type","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"statistics","value":"true"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a phone line","request":{"name":"Create a phone line","description":{"content":"Creates a phone line on your account. Send a `name` and a `type`, and optionally\ncall-handling `rules`, `availability`, SMS settings, and the registered texting\n`campaign_id` the line sends under. The response is the new line. Its `ivr_id` is the\n`phone_line_id` used elsewhere.\n","type":"text/plain"},"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"rules\": [\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"23eeddfa-30e9-5483-d642-3e87982daebb\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Trigger Automation\",\n      \"action_data\": {\n        \"agent_id\": \"471bfca6-ac5e-99b4-dbdd-a2e7d30b2827\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"d970a979-0968-dcc4-bce0-0f1833fcd24f\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": false,\n      \"user_input\": \"string\",\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"agent_id\": \"63805167-0182-70ad-9bb5-e5dce69fb2e4\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"default\": false,\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"campaign_id\": \"string\",\n  \"brand_id\": \"f91dc9e3-760e-e424-8745-cd81f95a4dad\",\n  \"rcs_enabled\": true,\n  \"rcs_sender_name\": \"string\",\n  \"fax\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Created phone line","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"rules\": [\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"23eeddfa-30e9-5483-d642-3e87982daebb\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Trigger Automation\",\n      \"action_data\": {\n        \"agent_id\": \"471bfca6-ac5e-99b4-dbdd-a2e7d30b2827\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"d970a979-0968-dcc4-bce0-0f1833fcd24f\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": false,\n      \"user_input\": \"string\",\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"agent_id\": \"63805167-0182-70ad-9bb5-e5dce69fb2e4\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"default\": false,\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"campaign_id\": \"string\",\n  \"brand_id\": \"f91dc9e3-760e-e424-8745-cd81f95a4dad\",\n  \"rcs_enabled\": true,\n  \"rcs_sender_name\": \"string\",\n  \"fax\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"ivr_id\": \"ea7b17ca-e3cd-1c8a-01fc-fae3782824d4\",\n    \"team_id\": \"54ff43ac-d034-5c68-42ed-6610574927e7\",\n    \"name\": \"string\",\n    \"type\": \"string\",\n    \"default\": true,\n    \"availability\": {\n      \"tz\": \"America/Denver\",\n      \"days\": [\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        }\n      ]\n    },\n    \"rules\": [\n      {\n        \"start_rule\": true,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Sub-IVR\",\n        \"action_data\": {\n          \"agent_id\": \"18c44c65-3738-a1ed-40ba-7b20600817e0\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      },\n      {\n        \"start_rule\": false,\n        \"end_rule\": false,\n        \"user_input\": \"string\",\n        \"action\": \"Say\",\n        \"action_data\": {\n          \"agent_id\": \"6e2b9295-3cba-dedc-5450-0042876b7911\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      }\n    ],\n    \"after_hour_rules\": [\n      {\n        \"start_rule\": false,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Forward + Voicemail\",\n        \"action_data\": {\n          \"agent_id\": \"c69db74f-2781-1ffa-69c3-f730d0260eb4\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      },\n      {\n        \"start_rule\": true,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Hang-up\",\n        \"action_data\": {\n          \"agent_id\": \"c4d963ea-fefe-56b5-c680-fbab0651c508\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      }\n    ],\n    \"campaign_id\": null,\n    \"rcs_enabled\": false,\n    \"sms_enabled_count\": 2858,\n    \"rcs_enabled_count\": 4631\n  },\n  \"meta\": {\n    \"request_id\": \"d62e36ac-1e41-494e-f14e-6b0ab2f082e9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"rules\": [\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"23eeddfa-30e9-5483-d642-3e87982daebb\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Trigger Automation\",\n      \"action_data\": {\n        \"agent_id\": \"471bfca6-ac5e-99b4-dbdd-a2e7d30b2827\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"d970a979-0968-dcc4-bce0-0f1833fcd24f\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": false,\n      \"user_input\": \"string\",\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"agent_id\": \"63805167-0182-70ad-9bb5-e5dce69fb2e4\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"default\": false,\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"campaign_id\": \"string\",\n  \"brand_id\": \"f91dc9e3-760e-e424-8745-cd81f95a4dad\",\n  \"rcs_enabled\": true,\n  \"rcs_sender_name\": \"string\",\n  \"fax\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"rules\": [\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"23eeddfa-30e9-5483-d642-3e87982daebb\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Trigger Automation\",\n      \"action_data\": {\n        \"agent_id\": \"471bfca6-ac5e-99b4-dbdd-a2e7d30b2827\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"d970a979-0968-dcc4-bce0-0f1833fcd24f\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": false,\n      \"user_input\": \"string\",\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"agent_id\": \"63805167-0182-70ad-9bb5-e5dce69fb2e4\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"default\": false,\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"campaign_id\": \"string\",\n  \"brand_id\": \"f91dc9e3-760e-e424-8745-cd81f95a4dad\",\n  \"rcs_enabled\": true,\n  \"rcs_sender_name\": \"string\",\n  \"fax\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","lines"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"type\": \"string\",\n  \"rules\": [\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"23eeddfa-30e9-5483-d642-3e87982daebb\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Trigger Automation\",\n      \"action_data\": {\n        \"agent_id\": \"471bfca6-ac5e-99b4-dbdd-a2e7d30b2827\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": true,\n      \"user_input\": \"string\",\n      \"action\": \"Hang-up\",\n      \"action_data\": {\n        \"agent_id\": \"d970a979-0968-dcc4-bce0-0f1833fcd24f\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": false,\n      \"user_input\": \"string\",\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"agent_id\": \"63805167-0182-70ad-9bb5-e5dce69fb2e4\",\n        \"say\": \"string\",\n        \"route_to\": \"+13125550118\"\n      }\n    }\n  ],\n  \"default\": false,\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"campaign_id\": \"string\",\n  \"brand_id\": \"f91dc9e3-760e-e424-8745-cd81f95a4dad\",\n  \"rcs_enabled\": true,\n  \"rcs_sender_name\": \"string\",\n  \"fax\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a phone line","request":{"name":"Get a phone line","description":{"content":"Returns one phone line by id, with its call-handling rules, availability and SMS\nsettings. Its `ivr_id` is the `phone_line_id` used elsewhere.\n","type":"text/plain"},"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Phone line","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"ivr_id\": \"ea7b17ca-e3cd-1c8a-01fc-fae3782824d4\",\n    \"team_id\": \"54ff43ac-d034-5c68-42ed-6610574927e7\",\n    \"name\": \"string\",\n    \"type\": \"string\",\n    \"default\": true,\n    \"availability\": {\n      \"tz\": \"America/Denver\",\n      \"days\": [\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        }\n      ]\n    },\n    \"rules\": [\n      {\n        \"start_rule\": true,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Sub-IVR\",\n        \"action_data\": {\n          \"agent_id\": \"18c44c65-3738-a1ed-40ba-7b20600817e0\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      },\n      {\n        \"start_rule\": false,\n        \"end_rule\": false,\n        \"user_input\": \"string\",\n        \"action\": \"Say\",\n        \"action_data\": {\n          \"agent_id\": \"6e2b9295-3cba-dedc-5450-0042876b7911\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      }\n    ],\n    \"after_hour_rules\": [\n      {\n        \"start_rule\": false,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Forward + Voicemail\",\n        \"action_data\": {\n          \"agent_id\": \"c69db74f-2781-1ffa-69c3-f730d0260eb4\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      },\n      {\n        \"start_rule\": true,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Hang-up\",\n        \"action_data\": {\n          \"agent_id\": \"c4d963ea-fefe-56b5-c680-fbab0651c508\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      }\n    ],\n    \"campaign_id\": null,\n    \"rcs_enabled\": false,\n    \"sms_enabled_count\": 2858,\n    \"rcs_enabled_count\": 4631\n  },\n  \"meta\": {\n    \"request_id\": \"d62e36ac-1e41-494e-f14e-6b0ab2f082e9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a phone line","request":{"name":"Update a phone line","description":{"content":"Changes how the line answers (this route uses POST, not PUT). `rules` run during\nbusiness hours and `after_hour_rules` outside them, as set by `availability`.\nEach array needs one step with `start_rule: true` (the call arrives) and one\nwith `end_rule: true` (no key pressed). Send the whole array you want; it\nreplaces the existing one.\n\nTo have an AI agent answer, use the `AI Agent` action with a published agent:\n`{\"start_rule\": true, \"action\": \"AI Agent\", \"action_data\": {\"agent_id\": \"...\"}}`.\nSee [Receptionist](https://www.dropcowboy.com/developers/api/agents/ai-receptionist).\n","type":"text/plain"},"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Main line\",\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"Queue\",\n      \"action_data\": {}\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"say\": \"Please leave a message.\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"AI Agent\",\n      \"action_data\": {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {}\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Updated phone line","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Main line\",\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"Queue\",\n      \"action_data\": {}\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"say\": \"Please leave a message.\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"AI Agent\",\n      \"action_data\": {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {}\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"ivr_id\": \"ea7b17ca-e3cd-1c8a-01fc-fae3782824d4\",\n    \"team_id\": \"54ff43ac-d034-5c68-42ed-6610574927e7\",\n    \"name\": \"string\",\n    \"type\": \"string\",\n    \"default\": true,\n    \"availability\": {\n      \"tz\": \"America/Denver\",\n      \"days\": [\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": true,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        },\n        {\n          \"open\": false,\n          \"start\": \"9.0\",\n          \"end\": \"17.0\"\n        }\n      ]\n    },\n    \"rules\": [\n      {\n        \"start_rule\": true,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Sub-IVR\",\n        \"action_data\": {\n          \"agent_id\": \"18c44c65-3738-a1ed-40ba-7b20600817e0\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      },\n      {\n        \"start_rule\": false,\n        \"end_rule\": false,\n        \"user_input\": \"string\",\n        \"action\": \"Say\",\n        \"action_data\": {\n          \"agent_id\": \"6e2b9295-3cba-dedc-5450-0042876b7911\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      }\n    ],\n    \"after_hour_rules\": [\n      {\n        \"start_rule\": false,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Forward + Voicemail\",\n        \"action_data\": {\n          \"agent_id\": \"c69db74f-2781-1ffa-69c3-f730d0260eb4\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      },\n      {\n        \"start_rule\": true,\n        \"end_rule\": true,\n        \"user_input\": \"string\",\n        \"action\": \"Hang-up\",\n        \"action_data\": {\n          \"agent_id\": \"c4d963ea-fefe-56b5-c680-fbab0651c508\",\n          \"say\": \"string\",\n          \"route_to\": \"+13125550118\"\n        }\n      }\n    ],\n    \"campaign_id\": null,\n    \"rcs_enabled\": false,\n    \"sms_enabled_count\": 2858,\n    \"rcs_enabled_count\": 4631\n  },\n  \"meta\": {\n    \"request_id\": \"d62e36ac-1e41-494e-f14e-6b0ab2f082e9\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Main line\",\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"Queue\",\n      \"action_data\": {}\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"say\": \"Please leave a message.\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"AI Agent\",\n      \"action_data\": {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {}\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Main line\",\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"Queue\",\n      \"action_data\": {}\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"say\": \"Please leave a message.\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"AI Agent\",\n      \"action_data\": {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {}\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Main line\",\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"Queue\",\n      \"action_data\": {}\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"say\": \"Please leave a message.\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"AI Agent\",\n      \"action_data\": {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {}\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Main line\",\n  \"availability\": {\n    \"tz\": \"America/Denver\",\n    \"days\": [\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": true,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      },\n      {\n        \"open\": false,\n        \"start\": \"9.0\",\n        \"end\": \"17.0\"\n      }\n    ]\n  },\n  \"rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"Queue\",\n      \"action_data\": {}\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {\n        \"say\": \"Please leave a message.\"\n      }\n    }\n  ],\n  \"after_hour_rules\": [\n    {\n      \"start_rule\": true,\n      \"end_rule\": false,\n      \"action\": \"AI Agent\",\n      \"action_data\": {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\"\n      }\n    },\n    {\n      \"start_rule\": false,\n      \"end_rule\": true,\n      \"action\": \"Voicemail\",\n      \"action_data\": {}\n    }\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a phone line","request":{"name":"Delete a phone line","description":{"content":"Deletes one phone line from your account. An id that isn't one of your lines answers\n`404`.\n","type":"text/plain"},"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Phone line deleted","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[],"cookie":[],"_postman_previewlanguage":"text"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","lines",":line_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Assign a number to a phone line","request":{"name":"Assign a number to a phone line","description":{"content":"Points the number's calls and texts at this line. Returns 409 with code\n`TN_ALREADY_ON_CAMPAIGN` when the number is registered to a different texting\ncampaign than the line's. A number not on your account returns `404` and\nnothing changes.\n","type":"text/plain"},"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Number assigned","originalRequest":{"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"e911\": {\n      \"old_location_id\": null,\n      \"new_location_id\": null,\n      \"rebound\": true\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"71fcf087-2c15-3e3f-967f-775e684594d1\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource conflict","originalRequest":{"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"A resource with this identifier already exists\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","lines",":line_id","assign"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"line_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"number\": \"+12125550120\",\n  \"confirm_move\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Inbox Tasks","description":"Create, update and list tasks.","item":[{"name":"List tasks","request":{"name":"List tasks","description":{"content":"Lists inbox tasks. Without `limit` every matching task is returned. Page with\n`skip` and `limit`; there is no total, so stop when a page has fewer than\n`limit` tasks.\n","type":"text/plain"},"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most tasks to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only tasks for this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Only tasks with this status. `all` or omitted returns every status. (This can only be one of open,snoozed,closed,all)","type":"text/plain"},"key":"status","value":"snoozed"},{"disabled":false,"description":{"content":"`asc` (oldest first, the default), `desc` (newest first), `urgent` (urgent first, then newest) or `followup_soonest` (soonest reminder first). (This can only be one of asc,desc,urgent,followup_soonest)","type":"text/plain"},"key":"sort","value":"asc"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Tasks","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most tasks to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only tasks for this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Only tasks with this status. `all` or omitted returns every status. (This can only be one of open,snoozed,closed,all)","type":"text/plain"},"key":"status","value":"snoozed"},{"disabled":false,"description":{"content":"`asc` (oldest first, the default), `desc` (newest first), `urgent` (urgent first, then newest) or `followup_soonest` (soonest reminder first). (This can only be one of asc,desc,urgent,followup_soonest)","type":"text/plain"},"key":"sort","value":"asc"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"tasks\": [\n      {\n        \"task_id\": \"45845c46-0f56-7799-55d5-53ef619f1c69\",\n        \"team_id\": \"string\",\n        \"contact_id\": null,\n        \"conversation_id\": \"string\",\n        \"task_type\": \"sms\",\n        \"status\": \"open\",\n        \"unread\": false,\n        \"urgent\": true,\n        \"priority\": \"\",\n        \"mentioned\": [\n          \"string\",\n          \"string\"\n        ],\n        \"direction\": null,\n        \"assigned_to\": \"string\",\n        \"assigned_type\": null,\n        \"assigned_at\": null,\n        \"call_id\": null,\n        \"fax_id\": null,\n        \"sms_id\": \"string\",\n        \"call_recording_id\": \"string\",\n        \"followup_id\": null,\n        \"booking_id\": null,\n        \"appointment_start_at\": 41,\n        \"followup_scheduled_at\": 880,\n        \"last_note\": \"\",\n        \"human_review\": {},\n        \"preview_info\": {\n          \"task_date\": 1349,\n          \"task_contact\": \"string\",\n          \"task_subject\": \"string\",\n          \"task_content\": \"string\",\n          \"subject\": \"string\"\n        },\n        \"created_at\": 4494,\n        \"contact\": {\n          \"contact_id\": \"string\",\n          \"gravatar_id\": null\n        },\n        \"call\": {},\n        \"sms\": {},\n        \"fax\": {},\n        \"call_recording\": {},\n        \"last_record\": {}\n      },\n      {\n        \"task_id\": \"65d6bd3d-17e8-6984-79ad-3920cecfb966\",\n        \"team_id\": \"string\",\n        \"contact_id\": null,\n        \"conversation_id\": \"string\",\n        \"task_type\": \"note\",\n        \"status\": \"open\",\n        \"unread\": true,\n        \"urgent\": true,\n        \"priority\": \"\",\n        \"mentioned\": [\n          \"string\",\n          \"string\"\n        ],\n        \"direction\": null,\n        \"assigned_to\": \"string\",\n        \"assigned_type\": null,\n        \"assigned_at\": 268,\n        \"call_id\": null,\n        \"fax_id\": \"string\",\n        \"sms_id\": null,\n        \"call_recording_id\": null,\n        \"followup_id\": null,\n        \"booking_id\": \"string\",\n        \"appointment_start_at\": 3694,\n        \"followup_scheduled_at\": 5,\n        \"last_note\": \"\",\n        \"human_review\": {},\n        \"preview_info\": {\n          \"task_date\": 4080,\n          \"task_contact\": \"string\",\n          \"task_subject\": \"string\",\n          \"task_content\": \"string\",\n          \"subject\": \"string\"\n        },\n        \"created_at\": 1151,\n        \"contact\": {\n          \"contact_id\": \"string\",\n          \"gravatar_id\": \"string\"\n        },\n        \"call\": {},\n        \"sms\": {},\n        \"fax\": {},\n        \"call_recording\": {},\n        \"last_record\": {}\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"a232c55b-083e-2101-baa2-22d57bea6f22\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most tasks to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only tasks for this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Only tasks with this status. `all` or omitted returns every status. (This can only be one of open,snoozed,closed,all)","type":"text/plain"},"key":"status","value":"snoozed"},{"disabled":false,"description":{"content":"`asc` (oldest first, the default), `desc` (newest first), `urgent` (urgent first, then newest) or `followup_soonest` (soonest reminder first). (This can only be one of asc,desc,urgent,followup_soonest)","type":"text/plain"},"key":"sort","value":"asc"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most tasks to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"Only tasks for this contact.","type":"text/plain"},"key":"contact_id","value":"string"},{"disabled":false,"description":{"content":"Only tasks with this status. `all` or omitted returns every status. (This can only be one of open,snoozed,closed,all)","type":"text/plain"},"key":"status","value":"snoozed"},{"disabled":false,"description":{"content":"`asc` (oldest first, the default), `desc` (newest first), `urgent` (urgent first, then newest) or `followup_soonest` (soonest reminder first). (This can only be one of asc,desc,urgent,followup_soonest)","type":"text/plain"},"key":"sort","value":"asc"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a task","request":{"name":"Create a task","description":{"content":"Opens a task in the shared inbox. New tasks start `open` and unread.","type":"text/plain"},"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"contact_id\": \"string\",\n  \"task_type\": \"follow_up\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\",\n  \"urgent\": false,\n  \"priority\": \"\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Task created","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"contact_id\": \"string\",\n  \"task_type\": \"follow_up\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\",\n  \"urgent\": false,\n  \"priority\": \"\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"task_id\": \"505f5daa-ea69-4ca9-da34-f0d705668af2\",\n    \"team_id\": \"string\",\n    \"contact_id\": \"string\",\n    \"conversation_id\": null,\n    \"task_type\": \"follow_up\",\n    \"status\": \"open\",\n    \"unread\": true,\n    \"urgent\": true,\n    \"priority\": \"\",\n    \"mentioned\": [\n      \"string\",\n      \"string\"\n    ],\n    \"direction\": \"string\",\n    \"assigned_to\": \"string\",\n    \"assigned_type\": \"string\",\n    \"assigned_at\": 5901,\n    \"call_id\": \"string\",\n    \"fax_id\": null,\n    \"sms_id\": \"string\",\n    \"note_id\": \"string\",\n    \"call_recording_id\": \"string\",\n    \"followup_id\": \"string\",\n    \"booking_id\": \"string\",\n    \"snoozed_until\": null,\n    \"snoozed_by\": null,\n    \"closed_at\": null,\n    \"closed_by\": null,\n    \"deleted_at\": null,\n    \"deleted_by\": null,\n    \"preview_info\": {\n      \"task_date\": 9341,\n      \"task_contact\": \"string\",\n      \"task_subject\": \"string\",\n      \"task_content\": \"string\",\n      \"subject\": \"string\"\n    },\n    \"actions\": null,\n    \"action_payload\": {},\n    \"created_at\": 1097,\n    \"created_by\": \"string\",\n    \"updated_at\": 5917\n  },\n  \"meta\": {\n    \"request_id\": \"5ffc0b0f-a6f3-c19b-a3d5-573d808657b4\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"contact_id\": \"string\",\n  \"task_type\": \"follow_up\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\",\n  \"urgent\": false,\n  \"priority\": \"\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"contact_id\": \"string\",\n  \"task_type\": \"follow_up\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\",\n  \"urgent\": false,\n  \"priority\": \"\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["task","public","tasks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"contact_id\": \"string\",\n  \"task_type\": \"follow_up\",\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\",\n  \"urgent\": false,\n  \"priority\": \"\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a task","request":{"name":"Get a task","description":{"content":"Returns one task, with its most recent timeline entry in `last_record`.","type":"text/plain"},"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"task_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The task","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"task_id\": \"ee899144-f943-fec9-13b2-ee448de59565\",\n    \"team_id\": \"string\",\n    \"contact_id\": null,\n    \"conversation_id\": null,\n    \"task_type\": \"sms\",\n    \"status\": \"snoozed\",\n    \"unread\": true,\n    \"urgent\": false,\n    \"priority\": \"\",\n    \"mentioned\": [\n      \"string\",\n      \"string\"\n    ],\n    \"direction\": \"string\",\n    \"assigned_to\": \"string\",\n    \"assigned_type\": \"string\",\n    \"assigned_at\": 4002,\n    \"call_id\": null,\n    \"fax_id\": \"string\",\n    \"sms_id\": \"string\",\n    \"call_recording_id\": null,\n    \"followup_id\": null,\n    \"booking_id\": null,\n    \"appointment_start_at\": 1977,\n    \"followup_scheduled_at\": 2697,\n    \"last_note\": \"\",\n    \"human_review\": {},\n    \"preview_info\": {\n      \"task_date\": 5334,\n      \"task_contact\": \"string\",\n      \"task_subject\": \"string\",\n      \"task_content\": \"string\",\n      \"subject\": null\n    },\n    \"created_at\": 7170,\n    \"contact\": {\n      \"contact_id\": \"string\",\n      \"gravatar_id\": \"string\"\n    },\n    \"call\": {},\n    \"sms\": {},\n    \"fax\": {},\n    \"call_recording\": {},\n    \"last_record\": {}\n  },\n  \"meta\": {\n    \"request_id\": \"e4718e40-bbc8-6d80-c8c1-208a75acfd0f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a task","request":{"name":"Update a task","description":{"content":"Changes only the fields you send. Returns the fields you sent with `task_id`,\n`team_id` and `user_id`, not the full task. Returns `404` when no task on your\naccount has that id.\n","type":"text/plain"},"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"task_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1968-12-12T20:03:13.994Z\",\n  \"task_type\": \"missed_call\",\n  \"urgent\": true,\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Fields applied","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1968-12-12T20:03:13.994Z\",\n  \"task_type\": \"missed_call\",\n  \"urgent\": true,\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"task_id\": \"string\",\n    \"team_id\": \"string\",\n    \"user_id\": \"string\",\n    \"status\": \"string\",\n    \"snoozed_until\": \"string\",\n    \"task_type\": \"string\",\n    \"urgent\": true,\n    \"assigned_to\": null,\n    \"assigned_type\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"86b74885-3276-f7e5-228e-69cb8885fe84\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1968-12-12T20:03:13.994Z\",\n  \"task_type\": \"missed_call\",\n  \"urgent\": true,\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1968-12-12T20:03:13.994Z\",\n  \"task_type\": \"missed_call\",\n  \"urgent\": true,\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1968-12-12T20:03:13.994Z\",\n  \"task_type\": \"missed_call\",\n  \"urgent\": true,\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["task","public","tasks",":task_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1968-12-12T20:03:13.994Z\",\n  \"task_type\": \"missed_call\",\n  \"urgent\": true,\n  \"assigned_to\": \"string\",\n  \"assigned_type\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a task's status","request":{"name":"Update a task's status","description":{"content":"Opens, snoozes or closes a task. Closing also marks it read. Returns the fields\nyou sent with `task_id`, `team_id` and `user_id`. Returns `404` when no task\non your account has that id.\n","type":"text/plain"},"url":{"path":["task","public","tasks",":task_id","status"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"task_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1969-12-09T15:42:36.804Z\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Fields applied","originalRequest":{"url":{"path":["task","public","tasks",":task_id","status"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1969-12-09T15:42:36.804Z\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"task_id\": \"string\",\n    \"team_id\": \"string\",\n    \"user_id\": \"string\",\n    \"status\": \"string\",\n    \"snoozed_until\": \"string\",\n    \"task_type\": \"string\",\n    \"urgent\": true,\n    \"assigned_to\": null,\n    \"assigned_type\": \"string\"\n  },\n  \"meta\": {\n    \"request_id\": \"86b74885-3276-f7e5-228e-69cb8885fe84\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["task","public","tasks",":task_id","status"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1969-12-09T15:42:36.804Z\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["task","public","tasks",":task_id","status"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1969-12-09T15:42:36.804Z\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["task","public","tasks",":task_id","status"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1969-12-09T15:42:36.804Z\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["task","public","tasks",":task_id","status"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"task_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"status\": \"open\",\n  \"snoozed_until\": \"1969-12-09T15:42:36.804Z\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Pipelines","description":"Manage sales pipeline boards and the lists on them.","item":[{"name":"List boards","request":{"name":"List boards","description":{"content":"Lists the non-deleted pipelines the caller can see, newest first. Without\n`limit` every pipeline is returned. This route has no offset parameter.\n","type":"text/plain"},"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most pipelines to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the pipeline name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Pipelines","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most pipelines to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the pipeline name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"_id\": \"string\",\n      \"board_id\": \"fc2cf792-a754-ce7d-7439-594119375571\",\n      \"team_id\": \"string\",\n      \"name\": \"string\",\n      \"lists\": [\n        {\n          \"list_id\": \"string\",\n          \"sort\": \"string\",\n          \"order\": 8733.74847928062,\n          \"firstLoading\": true,\n          \"win_probability\": 89.87862505018711,\n          \"stage_type\": \"open\",\n          \"stale_after_days\": null\n        },\n        {\n          \"list_id\": \"string\",\n          \"sort\": \"string\",\n          \"order\": 5996.505809016526,\n          \"firstLoading\": true,\n          \"win_probability\": 70.45901250094175,\n          \"stage_type\": \"lost\",\n          \"stale_after_days\": 54\n        }\n      ],\n      \"brand_id\": null,\n      \"shared_across_brands\": true,\n      \"visible_for_user_id\": \"string\",\n      \"visible_for_user_group_id\": null,\n      \"is_seed\": true,\n      \"created_at\": 6875,\n      \"created_by\": \"string\",\n      \"updated_at\": null,\n      \"updated_by\": \"string\",\n      \"deleted_at\": 5557,\n      \"deleted_by\": null\n    },\n    {\n      \"_id\": \"string\",\n      \"board_id\": \"37679c62-74b4-c260-03cb-d1fe5c97b499\",\n      \"team_id\": \"string\",\n      \"name\": \"string\",\n      \"lists\": [\n        {\n          \"list_id\": \"string\",\n          \"sort\": \"string\",\n          \"order\": 9829.20569833368,\n          \"firstLoading\": true,\n          \"win_probability\": 67.05477321520448,\n          \"stage_type\": \"lost\",\n          \"stale_after_days\": 210\n        },\n        {\n          \"list_id\": \"string\",\n          \"sort\": \"string\",\n          \"order\": 7108.70424285531,\n          \"firstLoading\": false,\n          \"win_probability\": null,\n          \"stage_type\": \"open\",\n          \"stale_after_days\": null\n        }\n      ],\n      \"brand_id\": null,\n      \"shared_across_brands\": true,\n      \"visible_for_user_id\": \"string\",\n      \"visible_for_user_group_id\": null,\n      \"is_seed\": false,\n      \"created_at\": 259,\n      \"created_by\": \"string\",\n      \"updated_at\": null,\n      \"updated_by\": null,\n      \"deleted_at\": null,\n      \"deleted_by\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"f3627ac4-7bcf-5a2c-3e33-f9c8236c1b60\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most pipelines to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the pipeline name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most pipelines to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the pipeline name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a board","request":{"name":"Create a board","description":{"content":"Creates a pipeline board. Its stages are contact lists. Send a `name` (it defaults to\n`New Bucket Board`) and the `lists` in display order, and optionally a `brand_id` to scope\nthe board to one brand.\n","type":"text/plain"},"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7347.388146445155,\n      \"win_probability\": 1648.4530176967382,\n      \"stage_type\": \"won\",\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 648.3700405806303,\n      \"win_probability\": 1388.8550992123783,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": 6818\n    }\n  ],\n  \"brand_id\": null,\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Board created","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7347.388146445155,\n      \"win_probability\": 1648.4530176967382,\n      \"stage_type\": \"won\",\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 648.3700405806303,\n      \"win_probability\": 1388.8550992123783,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": 6818\n    }\n  ],\n  \"brand_id\": null,\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"board_id\": \"aaf7ebeb-3f5a-5173-7eac-3f44651e33ad\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"lists\": [\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 7758.609482552856,\n        \"firstLoading\": true,\n        \"win_probability\": 59.4242331571877,\n        \"stage_type\": \"open\",\n        \"stale_after_days\": null\n      },\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 5235.925659071654,\n        \"firstLoading\": true,\n        \"win_probability\": null,\n        \"stage_type\": null,\n        \"stale_after_days\": null\n      }\n    ],\n    \"brand_id\": \"string\",\n    \"shared_across_brands\": true,\n    \"visible_for_user_id\": null,\n    \"visible_for_user_group_id\": null,\n    \"is_seed\": false,\n    \"created_at\": 8877,\n    \"created_by\": \"string\",\n    \"updated_at\": null,\n    \"updated_by\": \"string\",\n    \"deleted_at\": 8497,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"b5563c20-4c0f-b41b-2937-3113e905ffb0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7347.388146445155,\n      \"win_probability\": 1648.4530176967382,\n      \"stage_type\": \"won\",\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 648.3700405806303,\n      \"win_probability\": 1388.8550992123783,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": 6818\n    }\n  ],\n  \"brand_id\": null,\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7347.388146445155,\n      \"win_probability\": 1648.4530176967382,\n      \"stage_type\": \"won\",\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 648.3700405806303,\n      \"win_probability\": 1388.8550992123783,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": 6818\n    }\n  ],\n  \"brand_id\": null,\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["boards","public","boards"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7347.388146445155,\n      \"win_probability\": 1648.4530176967382,\n      \"stage_type\": \"won\",\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 648.3700405806303,\n      \"win_probability\": 1388.8550992123783,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": 6818\n    }\n  ],\n  \"brand_id\": null,\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a board","request":{"name":"Update a board","description":{"content":"Changes only the fields you send; `lists` replaces every stage. Returns the\npipeline as it is after the change. A `board_id` that isn't one of your\npipelines returns `404`.\n","type":"text/plain"},"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 4790.545038413256,\n      \"win_probability\": null,\n      \"stage_type\": null,\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7382.801240310073,\n      \"win_probability\": null,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": null\n    }\n  ],\n  \"brand_id\": \"string\",\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The pipeline","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 4790.545038413256,\n      \"win_probability\": null,\n      \"stage_type\": null,\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7382.801240310073,\n      \"win_probability\": null,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": null\n    }\n  ],\n  \"brand_id\": \"string\",\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"board_id\": \"aaf7ebeb-3f5a-5173-7eac-3f44651e33ad\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"lists\": [\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 7758.609482552856,\n        \"firstLoading\": true,\n        \"win_probability\": 59.4242331571877,\n        \"stage_type\": \"open\",\n        \"stale_after_days\": null\n      },\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 5235.925659071654,\n        \"firstLoading\": true,\n        \"win_probability\": null,\n        \"stage_type\": null,\n        \"stale_after_days\": null\n      }\n    ],\n    \"brand_id\": \"string\",\n    \"shared_across_brands\": true,\n    \"visible_for_user_id\": null,\n    \"visible_for_user_group_id\": null,\n    \"is_seed\": false,\n    \"created_at\": 8877,\n    \"created_by\": \"string\",\n    \"updated_at\": null,\n    \"updated_by\": \"string\",\n    \"deleted_at\": 8497,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"b5563c20-4c0f-b41b-2937-3113e905ffb0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 4790.545038413256,\n      \"win_probability\": null,\n      \"stage_type\": null,\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7382.801240310073,\n      \"win_probability\": null,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": null\n    }\n  ],\n  \"brand_id\": \"string\",\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 4790.545038413256,\n      \"win_probability\": null,\n      \"stage_type\": null,\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7382.801240310073,\n      \"win_probability\": null,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": null\n    }\n  ],\n  \"brand_id\": \"string\",\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 4790.545038413256,\n      \"win_probability\": null,\n      \"stage_type\": null,\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7382.801240310073,\n      \"win_probability\": null,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": null\n    }\n  ],\n  \"brand_id\": \"string\",\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"lists\": [\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 4790.545038413256,\n      \"win_probability\": null,\n      \"stage_type\": null,\n      \"stale_after_days\": null\n    },\n    {\n      \"list_id\": \"string\",\n      \"sort\": \"string\",\n      \"order\": 7382.801240310073,\n      \"win_probability\": null,\n      \"stage_type\": \"lost\",\n      \"stale_after_days\": null\n    }\n  ],\n  \"brand_id\": \"string\",\n  \"shared_across_brands\": false\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a board","request":{"name":"Delete a board","description":{"content":"Soft delete: sets `deleted_at` and `deleted_by` and hides the pipeline from the\nlist. The stage lists and their contacts are kept. Returns the deleted\npipeline; a `board_id` that isn't one of your pipelines returns `404`.\n","type":"text/plain"},"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The pipeline","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"board_id\": \"aaf7ebeb-3f5a-5173-7eac-3f44651e33ad\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"lists\": [\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 7758.609482552856,\n        \"firstLoading\": true,\n        \"win_probability\": 59.4242331571877,\n        \"stage_type\": \"open\",\n        \"stale_after_days\": null\n      },\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 5235.925659071654,\n        \"firstLoading\": true,\n        \"win_probability\": null,\n        \"stage_type\": null,\n        \"stale_after_days\": null\n      }\n    ],\n    \"brand_id\": \"string\",\n    \"shared_across_brands\": true,\n    \"visible_for_user_id\": null,\n    \"visible_for_user_group_id\": null,\n    \"is_seed\": false,\n    \"created_at\": 8877,\n    \"created_by\": \"string\",\n    \"updated_at\": null,\n    \"updated_by\": \"string\",\n    \"deleted_at\": 8497,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"b5563c20-4c0f-b41b-2937-3113e905ffb0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["boards","public","boards",":board_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add a list to a board","request":{"name":"Add a list to a board","description":{"content":"Adds a stage to the end of the pipeline. A stage is an existing contact list,\nreferenced by `list_id`. Returns the pipeline with the new stage.\n","type":"text/plain"},"url":{"path":["boards","public","boards",":board_id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list\": {\n    \"list_id\": \"string\",\n    \"sort\": \"string\",\n    \"order\": 500.1410096883774,\n    \"win_probability\": 5675.1799350604415,\n    \"stage_type\": \"won\",\n    \"stale_after_days\": 6453\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The pipeline","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list\": {\n    \"list_id\": \"string\",\n    \"sort\": \"string\",\n    \"order\": 500.1410096883774,\n    \"win_probability\": 5675.1799350604415,\n    \"stage_type\": \"won\",\n    \"stale_after_days\": 6453\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"board_id\": \"aaf7ebeb-3f5a-5173-7eac-3f44651e33ad\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"lists\": [\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 7758.609482552856,\n        \"firstLoading\": true,\n        \"win_probability\": 59.4242331571877,\n        \"stage_type\": \"open\",\n        \"stale_after_days\": null\n      },\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 5235.925659071654,\n        \"firstLoading\": true,\n        \"win_probability\": null,\n        \"stage_type\": null,\n        \"stale_after_days\": null\n      }\n    ],\n    \"brand_id\": \"string\",\n    \"shared_across_brands\": true,\n    \"visible_for_user_id\": null,\n    \"visible_for_user_group_id\": null,\n    \"is_seed\": false,\n    \"created_at\": 8877,\n    \"created_by\": \"string\",\n    \"updated_at\": null,\n    \"updated_by\": \"string\",\n    \"deleted_at\": 8497,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"b5563c20-4c0f-b41b-2937-3113e905ffb0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list\": {\n    \"list_id\": \"string\",\n    \"sort\": \"string\",\n    \"order\": 500.1410096883774,\n    \"win_probability\": 5675.1799350604415,\n    \"stage_type\": \"won\",\n    \"stale_after_days\": 6453\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list\": {\n    \"list_id\": \"string\",\n    \"sort\": \"string\",\n    \"order\": 500.1410096883774,\n    \"win_probability\": 5675.1799350604415,\n    \"stage_type\": \"won\",\n    \"stale_after_days\": 6453\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list\": {\n    \"list_id\": \"string\",\n    \"sort\": \"string\",\n    \"order\": 500.1410096883774,\n    \"win_probability\": 5675.1799350604415,\n    \"stage_type\": \"won\",\n    \"stale_after_days\": 6453\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"list\": {\n    \"list_id\": \"string\",\n    \"sort\": \"string\",\n    \"order\": 500.1410096883774,\n    \"win_probability\": 5675.1799350604415,\n    \"stage_type\": \"won\",\n    \"stale_after_days\": 6453\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Remove a list from a board","request":{"name":"Remove a list from a board","description":{"content":"Removes the stage from the pipeline. The contact list itself is not deleted.\nReturns the pipeline without the stage.\n","type":"text/plain"},"url":{"path":["boards","public","boards",":board_id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"string","key":"list_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"The pipeline","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"_id\": \"string\",\n    \"board_id\": \"aaf7ebeb-3f5a-5173-7eac-3f44651e33ad\",\n    \"team_id\": \"string\",\n    \"name\": \"string\",\n    \"lists\": [\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 7758.609482552856,\n        \"firstLoading\": true,\n        \"win_probability\": 59.4242331571877,\n        \"stage_type\": \"open\",\n        \"stale_after_days\": null\n      },\n      {\n        \"list_id\": \"string\",\n        \"sort\": \"string\",\n        \"order\": 5235.925659071654,\n        \"firstLoading\": true,\n        \"win_probability\": null,\n        \"stage_type\": null,\n        \"stale_after_days\": null\n      }\n    ],\n    \"brand_id\": \"string\",\n    \"shared_across_brands\": true,\n    \"visible_for_user_id\": null,\n    \"visible_for_user_group_id\": null,\n    \"is_seed\": false,\n    \"created_at\": 8877,\n    \"created_by\": \"string\",\n    \"updated_at\": null,\n    \"updated_by\": \"string\",\n    \"deleted_at\": 8497,\n    \"deleted_by\": null\n  },\n  \"meta\": {\n    \"request_id\": \"b5563c20-4c0f-b41b-2937-3113e905ffb0\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["boards","public","boards",":board_id","lists",":list_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"board_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"list_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Automation","description":"Lookups and contact helpers for automation platforms, and integration webhooks.","item":[{"name":"List integration webhooks","request":{"name":"List integration webhooks","description":{"content":"Lists every integration webhook on your account. This route isn't paged. Each item\nis one URL subscribed to a set of event types.\n","type":"text/plain"},"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Every integration webhook on the account. This route isn't paged.","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"integration_id\": \"45c32fc4-c612-a35e-14e7-34f2eebdacdf\",\n      \"integration_type\": \"webhook\",\n      \"team_id\": \"2da185e4-ec91-d926-ef64-6071ab47a528\",\n      \"public_data\": {\n        \"webhook_name\": null,\n        \"webhook_url\": \"https://example.com/\",\n        \"event_types\": [\n          \"string\",\n          \"string\"\n        ],\n        \"use_auth\": false,\n        \"username\": null\n      },\n      \"created_at\": 7451,\n      \"signing_secret_created_at\": null\n    },\n    {\n      \"integration_id\": \"774f9a85-3ac4-f0ce-f869-f6a7f968ee82\",\n      \"integration_type\": \"webhook\",\n      \"team_id\": \"fb3a0e6d-7fad-4e43-6207-db42b4280249\",\n      \"public_data\": {\n        \"webhook_name\": null,\n        \"webhook_url\": \"https://example.com/\",\n        \"event_types\": [\n          \"string\",\n          \"string\"\n        ],\n        \"use_auth\": null,\n        \"username\": \"string\"\n      },\n      \"created_at\": 5686,\n      \"signing_secret_created_at\": 2776\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"8ec0cad8-9122-2553-9a9e-0d0ddb2cb2ff\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create an integration webhook","request":{"name":"Create an integration webhook","description":{"content":"Subscribes a URL to a set of event types. Send `webhook_url`, an HTTPS endpoint that\nanswers 2xx within 5 seconds, and `event_types`, or `[\"*\"]` for every event. The response\nincludes the `signing_secret` that verifies the `X-Signature` header on deliveries. It is\nreturned only here, so store it.\n","type":"text/plain"},"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"webhook_url\": \"https://example.com/\",\n  \"event_types\": [\n    \"contact.rvm.status\",\n    \"contact.sms.status\"\n  ],\n  \"webhook_name\": \"string\",\n  \"use_auth\": true,\n  \"username\": \"string\",\n  \"password\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Integration webhook created","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"webhook_url\": \"https://example.com/\",\n  \"event_types\": [\n    \"contact.rvm.status\",\n    \"contact.sms.status\"\n  ],\n  \"webhook_name\": \"string\",\n  \"use_auth\": true,\n  \"username\": \"string\",\n  \"password\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"integration_id\": \"5532b792-dffd-91ab-71b8-80b0f682e5a5\",\n    \"integration_type\": \"webhook\",\n    \"team_id\": \"23c9abbe-e9e3-3e02-857e-17edf8216a86\",\n    \"signing_secret\": \"string\",\n    \"public_data\": {\n      \"webhook_name\": null,\n      \"webhook_url\": \"https://example.com/\",\n      \"event_types\": [\n        \"string\",\n        \"string\"\n      ],\n      \"use_auth\": null,\n      \"username\": \"string\"\n    },\n    \"unknown_event_types\": [\n      \"string\",\n      \"string\"\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"89cc23bd-6856-ad00-d776-9648013265dd\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"webhook_url\": \"https://example.com/\",\n  \"event_types\": [\n    \"contact.rvm.status\",\n    \"contact.sms.status\"\n  ],\n  \"webhook_name\": \"string\",\n  \"use_auth\": true,\n  \"username\": \"string\",\n  \"password\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"webhook_url\": \"https://example.com/\",\n  \"event_types\": [\n    \"contact.rvm.status\",\n    \"contact.sms.status\"\n  ],\n  \"webhook_name\": \"string\",\n  \"use_auth\": true,\n  \"username\": \"string\",\n  \"password\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"webhook_url\": \"https://example.com/\",\n  \"event_types\": [\n    \"contact.rvm.status\",\n    \"contact.sms.status\"\n  ],\n  \"webhook_name\": \"string\",\n  \"use_auth\": true,\n  \"username\": \"string\",\n  \"password\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get an integration webhook","request":{"name":"Get an integration webhook","description":{"content":"Returns one integration webhook by id. The response doesn't repeat the signing secret.\nIt only says when the current one was issued.\n","type":"text/plain"},"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Webhook details","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"integration_id\": \"8fedb6ab-c4e1-4afd-5512-efddd75803fa\",\n    \"integration_type\": \"webhook\",\n    \"team_id\": \"252e8c6f-ec5e-d077-1281-0d901886cb63\",\n    \"public_data\": {\n      \"webhook_name\": null,\n      \"webhook_url\": \"https://example.com/\",\n      \"event_types\": [\n        \"string\",\n        \"string\"\n      ],\n      \"use_auth\": false,\n      \"username\": \"string\"\n    },\n    \"created_at\": 5172,\n    \"signing_secret_created_at\": null\n  },\n  \"meta\": {\n    \"request_id\": \"09cc6b28-1b22-d094-f85a-501adb2ed769\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete an integration webhook","request":{"name":"Delete an integration webhook","description":{"content":"Deletes one integration webhook, which stops deliveries to its URL. Answers `204`\nwith no body.\n","type":"text/plain"},"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"string","key":"id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Webhook deleted","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"No Content","code":204,"header":[],"cookie":[],"_postman_previewlanguage":"text"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["integration","public","webhooks",":id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"string","key":"id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List 10DLC brands","request":{"name":"List 10DLC brands","description":{"content":"Lists your registered brands, each with its texting campaigns. Returns the\n`brand_id` values accepted by sends, phone lines and agents. This route isn't paged.\n","type":"text/plain"},"url":{"path":["automation","public","brands"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Registered brands","originalRequest":{"url":{"path":["automation","public","brands"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"brand_id\": \"string\",\n      \"team_id\": \"string\",\n      \"company_name\": \"string\",\n      \"dba_name\": null,\n      \"registered\": true,\n      \"api_allowed\": false,\n      \"identity_status\": \"string\",\n      \"opt_in_flow\": \"\",\n      \"is_default\": false,\n      \"ucaas_campaigns\": [\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": false,\n          \"shared_10DLC\": true\n        },\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": true,\n          \"shared_10DLC\": true\n        }\n      ],\n      \"bulk_campaigns\": [\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": true,\n          \"shared_10DLC\": false\n        },\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": true,\n          \"shared_10DLC\": true\n        }\n      ]\n    },\n    {\n      \"brand_id\": \"string\",\n      \"team_id\": \"string\",\n      \"company_name\": \"string\",\n      \"dba_name\": \"string\",\n      \"registered\": true,\n      \"api_allowed\": false,\n      \"identity_status\": \"string\",\n      \"opt_in_flow\": \"\",\n      \"is_default\": true,\n      \"ucaas_campaigns\": [\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": true,\n          \"shared_10DLC\": false\n        },\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": false,\n          \"shared_10DLC\": true\n        }\n      ],\n      \"bulk_campaigns\": [\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": false,\n          \"shared_10DLC\": false\n        },\n        {\n          \"pool_id\": \"string\",\n          \"name\": \"string\",\n          \"use_case\": \"string\",\n          \"unified_mno_data\": {},\n          \"registered\": false,\n          \"shared_10DLC\": true\n        }\n      ]\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"175d0abd-3a94-310c-4bef-16032d621c28\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["automation","public","brands"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["automation","public","brands"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List number pools","request":{"name":"List number pools","description":{"content":"Lists your texting (10DLC) campaigns, registered or not. Each one's `pool_id` is\nthe value accepted by `POST /phone/public/numbers/rent`. Without `limit` every\ncampaign is returned; this route has no offset parameter.\n","type":"text/plain"},"url":{"path":["automation","public","pools"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most campaigns to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the campaign name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Number pools","originalRequest":{"url":{"path":["automation","public","pools"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most campaigns to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the campaign name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"pool_id\": \"string\",\n      \"name\": \"string\",\n      \"use_case\": \"string\",\n      \"registered\": false,\n      \"shared_10DLC\": true\n    },\n    {\n      \"pool_id\": \"string\",\n      \"name\": \"string\",\n      \"use_case\": \"string\",\n      \"registered\": false,\n      \"shared_10DLC\": false\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"290c1895-b9b3-fa93-b24f-7843ddff657b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["automation","public","pools"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most campaigns to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the campaign name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["automation","public","pools"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Most campaigns to return. No default.","type":"text/plain"},"key":"limit","value":"1894"},{"disabled":false,"description":{"content":"Case-insensitive match against the campaign name.","type":"text/plain"},"key":"search_term","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List disposition codes","request":{"name":"List disposition codes","description":{"content":"The fixed list of delivery result codes reported on sends and delivery\nwebhooks. This route isn't paged.\n","type":"text/plain"},"url":{"path":["automation","public","dispositions"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Disposition codes","originalRequest":{"url":{"path":["automation","public","dispositions"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"code\": 0,\n      \"label\": \"Success\",\n      \"category\": \"pending\"\n    },\n    {\n      \"code\": 0,\n      \"label\": \"Success\",\n      \"category\": \"carrier-issue\"\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"b49f2ef1-3d2c-1e77-f651-1903514ec53f\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["automation","public","dispositions"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["automation","public","dispositions"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a contact with basic fields","request":{"name":"Create a contact with basic fields","description":{"content":"Creates one contact from a phone number and optional name and email, and returns its `contact_id`. For every contact field, use `POST /contact/public/contacts`.\n","type":"text/plain"},"url":{"path":["automation","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"first_name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact created","originalRequest":{"url":{"path":["automation","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"first_name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"status\": \"success\",\n    \"contact_id\": \"6a8bc6ff-973f-a486-b15c-bc5b2aaeae88\"\n  },\n  \"meta\": {\n    \"request_id\": \"c5ddf435-511a-81d9-3bbd-ee4cc2850c41\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["automation","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"first_name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["automation","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"first_name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["automation","public","contacts"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"first_name\": \"Jane\",\n  \"last_name\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Find or create a contact","request":{"name":"Find or create a contact","description":{"content":"Looks up a contact by `phone_number`, then by `email` if you send one, and returns its `contact_id`. If none matches, creates the contact and returns the new `contact_id`. Send `list_id` to also add the contact to a list. Safe to retry.\n","type":"text/plain"},"url":{"path":["automation","public","contacts","find-or-create"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact found or created","originalRequest":{"url":{"path":["automation","public","contacts","find-or-create"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"status\": \"success\",\n    \"contact_id\": \"e35d966e-26b7-3428-c49d-433098ed239d\",\n    \"created\": false,\n    \"added_to_list\": true\n  },\n  \"meta\": {\n    \"request_id\": \"b05358b4-228a-93ce-4378-2f5dd445ab63\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["automation","public","contacts","find-or-create"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["automation","public","contacts","find-or-create"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["automation","public","contacts","find-or-create"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"phone_number\": \"+12125550120\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"first_name\": \"string\",\n  \"last_name\": \"string\",\n  \"list_id\": \"string\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add a contact to a list by phone, email or ID","request":{"name":"Add a contact to a list by phone, email or ID","description":{"content":"Adds a contact to a list. Identify the contact with `contact_id`, `phone_number` or `email`; `contact_id` is used first when you send more than one.\n","type":"text/plain"},"url":{"path":["automation","public","contacts","list"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_id\": \"string\",\n  \"contact_id\": \"string\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"action\": \"add\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Contact added to list","originalRequest":{"url":{"path":["automation","public","contacts","list"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_id\": \"string\",\n  \"contact_id\": \"string\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"action\": \"add\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"status\": \"success\"\n  },\n  \"meta\": {\n    \"request_id\": \"3386ae61-c8a5-edd0-020d-e1e80d7b821e\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["automation","public","contacts","list"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_id\": \"string\",\n  \"contact_id\": \"string\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"action\": \"add\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["automation","public","contacts","list"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_id\": \"string\",\n  \"contact_id\": \"string\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"action\": \"add\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["automation","public","contacts","list"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_id\": \"string\",\n  \"contact_id\": \"string\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"action\": \"add\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["automation","public","contacts","list"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"PUT","body":{"mode":"raw","raw":"{\n  \"list_id\": \"string\",\n  \"contact_id\": \"string\",\n  \"phone_number\": \"+13125550142\",\n  \"email\": \"jordan.rivera@example.com\",\n  \"action\": \"add\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Detection","description":"Real-time answering-machine, live-person and beep detection over WebSocket at\n`wss://detect.dropcowboy.com`, for calls you place on your own carrier.\nAuthenticate with a Detection API key from `POST /register/public/detection-keys`\nor the Detection building block in the dashboard, not with `x-key` and `x-secret`.\nKeep that key on your server.\n","item":[{"name":"List Detection keys","request":{"name":"List Detection keys","description":{"content":"Keys that authenticate `wss://detect.dropcowboy.com`. The key itself is never\nreturned after creation; `key_hint` is its last four characters so you can tell\nkeys apart. `status` is `active`, `suspended` (your balance ran out or Detection\nis switched off; the key comes back on its own when that clears) or `expired`.\nAn account without its own number pool gets an empty list.\n","type":"text/plain"},"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Detection keys, newest first","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"key_id\": \"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7\",\n      \"name\": \"Media server\",\n      \"key_hint\": \"0001\",\n      \"status\": \"active\",\n      \"created_at\": 1774041600000,\n      \"expires_at\": 1781817600000\n    },\n    {\n      \"key_id\": \"6f5e4d3c-2b1a-4c9d-8e7f-6a5b4c3d2e1f\",\n      \"name\": \"Twilio stream\",\n      \"key_hint\": \"0002\",\n      \"status\": \"suspended\",\n      \"created_at\": 1771449600000,\n      \"expires_at\": null\n    }\n  ],\n  \"meta\": {\n    \"request_id\": \"5e8b2d4f-7a1c-4e9b-8d3f-2c6a9e1b4d70\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The Detection key store could not be reached. Nothing was changed; retry.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Service Unavailable","code":503,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/service-unavailable\",\n  \"title\": \"Service Unavailable\",\n  \"status\": 503,\n  \"detail\": \"Detection key service is unavailable, try again\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a Detection key","request":{"name":"Create a Detection key","description":{"content":"Creates a Detection API key for your server. `api_key` is in this response only;\nstore it before you do anything else. Send it as `Authorization: Bearer <key>`\n(or `?api_key=`) on the WebSocket upgrade, or as the `api_key` `<Parameter>` on\nthe Twilio route. The same value is the HMAC secret for detection webhooks.\n\nThe key can do nothing but open detection sessions. Sessions are billed to your\nbalance, and a key stops working while the balance is empty. Requires Building\nBlocks: an account without it gets `403` with `byoc-required`. Only a verified\naccount can create keys (`403` with `team-not-verified`), and trial accounts get\n`403` with `trial_feature_blocked`. An account holds at most 25 keys (`409`).\n\nTo rotate: create a new key, deploy it, then delete the old one. A deleted key\ncan still open sessions for up to 60 seconds.\n","type":"text/plain"},"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Key created. `api_key` is shown once.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"key_id\": \"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7\",\n    \"name\": \"Media server\",\n    \"api_key\": \"EXAMPLE-detection-key-not-a-real-credential-0001\",\n    \"key_hint\": \"0001\",\n    \"created_at\": 1774041600000,\n    \"expires_at\": 1781817600000\n  },\n  \"meta\": {\n    \"request_id\": \"5e8b2d4f-7a1c-4e9b-8d3f-2c6a9e1b4d70\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`type` ends in `validation-error`: `name` is longer than 100 characters or `expires_in_seconds` is not an integer from 300 to 31536000.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"expires_in_seconds must be an integer from 300 to 31536000\",\n  \"instance\": \"/register/public/detection-keys\",\n  \"request_id\": \"5e8b2d4f-7a1c-4e9b-8d3f-2c6a9e1b4d70\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Scope missing (`type` ends in `insufficient-scope`), not available on a trial (`trial_feature_blocked`), the account is not verified yet (`team-not-verified`), or Building Blocks is not enabled (`byoc-required`).","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/team-not-verified\",\n  \"title\": \"Team Not Verified\",\n  \"status\": 403,\n  \"detail\": \"Verify your account before creating Detection keys.\",\n  \"instance\": \"/register/public/detection-keys\",\n  \"request_id\": \"5e8b2d4f-7a1c-4e9b-8d3f-2c6a9e1b4d70\",\n  \"details\": {\n    \"code\": \"team-not-verified\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The account already holds the maximum of 25 Detection keys. Delete one first.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The Detection key store could not be reached. Nothing was changed; retry.","originalRequest":{"url":{"path":["register","public","detection-keys"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Media server\",\n  \"expires_in_seconds\": 7776000\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Service Unavailable","code":503,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/service-unavailable\",\n  \"title\": \"Service Unavailable\",\n  \"status\": 503,\n  \"detail\": \"Detection key service is unavailable, try again\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a Detection key","request":{"name":"Delete a Detection key","description":{"content":"Revokes the key. New sessions are refused within 60 seconds; sessions already open run to completion. Deletion is permanent.\n","type":"text/plain"},"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id","disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Detection key deleted","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"key_id\": \"b95f7f02-6582-1caf-8f99-99d0a240ea3c\",\n    \"revoked\": false\n  },\n  \"meta\": {\n    \"request_id\": \"61a47539-0463-040d-81cc-dad699822904\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The Detection key store could not be reached. Nothing was changed; retry.","originalRequest":{"url":{"path":["register","public","detection-keys",":key_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) The key's `key_id` from `GET /register/public/detection-keys`. Not the key itself.","type":"text/plain"},"type":"any","value":"3e4f5a6b-7c8d-4e9f-a0b1-c2d3e4f5a6b7","key":"key_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Service Unavailable","code":503,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/service-unavailable\",\n  \"title\": \"Service Unavailable\",\n  \"status\": 503,\n  \"detail\": \"Detection key service is unavailable, try again\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Voices","description":"List, clone and design voices, turn text into audio, and transcribe audio.","item":[{"name":"List voices","request":{"name":"List voices","description":{"content":"Your account's cloned and designed voices, plus the platform catalog unless\n`include_pro_voices=false`. Use `voice_id` with `tts_body` on sends, with\n`tts_on_*` on voice broadcasts, and with `POST /voice/public/tts/synthesize`.\nOnly a voice whose `status` is `ready` can be synthesized or sent; see `Voice`\nfor the other states. `data.total` counts your account's voices only, not the\nplatform catalog.\n","type":"text/plain"},"url":{"path":["voice","public","voices"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Include a sample `url` for each voice.","type":"text/plain"},"key":"include_urls","value":"true"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_pro_voices","value":"true"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Voice list","originalRequest":{"url":{"path":["voice","public","voices"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Include a sample `url` for each voice.","type":"text/plain"},"key":"include_urls","value":"true"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_pro_voices","value":"true"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"voices\": [\n      {\n        \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n        \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n        \"name\": \"Jordan (cloned)\",\n        \"type\": null,\n        \"gender\": \"female\",\n        \"status\": \"ready\",\n        \"pro_voice\": false,\n        \"url\": null,\n        \"created_at\": 1774041600000,\n        \"failed_at\": null\n      }\n    ],\n    \"total\": 1\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["voice","public","voices"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Include a sample `url` for each voice.","type":"text/plain"},"key":"include_urls","value":"true"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_pro_voices","value":"true"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["voice","public","voices"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Include a sample `url` for each voice.","type":"text/plain"},"key":"include_urls","value":"true"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_pro_voices","value":"true"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice","public","voices"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Include a sample `url` for each voice.","type":"text/plain"},"key":"include_urls","value":"true"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"include_pro_voices","value":"true"},{"disabled":false,"description":{"content":"Number of records to skip.","type":"text/plain"},"key":"skip","value":"0"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"100"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Turn text into audio","request":{"name":"Turn text into audio","description":{"content":"Synthesizes `text` with one of your account's voices and returns a short-lived\ndownload URL. Billed per character (`tts_characters`). Any voice\n`GET /voice/public/voices` lists as `ready` works, including platform catalog\nvoices. Voices that are still awaiting checkout return `402`; voices that are\nstill processing or failed return `409` (`.../errors/voice-not-ready`); voices\nthat are unknown, deleted or another account's return `404`.\n","type":"text/plain"},"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Audio ready","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"audio_url\": \"https://media.example.com/tts/1b7e3c9a.mp3\",\n    \"expires_at\": 1774045200000,\n    \"tts_characters\": 50,\n    \"content_type\": \"audio/mpeg\"\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The voice is still processing or failed to clone.","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/voice-not-ready\",\n  \"title\": \"Voice Not Ready\",\n  \"status\": 409,\n  \"detail\": \"Voice is still processing. Retry when its status is ready.\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice","public","tts","synthesize"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Clone a voice","request":{"name":"Clone a voice","description":{"content":"Starts cloning from a recording, given as `sample_url` (a public audio URL) or\n`media_id` (a file already in your media library). Answers `202` with the new\n`voice_id`. Poll `GET /voice/public/voices` until that voice's `status` is\n`ready`. `pending_payment: true` means the voice slot must be purchased in the\ndashboard before the voice can be used. Get consent from the person whose\nvoice you clone.\n","type":"text/plain"},"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Cloning started","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Accepted","code":202,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n    \"long_job_id\": \"1d5b9f3e-7a2c-4e8d-b6f1-3c7a9e5d2b84\"\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice","public","voices","clone"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Jordan\",\n  \"sample_url\": \"https://media.example.com/samples/jordan.wav\",\n  \"gender\": \"female\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a voice","request":{"name":"Delete a voice","description":{"content":"Deletes one of your account's cloned or designed voices. The voice disappears\nfrom `GET /voice/public/voices` and can't be used for synthesis or sends any\nmore. If the voice counted toward your\nmonthly saved-voice subscription, the count drops by one; an unpaid voice\n(`pending_payment`) is removed from your checkout cart instead. Platform catalog\nvoices, other accounts' voices, already deleted voices and unknown ids return\n`404`. Wait until a voice's `status` is `ready` or `failed` before you delete it.\n","type":"text/plain"},"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id","disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Voice deleted","originalRequest":{"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"voice_id\": \"a9c3e8f1-4b2d-4a7c-8e9b-1c2d3e4f5a6b\",\n    \"deleted\": true\n  },\n  \"meta\": {\n    \"request_id\": \"3f6d2b9e-8a1c-4e7f-b5d4-2c9a8e7f6b1d\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`voice_id` is not a UUID, or the credentials carry no user to attribute the deletion to.","originalRequest":{"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/bad-request\",\n  \"title\": \"Bad Request\",\n  \"status\": 400,\n  \"detail\": \"voice_id must be a UUID\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice","public","voices",":voice_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) A `voice_id` from `GET /voice/public/voices` or `POST /voice/public/voices/clone`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"voice_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Design a voice","request":{"name":"Design a voice","description":{"content":"Starts generating a new voice from a written description, read aloud with\n`text`. Previews are free. Answers `202` with a `long_job_id`. Review the\npreview and save it as a voice in the dashboard. Once saved, the voice appears\nin `GET /voice/public/voices` with `type: designed`.\n","type":"text/plain"},"url":{"path":["voice","public","voices","design"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"instructions\": \"Warm, friendly receptionist in her thirties, relaxed pace.\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Design started","originalRequest":{"url":{"path":["voice","public","voices","design"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"instructions\": \"Warm, friendly receptionist in her thirties, relaxed pace.\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Accepted","code":202,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"long_job_id\": \"bda43429-5ca1-c7b9-a27e-87fa75374d6d\"\n  },\n  \"meta\": {\n    \"request_id\": \"ab2a1895-2a8a-7140-caf4-698ef12f4964\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["voice","public","voices","design"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"instructions\": \"Warm, friendly receptionist in her thirties, relaxed pace.\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["voice","public","voices","design"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"instructions\": \"Warm, friendly receptionist in her thirties, relaxed pace.\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["voice","public","voices","design"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"instructions\": \"Warm, friendly receptionist in her thirties, relaxed pace.\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice","public","voices","design"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"instructions\": \"Warm, friendly receptionist in her thirties, relaxed pace.\",\n  \"text\": \"Thanks for calling Example Dental. How can I help?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Transcribe audio","request":{"name":"Transcribe audio","description":{"content":"Transcribes a recording given as `media_id` or `url`. Runs synchronously, so keep\nrecordings short (a few minutes). Returns `402` when the account has no funds for\nspeech to text.\n\n- `media_id`: any MP3 or WAV in your media library. It is transcribed from the\n  normalized copy (8 kHz mono WAV) made a few seconds after the upload\n  completes. Until that copy exists an uploaded WAV is transcribed as is, and an\n  uploaded MP3 answers `409`; retry after a few seconds. The upload's format is\n  detected, so `ext` is optional. A `media_id` with no stored audio answers `404`.\n- `url`: must be a WAV file with PCM 16-bit samples. Any other format answers\n  `400`; upload MP3 and other formats as media and pass `media_id` instead.\n\nAudio larger than 10 MB answers `400`.\n","type":"text/plain"},"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Transcript","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"text\": \"Hi, this is Jordan returning your call about the appointment.\",\n    \"language\": \"en\"\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Neither `url` nor `media_id` was given, the `url` audio is not WAV (PCM\n16-bit), the audio is larger than 10 MB, or it could not be fetched or\ntranscribed.","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/bad-request\",\n  \"title\": \"Bad Request\",\n  \"status\": 400,\n  \"detail\": \"Speech to text accepts WAV audio (PCM 16-bit) from a url. For MP3 or other formats, upload the file as media and pass media_id.\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Nothing was done because of billing: either the plan allotment and prepaid\nbalance are both empty, or the subscription payment failed and the account is\npast due. Always problem details with `type` `.../errors/payment-required`.\nWhen the account is past due, email and campaign routes add\n`details.dunning_tier` (`restricted`, `suspended` or `canceled`). Top up or fix\nthe payment method in the dashboard, then retry.","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for this request\",\n  \"instance\": \"/voice/public/tts/synthesize\",\n  \"request_id\": \"5d7f9b1c-3e2a-4c6e-8a0f-2b4d6f8a0c35\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The credentials are valid but lack every scope this operation accepts.","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: contacts:read\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The `media_id` file is an MP3 whose normalized WAV copy is still being made.\nRetry after a few seconds.","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"Media is still processing. Retry in a few seconds.\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Speech to text is temporarily unavailable. Safe to retry.","originalRequest":{"url":{"path":["voice","public","asr","transcribe"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"media_id\": \"1b7e3c9a-4d2f-4a8b-9e6c-7f2a1d5b3c80\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/server-error\",\n  \"title\": \"Bad Gateway\",\n  \"status\": 502,\n  \"detail\": \"Speech to text is temporarily unavailable\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"AI agents","description":"Create, update and publish AI agents.","item":[{"name":"List agent templates","request":{"name":"List agent templates","description":{"content":"Starting points for `POST /agents/public/agents/from-template`.","type":"text/plain"},"url":{"path":["agents","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"category","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent templates","originalRequest":{"url":{"path":["agents","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"category","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"templates\": [\n      {\n        \"template_id\": \"inbound-after-hours\",\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"direction\": \"inbound\",\n        \"category\": \"string\"\n      },\n      {\n        \"template_id\": \"inbound-after-hours\",\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"direction\": \"inbound\",\n        \"category\": \"string\"\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"64d42fb1-560c-e04d-6f83-160bd313e6d6\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"category","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"category","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","templates"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of inbound,outbound)","type":"text/plain"},"key":"direction","value":"inbound"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"category","value":"string"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List agents","request":{"name":"List agents","description":{"content":"Lists the agents on your account. Filter by name with `search_term` and limit the page\nwith `limit`. The response includes `total`.\n","type":"text/plain"},"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agents","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"agents\": [\n      {\n        \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n        \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n        \"name\": \"Front desk\",\n        \"description\": \"Answers the main line\",\n        \"active\": true,\n        \"is_draft\": false,\n        \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n        \"language\": \"en\",\n        \"published_version\": 3,\n        \"published_at\": 1774041600000,\n        \"created_at\": 1774041600000\n      }\n    ],\n    \"total\": 1\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"search_term","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"50"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create an agent","request":{"name":"Create an agent","description":{"content":"Creates an agent from scratch. Most integrations start from a template instead\n(`POST /agents/public/agents/from-template`). Changes take effect on calls only\nafter `POST /agents/public/agents/{agent_id}/publish`.\n","type":"text/plain"},"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Front desk\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"language\": \"en\",\n  \"think\": {\n    \"prompt_spec\": {\n      \"role\": \"Receptionist for Example Dental\",\n      \"tone\": \"Warm and brief\",\n      \"objectives\": [\n        \"Answer questions about hours and location\",\n        \"Book cleanings\"\n      ],\n      \"intake_fields\": [\n        \"first_name\",\n        \"email\"\n      ]\n    }\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent created","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Front desk\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"language\": \"en\",\n  \"think\": {\n    \"prompt_spec\": {\n      \"role\": \"Receptionist for Example Dental\",\n      \"tone\": \"Warm and brief\",\n      \"objectives\": [\n        \"Answer questions about hours and location\",\n        \"Book cleanings\"\n      ],\n      \"intake_fields\": [\n        \"first_name\",\n        \"email\"\n      ]\n    }\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"agent_id\": \"4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19\",\n    \"team_id\": \"3f6c2a1e-8b4d-4c7a-9e2f-5a1b3c4d6e7f\",\n    \"name\": \"Front desk\",\n    \"description\": null,\n    \"active\": true,\n    \"is_draft\": false,\n    \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n    \"language\": \"en\",\n    \"published_version\": null,\n    \"published_at\": null,\n    \"created_at\": 1774041600000\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Front desk\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"language\": \"en\",\n  \"think\": {\n    \"prompt_spec\": {\n      \"role\": \"Receptionist for Example Dental\",\n      \"tone\": \"Warm and brief\",\n      \"objectives\": [\n        \"Answer questions about hours and location\",\n        \"Book cleanings\"\n      ],\n      \"intake_fields\": [\n        \"first_name\",\n        \"email\"\n      ]\n    }\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Front desk\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"language\": \"en\",\n  \"think\": {\n    \"prompt_spec\": {\n      \"role\": \"Receptionist for Example Dental\",\n      \"tone\": \"Warm and brief\",\n      \"objectives\": [\n        \"Answer questions about hours and location\",\n        \"Book cleanings\"\n      ],\n      \"intake_fields\": [\n        \"first_name\",\n        \"email\"\n      ]\n    }\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Front desk\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"language\": \"en\",\n  \"think\": {\n    \"prompt_spec\": {\n      \"role\": \"Receptionist for Example Dental\",\n      \"tone\": \"Warm and brief\",\n      \"objectives\": [\n        \"Answer questions about hours and location\",\n        \"Book cleanings\"\n      ],\n      \"intake_fields\": [\n        \"first_name\",\n        \"email\"\n      ]\n    }\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Front desk\",\n  \"voice_id\": \"7d2a9e4b-1c6f-4b3a-8e5d-2f9c7a1b4e63\",\n  \"language\": \"en\",\n  \"think\": {\n    \"prompt_spec\": {\n      \"role\": \"Receptionist for Example Dental\",\n      \"tone\": \"Warm and brief\",\n      \"objectives\": [\n        \"Answer questions about hours and location\",\n        \"Book cleanings\"\n      ],\n      \"intake_fields\": [\n        \"first_name\",\n        \"email\"\n      ]\n    }\n  }\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create an agent from a template","request":{"name":"Create an agent from a template","description":{"content":"Copies a template's prompt, tools and defaults into a new agent you can then edit and publish.","type":"text/plain"},"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent created","originalRequest":{"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"agent_id\": \"e3f38f3b-76bd-f733-0919-18eb523b35eb\",\n    \"team_id\": \"c14c26af-8694-b87b-b262-5f66818a1d33\",\n    \"name\": \"string\",\n    \"description\": null,\n    \"active\": false,\n    \"is_draft\": false,\n    \"voice_id\": \"07a53de4-fa17-7a77-17f0-ac9f214d58bc\",\n    \"language\": \"string\",\n    \"think\": {\n      \"llm_instructions\": \"string\",\n      \"prompt_spec\": {\n        \"role\": \"string\",\n        \"tone\": \"string\",\n        \"objectives\": [\n          \"string\",\n          \"string\"\n        ],\n        \"intake_fields\": [\n          \"string\",\n          \"string\"\n        ],\n        \"prohibitions\": [\n          \"string\",\n          \"string\"\n        ],\n        \"business_context\": \"string\",\n        \"additional_instructions\": \"string\"\n      },\n      \"llm_functions\": [\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        }\n      ],\n      \"mcp_servers\": [\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        }\n      ],\n      \"call_tools\": {},\n      \"knowledge\": {\n        \"mode\": \"all\",\n        \"knowledge_base_ids\": [\n          \"9d1970d7-b878-d411-4330-2af3b8333d06\",\n          \"6c312e60-1ff7-89e6-2d5e-1fcc41bd2bf7\"\n        ],\n        \"audience\": \"public\"\n      }\n    },\n    \"defaults\": {},\n    \"published_version\": null,\n    \"published_at\": null,\n    \"created_at\": 4619\n  },\n  \"meta\": {\n    \"request_id\": \"a3eae7f9-b8ff-b2b4-b531-84f7817db120\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents","from-template"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"template_id\": \"inbound-appointment-setting\",\n  \"name\": \"Front desk\",\n  \"active\": true\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get an agent","request":{"name":"Get an agent","description":{"content":"Agents that Drop Cowboy manages for your account (they are not in\n`GET /agents/public/agents`) answer `404`, as an unknown id does.\n","type":"text/plain"},"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id","disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"agent_id\": \"e3f38f3b-76bd-f733-0919-18eb523b35eb\",\n    \"team_id\": \"c14c26af-8694-b87b-b262-5f66818a1d33\",\n    \"name\": \"string\",\n    \"description\": null,\n    \"active\": false,\n    \"is_draft\": false,\n    \"voice_id\": \"07a53de4-fa17-7a77-17f0-ac9f214d58bc\",\n    \"language\": \"string\",\n    \"think\": {\n      \"llm_instructions\": \"string\",\n      \"prompt_spec\": {\n        \"role\": \"string\",\n        \"tone\": \"string\",\n        \"objectives\": [\n          \"string\",\n          \"string\"\n        ],\n        \"intake_fields\": [\n          \"string\",\n          \"string\"\n        ],\n        \"prohibitions\": [\n          \"string\",\n          \"string\"\n        ],\n        \"business_context\": \"string\",\n        \"additional_instructions\": \"string\"\n      },\n      \"llm_functions\": [\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        }\n      ],\n      \"mcp_servers\": [\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        }\n      ],\n      \"call_tools\": {},\n      \"knowledge\": {\n        \"mode\": \"all\",\n        \"knowledge_base_ids\": [\n          \"9d1970d7-b878-d411-4330-2af3b8333d06\",\n          \"6c312e60-1ff7-89e6-2d5e-1fcc41bd2bf7\"\n        ],\n        \"audience\": \"public\"\n      }\n    },\n    \"defaults\": {},\n    \"published_version\": null,\n    \"published_at\": null,\n    \"created_at\": 4619\n  },\n  \"meta\": {\n    \"request_id\": \"a3eae7f9-b8ff-b2b4-b531-84f7817db120\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update an agent","request":{"name":"Update an agent","description":{"content":"Partial update of the working copy (this route uses POST, not PUT). Live calls\nkeep using the last published version until you publish again. Setting\n`active: false` stops the agent taking new calls immediately. Agents that\nDrop Cowboy manages for your account are not listed and answer `404` here, as\non get and delete.\n","type":"text/plain"},"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id","disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent updated","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"agent_id\": \"e3f38f3b-76bd-f733-0919-18eb523b35eb\",\n    \"team_id\": \"c14c26af-8694-b87b-b262-5f66818a1d33\",\n    \"name\": \"string\",\n    \"description\": null,\n    \"active\": false,\n    \"is_draft\": false,\n    \"voice_id\": \"07a53de4-fa17-7a77-17f0-ac9f214d58bc\",\n    \"language\": \"string\",\n    \"think\": {\n      \"llm_instructions\": \"string\",\n      \"prompt_spec\": {\n        \"role\": \"string\",\n        \"tone\": \"string\",\n        \"objectives\": [\n          \"string\",\n          \"string\"\n        ],\n        \"intake_fields\": [\n          \"string\",\n          \"string\"\n        ],\n        \"prohibitions\": [\n          \"string\",\n          \"string\"\n        ],\n        \"business_context\": \"string\",\n        \"additional_instructions\": \"string\"\n      },\n      \"llm_functions\": [\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        }\n      ],\n      \"mcp_servers\": [\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        }\n      ],\n      \"call_tools\": {},\n      \"knowledge\": {\n        \"mode\": \"all\",\n        \"knowledge_base_ids\": [\n          \"9d1970d7-b878-d411-4330-2af3b8333d06\",\n          \"6c312e60-1ff7-89e6-2d5e-1fcc41bd2bf7\"\n        ],\n        \"audience\": \"public\"\n      }\n    },\n    \"defaults\": {},\n    \"published_version\": null,\n    \"published_at\": null,\n    \"created_at\": 4619\n  },\n  \"meta\": {\n    \"request_id\": \"a3eae7f9-b8ff-b2b4-b531-84f7817db120\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"voice_id\": \"49972791-883f-b828-b597-d0641459dc76\",\n  \"language\": \"string\",\n  \"mode\": \"string\",\n  \"think\": {\n    \"llm_instructions\": \"string\",\n    \"prompt_spec\": {\n      \"role\": \"string\",\n      \"tone\": \"string\",\n      \"objectives\": [\n        \"string\",\n        \"string\"\n      ],\n      \"intake_fields\": [\n        \"string\",\n        \"string\"\n      ],\n      \"prohibitions\": [\n        \"string\",\n        \"string\"\n      ],\n      \"business_context\": \"string\",\n      \"additional_instructions\": \"string\"\n    },\n    \"llm_functions\": [\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"description\": \"string\",\n        \"url\": \"https://example.com/\",\n        \"method\": \"string\",\n        \"headers\": {},\n        \"parameters\": {}\n      }\n    ],\n    \"mcp_servers\": [\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      },\n      {\n        \"name\": \"string\",\n        \"transport\": \"sse\",\n        \"url\": \"https://example.com/\",\n        \"headers\": {}\n      }\n    ],\n    \"call_tools\": {},\n    \"knowledge\": {\n      \"mode\": \"all\",\n      \"knowledge_base_ids\": [\n        \"682fb1ef-7601-9f2d-1c05-5f6f2767b569\",\n        \"d9f3b1d9-9aa0-3594-d3e7-195aa552a9f1\"\n      ],\n      \"audience\": \"public\"\n    }\n  },\n  \"identity\": {},\n  \"defaults\": {},\n  \"contact_tools\": {},\n  \"active\": true,\n  \"asr_enabled\": true,\n  \"post_call_automation_flow_ids\": [\n    \"string\",\n    \"string\"\n  ]\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete an agent","request":{"name":"Delete an agent","description":{"content":"Queued AI broadcast calls for this agent are cancelled. Agents that Drop Cowboy\nmanages for your account answer `404` and are not deleted.\n","type":"text/plain"},"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id","disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent deleted","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {},\n  \"meta\": {\n    \"request_id\": \"2a487d25-eafb-a464-6b3f-27542bb16e3b\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) `agent_id` from `GET /agents/public/agents`.","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Publish an agent","request":{"name":"Publish an agent","description":{"content":"Freezes the working copy as a new published version that calls, receptionist\nlines and AI broadcasts use. Publishing fails with `400` when a tool\ndefinition is invalid or the agent references something (a tool connection or\nautomation flow) your account no longer has, or when a selected knowledge base\nreads like instructions for staff rather than answers for callers. The\nresponse carries the new `published_version`.\n\nA rejected publish names its reason in `details.code`: `invalid_agent_tools`,\n`invalid_handoff_targets`, `unusable_knowledge_base`,\n`unresolved_agent_references`, `unresolved_voice_flow` or\n`voice_compile_error` (all `400`), or `stale_published_version` (`409`, another\npublish finished first; read the agent and retry). Branch on `details.code`, not\non `detail`: an explanation of 200 characters or more is replaced by a generic\nmessage.\n\nBuilt-in system agents cannot be published: they answer `404` (`agent not\nfound`), the same as an unknown `agent_id`.\n","type":"text/plain"},"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Agent published","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"agent_id\": \"e3f38f3b-76bd-f733-0919-18eb523b35eb\",\n    \"team_id\": \"c14c26af-8694-b87b-b262-5f66818a1d33\",\n    \"name\": \"string\",\n    \"description\": null,\n    \"active\": false,\n    \"is_draft\": false,\n    \"voice_id\": \"07a53de4-fa17-7a77-17f0-ac9f214d58bc\",\n    \"language\": \"string\",\n    \"think\": {\n      \"llm_instructions\": \"string\",\n      \"prompt_spec\": {\n        \"role\": \"string\",\n        \"tone\": \"string\",\n        \"objectives\": [\n          \"string\",\n          \"string\"\n        ],\n        \"intake_fields\": [\n          \"string\",\n          \"string\"\n        ],\n        \"prohibitions\": [\n          \"string\",\n          \"string\"\n        ],\n        \"business_context\": \"string\",\n        \"additional_instructions\": \"string\"\n      },\n      \"llm_functions\": [\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"description\": \"string\",\n          \"url\": \"https://example.com/\",\n          \"method\": \"string\",\n          \"headers\": {},\n          \"parameters\": {}\n        }\n      ],\n      \"mcp_servers\": [\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        },\n        {\n          \"name\": \"string\",\n          \"transport\": \"streamable-http\",\n          \"url\": \"https://example.com/\",\n          \"headers\": {}\n        }\n      ],\n      \"call_tools\": {},\n      \"knowledge\": {\n        \"mode\": \"all\",\n        \"knowledge_base_ids\": [\n          \"9d1970d7-b878-d411-4330-2af3b8333d06\",\n          \"6c312e60-1ff7-89e6-2d5e-1fcc41bd2bf7\"\n        ],\n        \"audience\": \"public\"\n      }\n    },\n    \"defaults\": {},\n    \"published_version\": null,\n    \"published_at\": null,\n    \"created_at\": 4619\n  },\n  \"meta\": {\n    \"request_id\": \"a3eae7f9-b8ff-b2b4-b531-84f7817db120\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The agent failed a publish check. The reason is in `details.code`.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Agent tools failed validation: book_visit needs a url\",\n  \"instance\": \"/agents/public/agents/4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19/publish\",\n  \"request_id\": \"3a7c1e9f-5b2d-4f8a-9e6c-1d4b7a2f8c05\",\n  \"details\": {\n    \"code\": \"invalid_agent_tools\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role does not allow it (`forbidden`). `detail` is\n\"You do not have permission to manage AI Agents.\" when the role has no AI agent\naccess, or \"Not authorized to perform this AI chat action\" when the role may not\ncreate, change, delete or publish agents. Team API keys are never limited by\nrole. If the role cannot be looked up the answer is `500` (`server-error`)\ninstead.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/agents/public/agents\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Another publish of this agent finished first. Read the agent and retry.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"agent was published concurrently by another request; reload the draft and retry\",\n  \"instance\": \"/agents/public/agents/4c8e2a6f-3b9d-4e1a-9c7b-5d2f8a3e6b19/publish\",\n  \"request_id\": \"9e2b5d8a-1c4f-4a7e-b3d6-8f0a2c5e7b14\",\n  \"details\": {\n    \"code\": \"stale_published_version\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["agents","public","agents",":agent_id","publish"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"agent_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Knowledge bases","description":"Knowledge bases that AI agents search during calls and chats. Attach one to an\nagent with `think.knowledge`.\n","item":[{"name":"List knowledge bases","request":{"name":"List knowledge bases","description":{"content":"Lists the knowledge bases on your account. Filter with `search`, `ai_audience` and\n`status`, sort with `sort_by` and `sort_order`, and page with `limit` and `offset`. `meta`\ncarries the total.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the name.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of internal,public)","type":"text/plain"},"key":"ai_audience","value":"public"},{"disabled":false,"description":{"content":" (This can only be one of active,archived)","type":"text/plain"},"key":"status","value":"archived"},{"disabled":false,"description":{"content":" (This can only be one of name,created_at,updated_at)","type":"text/plain"},"key":"sort_by","value":"updated_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Knowledge bases","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the name.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of internal,public)","type":"text/plain"},"key":"ai_audience","value":"public"},{"disabled":false,"description":{"content":" (This can only be one of active,archived)","type":"text/plain"},"key":"status","value":"archived"},{"disabled":false,"description":{"content":" (This can only be one of name,created_at,updated_at)","type":"text/plain"},"key":"sort_by","value":"updated_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"knowledge_base_id\": \"9d3f6a2c-4e8b-4b1d-a7c5-2f6e9b3d8a14\",\n      \"name\": \"Customer FAQ\",\n      \"description\": \"Hours, pricing and service area for callers.\",\n      \"ai_audience\": \"public\",\n      \"status\": \"active\",\n      \"stats\": {\n        \"document_count\": 3,\n        \"ready_count\": 3,\n        \"failed_count\": 0,\n        \"chunk_count\": 42\n      },\n      \"created_at\": 1774041600000,\n      \"updated_at\": 1774045200000\n    }\n  ],\n  \"meta\": {\n    \"total\": 1,\n    \"limit\": 25,\n    \"offset\": 0,\n    \"request_id\": \"3e7b1d9a-6c4f-4a2e-9b8d-1f5c7a3e6d20\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the name.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of internal,public)","type":"text/plain"},"key":"ai_audience","value":"public"},{"disabled":false,"description":{"content":" (This can only be one of active,archived)","type":"text/plain"},"key":"status","value":"archived"},{"disabled":false,"description":{"content":" (This can only be one of name,created_at,updated_at)","type":"text/plain"},"key":"sort_by","value":"updated_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the name.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of internal,public)","type":"text/plain"},"key":"ai_audience","value":"public"},{"disabled":false,"description":{"content":" (This can only be one of active,archived)","type":"text/plain"},"key":"status","value":"archived"},{"disabled":false,"description":{"content":" (This can only be one of name,created_at,updated_at)","type":"text/plain"},"key":"sort_by","value":"updated_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the name.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of internal,public)","type":"text/plain"},"key":"ai_audience","value":"public"},{"disabled":false,"description":{"content":" (This can only be one of active,archived)","type":"text/plain"},"key":"status","value":"archived"},{"disabled":false,"description":{"content":" (This can only be one of name,created_at,updated_at)","type":"text/plain"},"key":"sort_by","value":"updated_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the name.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":" (This can only be one of internal,public)","type":"text/plain"},"key":"ai_audience","value":"public"},{"disabled":false,"description":{"content":" (This can only be one of active,archived)","type":"text/plain"},"key":"status","value":"archived"},{"disabled":false,"description":{"content":" (This can only be one of name,created_at,updated_at)","type":"text/plain"},"key":"sort_by","value":"updated_at"},{"disabled":false,"description":{"content":" (This can only be one of asc,desc)","type":"text/plain"},"key":"sort_order","value":"desc"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a knowledge base","request":{"name":"Create a knowledge base","description":{"content":"Creates an empty knowledge base. Add documents with\n`POST /document/public/knowledge-bases/{knowledge_base_id}/documents`, then\nattach it to an agent through `think.knowledge`.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Customer FAQ\",\n  \"description\": \"Hours, pricing and service area for callers.\",\n  \"ai_audience\": \"public\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Knowledge base created","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Customer FAQ\",\n  \"description\": \"Hours, pricing and service area for callers.\",\n  \"ai_audience\": \"public\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_base_id\": \"9d3f6a2c-4e8b-4b1d-a7c5-2f6e9b3d8a14\",\n    \"name\": \"Customer FAQ\",\n    \"description\": \"Hours, pricing and service area for callers.\",\n    \"ai_audience\": \"public\",\n    \"status\": \"active\",\n    \"stats\": {\n      \"document_count\": 0,\n      \"ready_count\": 0,\n      \"failed_count\": 0,\n      \"chunk_count\": 0\n    },\n    \"created_at\": 1774041600000,\n    \"updated_at\": 1774041600000\n  },\n  \"meta\": {\n    \"request_id\": \"8a2f6c1e-4d9b-4e7a-b3c5-6f1d8e2a9c47\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Customer FAQ\",\n  \"description\": \"Hours, pricing and service area for callers.\",\n  \"ai_audience\": \"public\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Customer FAQ\",\n  \"description\": \"Hours, pricing and service area for callers.\",\n  \"ai_audience\": \"public\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Customer FAQ\",\n  \"description\": \"Hours, pricing and service area for callers.\",\n  \"ai_audience\": \"public\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"Customer FAQ\",\n  \"description\": \"Hours, pricing and service area for callers.\",\n  \"ai_audience\": \"public\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a knowledge base","request":{"name":"Get a knowledge base","description":{"content":"Returns one knowledge base: its name, description, audience, status and statistics.\n`ai_audience` is `public` when content may be read to customers and `internal` when it is\nfor agents that help your staff.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Knowledge base","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_base_id\": \"f7c25b81-cfb6-7398-d24f-cbc11504f962\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"ai_audience\": \"public\",\n    \"status\": \"active\",\n    \"stats\": {\n      \"document_count\": 4255,\n      \"ready_count\": 949,\n      \"failed_count\": 1798,\n      \"chunk_count\": 4540\n    },\n    \"created_at\": 5954,\n    \"updated_at\": 7842\n  },\n  \"meta\": {\n    \"request_id\": \"5ef0a9ee-a344-51f5-a332-d27c2dc5010a\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Update a knowledge base","request":{"name":"Update a knowledge base","description":{"content":"Send only the fields you want to change (this route uses POST, not PUT).","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Updated knowledge base","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_base_id\": \"f7c25b81-cfb6-7398-d24f-cbc11504f962\",\n    \"name\": \"string\",\n    \"description\": \"string\",\n    \"ai_audience\": \"public\",\n    \"status\": \"active\",\n    \"stats\": {\n      \"document_count\": 4255,\n      \"ready_count\": 949,\n      \"failed_count\": 1798,\n      \"chunk_count\": 4540\n    },\n    \"created_at\": 5954,\n    \"updated_at\": 7842\n  },\n  \"meta\": {\n    \"request_id\": \"5ef0a9ee-a344-51f5-a332-d27c2dc5010a\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"name\": \"string\",\n  \"description\": \"string\",\n  \"ai_audience\": \"public\",\n  \"status\": \"archived\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a knowledge base","request":{"name":"Delete a knowledge base","description":{"content":"Deletes the knowledge base. Remove its id from the `think.knowledge` of any agent that uses it.","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Deleted","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_base_id\": \"40d9d598-65d0-7333-121b-093bd30a3aa2\",\n    \"deleted\": false\n  },\n  \"meta\": {\n    \"request_id\": \"28f03012-87f8-e326-1c7f-8f6b2ac00e36\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Search a knowledge base","request":{"name":"Search a knowledge base","description":{"content":"Returns the passages an agent would retrieve for `query`. Use it to check that\na knowledge base answers the questions callers will ask before you attach it.\nOnly documents whose `ingest_status` is `ready` are searched.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Matching passages, best first","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"query\": \"What are your hours on Saturday?\",\n    \"results\": [\n      {\n        \"chunk_id\": \"7f4c2a9e-3b1d-4e6a-8c5f-9d2b7e1a4c36\",\n        \"knowledge_base_id\": \"9d3f6a2c-4e8b-4b1d-a7c5-2f6e9b3d8a14\",\n        \"knowledge_document_id\": \"2c7a9e4b-1d6f-4a3e-8b5c-7f2d9a6e1c83\",\n        \"chunk_index\": 0,\n        \"text\": \"Monday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\",\n        \"score\": 0.87,\n        \"heading\": \"Hours\",\n        \"section_path\": \"Hours\",\n        \"page\": null\n      }\n    ]\n  },\n  \"meta\": {\n    \"request_id\": \"1b9e5d3a-7c2f-4a8e-b6d4-2e7f1c9a5b38\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","query"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"query\": \"What are your hours on Saturday?\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List a knowledge base's documents","request":{"name":"List a knowledge base's documents","description":{"content":"Lists the documents in one knowledge base. Filter with `search` and page with `limit`\nand `offset`.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Documents","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": [\n    {\n      \"knowledge_document_id\": \"61098f60-1a9f-4a69-4c1b-d4b9932a8542\",\n      \"knowledge_base_id\": \"c11d6b7c-a275-4af8-f6c1-c4caee002f9a\",\n      \"title\": \"string\",\n      \"filename\": \"string\",\n      \"mime_type\": null,\n      \"byte_size\": null,\n      \"source\": \"string\",\n      \"ai_audience\": \"internal\",\n      \"upload_confirmed\": true,\n      \"ingest_status\": \"processing\",\n      \"ingest_error\": \"string\",\n      \"chunk_count\": 2028,\n      \"created_at\": 1669,\n      \"updated_at\": 7067\n    },\n    {\n      \"knowledge_document_id\": \"41f3d12b-f76e-37ef-94ba-dae2508f97fc\",\n      \"knowledge_base_id\": \"bd587ea1-745c-775b-1ebc-dc518386cbc3\",\n      \"title\": \"string\",\n      \"filename\": \"string\",\n      \"mime_type\": \"string\",\n      \"byte_size\": 4739,\n      \"source\": \"string\",\n      \"ai_audience\": \"public\",\n      \"upload_confirmed\": false,\n      \"ingest_status\": \"failed\",\n      \"ingest_error\": \"string\",\n      \"chunk_count\": 1829,\n      \"created_at\": 6422,\n      \"updated_at\": 1295\n    }\n  ],\n  \"meta\": {\n    \"total\": 9750,\n    \"limit\": 6069,\n    \"offset\": 6334,\n    \"request_id\": \"f5ec093c-e9d7-73b4-ef82-48dd6ecdb953\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":"Matches the title.","type":"text/plain"},"key":"search","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"25"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"offset","value":"0"}],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Add a document to a knowledge base","request":{"name":"Add a document to a knowledge base","description":{"content":"Three ways to add a document. The fields you send pick the method:\n\n- `markdown` + `title`: inline text, up to 1 MB. Answers `201` with the document.\n- `source_url`: Drop Cowboy fetches the file (up to 25 MB, public http(s) URLs\n  only). Answers `201` with the document.\n- `filename` + `mime_type` + `byte_size`: answers `201` with an upload ticket.\n  PUT the file to `upload.url` with exactly the `Content-Type` in\n  `upload.headers`, then call\n  `POST .../documents/{knowledge_document_id}/uploaded`.\n\nEvery document is processed in the background. Poll the document list until\n`ingest_status` is `ready` (or `failed`, with a reason in `ingest_error`).\nAdding a file identical to one already in the knowledge base answers `409`, with\nthe existing document's id in `details.existing_knowledge_document_id`.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Document created, or an upload ticket when you sent `filename`","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Created","code":201,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_document_id\": \"5b8e1c4f-7a2d-4f9e-b3c6-8d1a5e2f7b40\",\n    \"knowledge_document\": {\n      \"knowledge_document_id\": \"5b8e1c4f-7a2d-4f9e-b3c6-8d1a5e2f7b40\",\n      \"knowledge_base_id\": \"9d3f6a2c-4e8b-4b1d-a7c5-2f6e9b3d8a14\",\n      \"title\": \"Price list\",\n      \"filename\": \"price-list.pdf\",\n      \"mime_type\": \"application/pdf\",\n      \"byte_size\": 184320,\n      \"source\": \"upload\",\n      \"ai_audience\": \"public\",\n      \"upload_confirmed\": false,\n      \"ingest_status\": \"pending\",\n      \"ingest_error\": null,\n      \"chunk_count\": 0,\n      \"created_at\": 1774045200000,\n      \"updated_at\": 1774045200000\n    },\n    \"upload\": {\n      \"method\": \"PUT\",\n      \"url\": \"https://uploads.example.com/knowledge/price-list.pdf?signature=example-signature\",\n      \"headers\": {\n        \"Content-Type\": \"application/pdf\"\n      },\n      \"max_bytes\": 26214400\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"6d1a8f3c-2b7e-4c9d-a5f1-3e8b6c2d7a95\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request. With `source_url`, the `type` code says why the URL was\nrefused: `url-required`, `url-invalid`, `url-protocol-blocked` (not http or\nhttps), `url-credentials` (user:password in the URL), `url-private-host`\n(the host is or resolves to a private address), `url-unresolvable`, or\n`empty-file` (the URL returned nothing).","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/url-private-host\",\n  \"title\": \"Url Private Host\",\n  \"status\": 400,\n  \"detail\": \"The URL must point at a public host\",\n  \"instance\": \"/document/public/knowledge-bases/2694f968-93fd-44ca-9b92-2110ed1ee61e/documents\",\n  \"request_id\": \"fe3face6-ab9d-40e8-bf24-7d911cbf4ce8\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The same file is already in this knowledge base (`duplicate-knowledge-document`).\n`details.existing_knowledge_document_id` names it.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Content over the size limit: 1 MB for markdown, 25 MB for files\n(`payload-too-large`), or the file at `source_url` is over 25 MB\n(`url-too-large`).","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Request Entity Too Large","code":413,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`mime_type` not supported, the file extension does not match it, or `source_url` returned an unsupported type","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unsupported Media Type","code":415,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`source_url` could not be fetched (`url-fetch-failed`, including a non-2xx\nanswer from that server) or redirected too many times\n(`url-too-many-redirects`). Nothing was added.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Gateway","code":502,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Fetching `source_url` timed out (`url-timeout`). Nothing was added.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"}]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"title\": \"Hours and location\",\n  \"markdown\": \"# Hours\\n\\nMonday to Friday, 8am to 6pm. Saturday, 9am to 1pm. Closed Sunday.\\n\\n# Location\\n\\n100 Example Street, Springfield.\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Gateway Timeout","code":504,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Confirm a document upload","request":{"name":"Confirm a document upload","description":{"content":"Call after the PUT to `upload.url` succeeds. Processing starts now. Answers\n`409` if the upload was already confirmed (`already-confirmed`) or the file\nduplicates one already in the knowledge base (`duplicate-knowledge-document`),\n`413` if the stored file is over 25 MB, and `400` if no file was uploaded (PUT\nit, then confirm again).\n\nA duplicate `409` or a `413` marks the document `ingest_status: failed`, with\n`ingest_error` set to `Uploaded file exceeds the 26214400 byte limit` or\n`This document is already in this knowledge base`. PUT different bytes to\n`upload.url` (or a new one from `POST .../upload-url`) and confirm again; a\nsuccessful confirm clears `ingest_error`. Or delete the document with\n`DELETE .../documents/{knowledge_document_id}`. The other refusals\n(`already-confirmed`, no file uploaded) leave the document unchanged.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Upload confirmed","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_document_id\": \"9bc4fc18-d2e2-ff4e-8fb9-1c9850d06bcf\",\n    \"knowledge_base_id\": \"257ea9f8-f9e7-c286-5f4b-beac95165b0b\",\n    \"title\": \"string\",\n    \"filename\": \"string\",\n    \"mime_type\": null,\n    \"byte_size\": null,\n    \"source\": \"string\",\n    \"ai_audience\": \"public\",\n    \"upload_confirmed\": true,\n    \"ingest_status\": \"ready\",\n    \"ingest_error\": \"string\",\n    \"chunk_count\": 1624,\n    \"created_at\": 2755,\n    \"updated_at\": 217\n  },\n  \"meta\": {\n    \"request_id\": \"49a1776f-9902-e5cd-e3ee-256d34a5b138\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource conflict","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"A resource with this identifier already exists\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"The stored file is over 25 MB","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Request Entity Too Large","code":413,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://example.com/\",\n  \"title\": \"string\",\n  \"status\": 4998,\n  \"detail\": \"string\",\n  \"instance\": \"string\",\n  \"request_id\": \"string\",\n  \"details\": \"\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","uploaded"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Get a new document upload URL","request":{"name":"Get a new document upload URL","description":{"content":"Signs a new presigned PUT for a file upload that has not been confirmed yet:\nits `upload.url` expired (after 48 hours), or a confirm was refused and you\nwant to send different bytes. The response has the same shape as the upload\nticket from `POST .../documents`. The URL writes the same file with the same\n`Content-Type`, so PUT exactly the `upload.headers` and then confirm with\n`POST .../uploaded`.\n\nA document marked `ingest_status: failed` by a refused confirm goes back to\n`pending`, with `ingest_error` cleared. A `pending` document is not changed.\nEach call signs another URL, so retrying is safe; earlier URLs keep working\nuntil they expire.\n\nOnce an upload is confirmed its file is fixed, so this answers `409`\n(`already-confirmed`) whatever the document's `ingest_status`, and for\nmarkdown and URL documents, which are confirmed when created. Delete the\ndocument and add it again to replace it. Another account's document answers\n`404`.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"A new upload ticket","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_document_id\": \"5b8e1c4f-7a2d-4f9e-b3c6-8d1a5e2f7b40\",\n    \"knowledge_document\": {\n      \"knowledge_document_id\": \"5b8e1c4f-7a2d-4f9e-b3c6-8d1a5e2f7b40\",\n      \"knowledge_base_id\": \"9d3f6a2c-4e8b-4b1d-a7c5-2f6e9b3d8a14\",\n      \"title\": \"Price list\",\n      \"filename\": \"price-list.pdf\",\n      \"mime_type\": \"application/pdf\",\n      \"byte_size\": 184320,\n      \"source\": \"upload\",\n      \"ai_audience\": \"public\",\n      \"upload_confirmed\": false,\n      \"ingest_status\": \"pending\",\n      \"ingest_error\": null,\n      \"chunk_count\": 0,\n      \"created_at\": 1774045200000,\n      \"updated_at\": 1774045200000\n    },\n    \"upload\": {\n      \"method\": \"PUT\",\n      \"url\": \"https://uploads.example.com/knowledge/price-list.pdf?signature=example-signature\",\n      \"headers\": {\n        \"Content-Type\": \"application/pdf\"\n      },\n      \"max_bytes\": 26214400\n    }\n  },\n  \"meta\": {\n    \"request_id\": \"6d1a8f3c-2b7e-4c9d-a5f1-3e8b6c2d7a95\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource conflict","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Conflict","code":409,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/conflict\",\n  \"title\": \"Conflict\",\n  \"status\": 409,\n  \"detail\": \"A resource with this identifier already exists\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id","upload-url"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Delete a document from a knowledge base","request":{"name":"Delete a document from a knowledge base","description":{"content":"Removes one document from a knowledge base. The response confirms the\n`knowledge_document_id` that was deleted.\n","type":"text/plain"},"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id"],"host":["{{base_url}}"],"query":[],"variable":[{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}},{"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id","disabled":false,"description":{"content":"(Required) ","type":"text/plain"}}]},"header":[{"key":"Accept","value":"application/json"}],"method":"DELETE","body":{},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Deleted","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"knowledge_document_id\": \"d5a8f371-32e4-cce6-0aaf-b32825ef39d3\",\n    \"deleted\": false\n  },\n  \"meta\": {\n    \"request_id\": \"d65b5e39-5290-8913-ddbc-e27ebfdb2348\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Either the credentials lack the scope (`insufficient-scope`), or the caller is a\nsigned-in user whose role cannot use or manage AI agents (`forbidden`, with\n`detail` \"You do not have permission to use Knowledge Bases.\" on reads or\n\"You do not have permission to manage Knowledge Bases.\" on changes). Team API\nkeys are never limited by role. If the role cannot be looked up the answer is\n`500` (`server-error`) instead.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/insufficient-scope\",\n  \"title\": \"Insufficient Scope\",\n  \"status\": 403,\n  \"detail\": \"This endpoint requires one of: agents:write\",\n  \"instance\": \"/document/public/knowledge-bases\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Resource not found","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Not Found","code":404,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/not-found\",\n  \"title\": \"Not Found\",\n  \"status\": 404,\n  \"detail\": \"The requested resource was not found\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["document","public","knowledge-bases",":knowledge_base_id","documents",":knowledge_document_id"],"host":["{{base_url}}"],"query":[],"variable":[{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_base_id"},{"disabled":false,"description":{"content":"(Required) ","type":"text/plain"},"type":"any","value":"2c04af5a-fdb5-1c08-76a4-998c400201db","key":"knowledge_document_id"}]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"DELETE","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"Building Blocks","description":"Create short-lived site tokens on your server for Building Blocks widgets, and the\nroutes those widgets call with the token.\n","item":[{"name":"Create a site token","request":{"name":"Create a site token","description":{"content":"Call from your server, never the browser. Returns a short-lived JWT (up to one\nhour) that your page hands to a Building Blocks widget. `dialer:webrtc` and\n`phone:hub` tokens need BYOC turned on and a positive balance. A site token\ncannot mint another site token. `site_id`, when sent, must be a UUID, and it\nis checked before the BYOC and balance gates.\n\nEvery refusal from those checks carries a stable snake_case reason in\n`details.code`. Branch on it rather than on `type`, which stays the generic\nstatus code (`bad-request`, `payment-required`, `forbidden`):\n\n| Status | `details.code` | Meaning |\n|---|---|---|\n| 400 | `invalid_site_id` | `site_id` was sent and is not a UUID. |\n| 402 | `insufficient_balance` | No developer allotment left and no available balance. |\n| 403 | `byoc_required` | `dialer:webrtc` or `phone:hub` was requested and BYOC is off. |\n| 403 | `site_token_not_allowed` | The caller authenticated with a site token. |\n\nA `403` without `details` is an authorization failure (the key lacks\n`numbers:write`, or the signed-in user cannot edit phone numbers).\n","type":"text/plain"},"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"apikey","apikey":[{"key":"key","value":"x-key"},{"key":"value","value":"{{apiKey}}"},{"key":"in","value":"header"}]}},"response":[{"name":"Site token","originalRequest":{"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"token\": \"example-embed-token\",\n    \"expires_at\": 1774042500000,\n    \"jti\": \"1d5b9f3e-7a2c-4e8d-b6f1-3c7a9e5d2b84\",\n    \"pool_id\": \"6e1f3a5c-9b2d-4c8e-a7f1-3d5b9c2e4a61\"\n  },\n  \"meta\": {\n    \"request_id\": \"c2a6e8f4-3b9d-4c1e-8a7f-5d3b1e9c6a24\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"`site_id` is not a UUID (`details.code` `invalid_site_id`).","originalRequest":{"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/bad-request\",\n  \"title\": \"Bad Request\",\n  \"status\": 400,\n  \"detail\": \"site_id must be a UUID\",\n  \"instance\": \"/phone/public/embed/token\",\n  \"request_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"details\": {\n    \"code\": \"invalid_site_id\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"No developer allotment and no available balance for a dialer or phone-hub token (`details.code` `insufficient_balance`).","originalRequest":{"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/payment-required\",\n  \"title\": \"Payment Required\",\n  \"status\": 402,\n  \"detail\": \"Insufficient balance for embed dialer usage.\",\n  \"instance\": \"/phone/public/embed/token\",\n  \"request_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"details\": {\n    \"code\": \"insufficient_balance\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"BYOC is off for dialer or phone-hub scopes (`byoc_required`), or the caller is\na site token (`site_token_not_allowed`). Without `details`, the key or user is\nnot allowed to mint.","originalRequest":{"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Building Blocks dialer requires BYOC. Enable BYOC on your team to mint embed tokens.\",\n  \"instance\": \"/phone/public/embed/token\",\n  \"request_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"details\": {\n    \"code\": \"byoc_required\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","public","embed","token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"site_id\": \"9d3f7b1e-2c8a-4f5d-b6e9-4a1c7d3f8b25\",\n  \"sub\": \"agent-42\",\n  \"scope\": \"dialer:webrtc\",\n  \"ttl_seconds\": 900\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Create a playground token","request":{"name":"Create a playground token","description":{"content":"Returns a token, valid for 10 minutes, for trying Building Blocks widgets in the dashboard. Authenticate with your dashboard session token, not `x-key` and `x-secret`. The token carries `scope: [\"dialer:webrtc\"]`, your `team_id` and your default `pool_id`. Never put the token in a URL.\n","type":"text/plain"},"url":{"path":["phone","embed","playground-token"],"host":["{{app_api_v2_base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"POST","body":{},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{bearerToken}}"}]}},"response":[{"name":"Playground token","originalRequest":{"url":{"path":["phone","embed","playground-token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"token\": \"example-playground-token\",\n  \"expires_at\": 1774041600000,\n  \"jti\": \"d1f3a8e2-7c4b-4f9a-9d22-9c1e2f3a4b5c\",\n  \"pool_id\": \"8f3e1a9c-2d4b-4e7a-9c1f-5b6a7c8d9e0f\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","embed","playground-token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your billing status blocks the request. The body is `{message, detail}`, not\nproblem details.","originalRequest":{"url":{"path":["phone","embed","playground-token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{}},"status":"Payment Required","code":402,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"string\",\n  \"detail\": {}\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["phone","embed","playground-token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","embed","playground-token"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Record consent from a widget","request":{"name":"Record consent from a widget","description":{"content":"Records a visitor's consent on your site, together with the page's `Origin`, and returns the `consent_id` that widget texts and `POST /phone/embed/callback` need. Send the site token from `POST /phone/public/embed/token` as `Authorization: Bearer`. Never put the token in a URL.\n","type":"text/plain"},"url":{"path":["phone","embed","consent"],"host":["{{app_api_v2_base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"text\": \"By checking this box you agree to receive calls and texts.\",\n  \"contact_phone\": \"+12125550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{bearerToken}}"}]}},"response":[{"name":"Consent captured","originalRequest":{"url":{"path":["phone","embed","consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"text\": \"By checking this box you agree to receive calls and texts.\",\n  \"contact_phone\": \"+12125550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"consent_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","embed","consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"text\": \"By checking this box you agree to receive calls and texts.\",\n  \"contact_phone\": \"+12125550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","embed","consent"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"text\": \"By checking this box you agree to receive calls and texts.\",\n  \"contact_phone\": \"+12125550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"Request a callback from a widget","request":{"name":"Request a callback from a widget","description":{"content":"Calls the visitor back. Send the site token as `Authorization: Bearer`, never in a URL, and the `consent_id` from `POST /phone/embed/consent` or the `<dc-consent>` widget. If your account has turned on `POST /register/public/building-blocks/contact-consent`, you can send `contact_id` instead and the contact's granted calling consent is used; a US number without either is refused with `403` and `consent_required`.\n","type":"text/plain"},"url":{"path":["phone","embed","callback"],"host":["{{app_api_v2_base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+12125550120\",\n  \"consent_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"contact_id\": \"7c8d9e0f-1a2b-4c3d-8e9f-0a1b2c3d4e5f\",\n  \"from\": \"+14155550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{bearerToken}}"}]}},"response":[{"name":"Callback requested","originalRequest":{"url":{"path":["phone","embed","callback"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+12125550120\",\n  \"consent_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"contact_id\": \"7c8d9e0f-1a2b-4c3d-8e9f-0a1b2c3d4e5f\",\n  \"from\": \"+14155550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"OK","code":200,"header":[],"cookie":[],"_postman_previewlanguage":"text"},{"name":"Invalid request parameters. The code in `type` depends on the route, for example\n`validation-error`, `bad-request`, `invalid-request`, `invalid-parameters` or\n`missing-parameters`; branch on `status`.","originalRequest":{"url":{"path":["phone","embed","callback"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+12125550120\",\n  \"consent_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"contact_id\": \"7c8d9e0f-1a2b-4c3d-8e9f-0a1b2c3d4e5f\",\n  \"from\": \"+14155550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Bad Request","code":400,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/validation-error\",\n  \"title\": \"Validation Error\",\n  \"status\": 400,\n  \"detail\": \"Request validation failed\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","embed","callback"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+12125550120\",\n  \"consent_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"contact_id\": \"7c8d9e0f-1a2b-4c3d-8e9f-0a1b2c3d4e5f\",\n  \"from\": \"+14155550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","embed","callback"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Content-Type","value":"application/json"},{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"POST","body":{"mode":"raw","raw":"{\n  \"to\": \"+12125550120\",\n  \"consent_id\": \"5a4b3c2d-1e0f-4a9b-8c7d-6e5f4a3b2c1d\",\n  \"contact_id\": \"7c8d9e0f-1a2b-4c3d-8e9f-0a1b2c3d4e5f\",\n  \"from\": \"+14155550120\"\n}","options":{"raw":{"headerFamily":"json","language":"json"}}}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}},{"name":"List a site's Inbox Tasks","request":{"name":"List a site's Inbox Tasks","description":{"content":"Lists the Inbox Tasks for the site named in the site token. Send the token as `Authorization: Bearer`, never in a URL. The site always comes from the token, so a `site_id` query parameter is ignored.\n","type":"text/plain"},"url":{"path":["phone","embed","inbox"],"host":["{{app_api_v2_base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of embed,direct,portal,api)","type":"text/plain"},"key":"origin_type","value":"embed"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"origin_component","value":"chat"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"71"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"cursor","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"open"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"}],"method":"GET","body":{},"auth":{"type":"bearer","bearer":[{"key":"token","value":"{{bearerToken}}"}]}},"response":[{"name":"Site-scoped inbox tasks","originalRequest":{"url":{"path":["phone","embed","inbox"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of embed,direct,portal,api)","type":"text/plain"},"key":"origin_type","value":"embed"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"origin_component","value":"chat"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"71"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"cursor","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"open"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"data\": {\n    \"total\": 1753,\n    \"next_cursor\": \"string\"\n  }\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Authentication required or invalid credentials","originalRequest":{"url":{"path":["phone","embed","inbox"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of embed,direct,portal,api)","type":"text/plain"},"key":"origin_type","value":"embed"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"origin_component","value":"chat"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"71"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"cursor","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"open"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"GET","body":{}},"status":"Unauthorized","code":401,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/unauthorized\",\n  \"title\": \"Unauthorized\",\n  \"status\": 401,\n  \"detail\": \"Invalid API key or secret\",\n  \"instance\": \"/contact/public/contacts\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Insufficient permissions","originalRequest":{"url":{"path":["phone","embed","inbox"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of embed,direct,portal,api)","type":"text/plain"},"key":"origin_type","value":"embed"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"origin_component","value":"chat"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"71"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"cursor","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"open"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"GET","body":{}},"status":"Forbidden","code":403,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"type\": \"https://api-v2.dropcowboy.com/errors/forbidden\",\n  \"title\": \"Forbidden\",\n  \"status\": 403,\n  \"detail\": \"Insufficient permissions for this operation\"\n}","cookie":[],"_postman_previewlanguage":"json"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["phone","embed","inbox"],"host":["{{base_url}}"],"query":[{"disabled":false,"description":{"content":" (This can only be one of embed,direct,portal,api)","type":"text/plain"},"key":"origin_type","value":"embed"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"origin_component","value":"chat"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"limit","value":"71"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"cursor","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"status","value":"open"}],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: bearer","type":"text/plain"},"key":"Authorization","value":"Bearer <token>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]},{"name":"OpenAPI document","description":"This document, served with no credentials.","item":[{"name":"Get the OpenAPI document","request":{"name":"Get the OpenAPI document","description":{"content":"The OpenAPI 3.1 document for this API. No credentials. Responses carry\n`ETag` and `Cache-Control: public, max-age=300`. A matching `If-None-Match`\nreturns `304` with an empty body. The same file is published at\n`https://www.dropcowboy.com/openapi.yaml`.\n","type":"text/plain"},"url":{"path":["openapi.yaml"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/yaml"}],"method":"GET","body":{},"auth":null},"response":[{"name":"This document.","originalRequest":{"url":{"path":["openapi.yaml"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/yaml"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"OK","code":200,"header":[{"key":"Content-Type","value":"application/yaml"},{"disabled":false,"description":{"content":"SHA-256 of the document, a quoted strong validator.","type":"text/plain"},"key":"ETag","value":"string"},{"disabled":false,"description":{"content":"","type":"text/plain"},"key":"Cache-Control","value":"string"}],"body":"string","cookie":[],"_postman_previewlanguage":"text"},{"name":"The document has not changed since the `If-None-Match` value.","originalRequest":{"url":{"path":["openapi.yaml"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Not Modified","code":304,"header":[],"cookie":[],"_postman_previewlanguage":"text"},{"name":"Your account went over the rate limit of 1,500 requests per second, with bursts\nto 2,000, across all routes. Retry with exponential backoff and jitter.","originalRequest":{"url":{"path":["openapi.yaml"],"host":["{{base_url}}"],"query":[],"variable":[]},"header":[{"key":"Accept","value":"application/json"},{"description":{"content":"Added as a part of security scheme: apikey","type":"text/plain"},"key":"x-key","value":"<API Key>"}],"method":"GET","body":{}},"status":"Too Many Requests","code":429,"header":[{"key":"Content-Type","value":"application/json"}],"body":"{\n  \"message\": \"Too Many Requests\"\n}","cookie":[],"_postman_previewlanguage":"json"}],"event":[],"protocolProfileBehavior":{"disableBodyPruning":true}}]}],"auth":{"type":"noauth"},"event":[{"listen":"prerequest","script":{"type":"text/javascript","packages":{},"exec":["// DropCowboy v2 Public API requires both x-key and x-secret headers.","// Postman's built-in API Key auth type only supports one header, so","// both are injected here from the api_key / api_secret environment","// variables instead of collection-level \"auth\".","pm.request.headers.upsert({ key: 'x-key', value: pm.environment.get('api_key') || pm.collectionVariables.get('api_key') });","pm.request.headers.upsert({ key: 'x-secret', value: pm.environment.get('api_secret') || pm.collectionVariables.get('api_secret') });"]}}],"variable":[{"key":"base_url","value":"https://api-v2.dropcowboy.com"},{"key":"app_api_v2_base_url","value":"https://app-api-v2.dropcowboy.com"}],"info":{"name":"Drop Cowboy Public API","schema":"https://schema.getpostman.com/json/collection/v2.1.0/collection.json","description":{"content":"The Drop Cowboy® API sends ringless voicemail, texts, email, voice broadcasts and\nAI calls, and manages the contacts, campaigns, phone numbers and AI agents behind\nthem. The base URL is `https://api-v2.dropcowboy.com`.\n\n## Authentication\n\nSend your API key and secret as the `x-key` and `x-secret` headers. You can use an\nOAuth 2.0 client-credentials token from `https://login.dropcowboy.com/oauth/token`\ninstead, as `Authorization: Bearer`; each operation lists the scope it needs.\n\n## Responses and errors\n\nSuccessful responses are `{\"data\": ..., \"meta\": {\"request_id\": ...}}`, and errors\nare RFC 9457 problem details with the same `request_id`. Branch on the HTTP status,\nand retry `429` and `5xx` with exponential backoff and jitter.\n\n## Asynchronous sends\n\n`POST /rvm`, `/sms`, `/voice-broadcast` and `/ai-broadcast` answer `202` and check\nyour credentials and payload afterwards, so a `202` doesn't mean the send will\nsucceed. The result arrives on your `callback_url` and on the status webhooks.\n\n## Guides\n\n- [Send lifecycle](https://www.dropcowboy.com/developers/api/send-lifecycle)\n- [Webhooks](https://www.dropcowboy.com/developers/api/webhooks)\n- [Outcomes](https://www.dropcowboy.com/developers/api/outcomes)\n- [Troubleshooting](https://www.dropcowboy.com/developers/api/troubleshooting)\n- [Responses, errors and limits](https://www.dropcowboy.com/developers/api/errors-and-limits)\n\n\nContact Support:\n Name: Drop Cowboy API Support\n Email: support@dropcowboy.com","type":"text/plain"}}}