{"info":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","description":"<html><head></head><body><h2 id=\"endpoint\">Endpoint</h2>\n<p>The API is available at <code>https://headshots.snapbar.com/api/v2</code></p>\n<h2 id=\"authentication-basics\">Authentication Basics</h2>\n<p>To access the API, you must first obtain an API token. This can be accomplished through the admin portal under <strong>Account &gt; Developers &gt; Create Token</strong>.</p>\n<p>These tokens never expire; however, we recommend refreshing tokens every six months.</p>\n<p>Include this token as a Bearer token in the <code>Authorization</code> header for any authenticated request.</p>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer your-api-token\n\n</code></pre><h2 id=\"webhooks\">Webhooks</h2>\n<p>You can subscribe to webhook events that allow your server to receive updates as soon as they occur. Webhooks can be created in your admin portal under <a href=\"https://portal.headshots.studio/account/developers\">Account &gt; Developers</a></p>\n<h3 id=\"topics\">Topics</h3>\n<p>The only currently supported topic is <code>SUBMISSION_COMPLETE</code>, which occurs when a submission reaches the <code>ACCEPTED</code> state and AI enhancement has been completed.</p>\n<h3 id=\"authenticity-validation\">Authenticity Validation</h3>\n<p>When an event occurs, we send a <code>POST</code> request to the URL you provided when creating the webhook. This request includes the <code>X-Authenticity-Token</code> header.</p>\n<p>The value of this header is a signed JWT, generated using the secret provided in the admin portal. Although not required, we strongly recommend validating this token before processing the request, to prevent malicious requests from reaching your endpoint. <a href=\"https://www.jwt.io/introduction#what-is-json-web-token-structure\">Learn more</a></p>\n<img src=\"https://content.pstmn.io/84f78f12-0bdc-48ec-adea-365b1d30fd29/UG9ydGFsIERldiAyMDI1LTA4LTE0IGF0IDEwLjMwLjAxIEFNLmpwZw==\">\n\n<h2 id=\"request-payload\">Request Payload</h2>\n<p>Each webhook request contains a JSON body with the event details.</p>\n<p>The easiest way to inspect the payload is to send a test request, which uses the most recent submission from its source.</p>\n<h2 id=\"studio-id\">Studio ID</h2>\n<p>Many resources require a Studio ID. You can find a Studio's ID under <a href=\"https://portal.headshots.studio/studio/settings/other\">Settings &gt; Other</a></p>\n<h2 id=\"pagination\">Pagination</h2>\n<p>Resources that require pagination use <a href=\"https://www.merge.dev/blog/cursor-pagination\">cursor-based pagination</a>. Each page response returns a <code>next_cursor</code> (if available), which you then pass to next request as the <code>cursor</code> param. Note that you must maintain the same <code>limit</code> param upon each request for this to work properly.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"843214","collectionId":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","publishedId":"2sB3dMxAmX","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-12-02T19:33:54.000Z"},"item":[{"name":"Contacts","item":[{"name":"List Contacts","id":"538170ec-7de4-48ef-aedb-3ae9199fa387","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v2/contacts","description":"<p>Retrieve a paginated list of contacts with optional filtering by studio or contact list. Uses cursor-based pagination.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","contacts"],"host":["https://headshots.snapbar.com"],"query":[{"disabled":true,"description":{"content":"<p>Filter contacts by studio ID (optional)</p>\n","type":"text/plain"},"key":"studio_id","value":"{{studio_id}}"},{"disabled":true,"description":{"content":"<p>Filter by contact email address (optional)</p>\n","type":"text/plain"},"key":"email","value":"{{email}}"},{"disabled":true,"description":{"content":"<p>Filter contacts by contact list ID (optional)</p>\n","type":"text/plain"},"key":"contact_list_id","value":"{{contact_list_id}}"},{"disabled":true,"description":{"content":"<p>Cursor for pagination (optional)</p>\n","type":"text/plain"},"key":"cursor","value":"{{cursor}}"},{"disabled":true,"description":{"content":"<p>Number of contacts to return (default: 25, max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"{{limit}}"},{"disabled":true,"description":{"content":"<p>Filter by custom attributes (optional, case sensitive)</p>\n","type":"text/plain"},"key":"custom_attributes[example_1]","value":"Red"},{"disabled":true,"description":{"content":"<p>Filter by custom attributes (optional, case sensitive)</p>\n","type":"text/plain"},"key":"custom_attributes[example_2]","value":"Blue"},{"disabled":true,"description":{"content":"<p>Filter contacts created after date ISO format (optional)</p>\n","type":"text/plain"},"key":"created_at_min","value":"{{created_at_min}}"},{"disabled":true,"description":{"content":"<p>Filter contacts created before date ISO format (optional)</p>\n","type":"text/plain"},"key":"created_at_max","value":"{{created_at_max}}"}],"variable":[]}},"response":[{"id":"5d22cc34-08e0-457c-a3f4-ed18b56c83cb","name":"Successful Response","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":{"raw":"https://headshots.snapbar.com/api/v1/contacts?limit=10","host":["https://headshots.snapbar.com"],"path":["api","v1","contacts"],"query":[{"key":"limit","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"contacts\": [\n    {\n      \"id\": \"64f1a2b3c4d5e6f7g8h9i0j1\",\n      \"email\": \"john.doe@example.com\",\n      \"first_name\": \"John\",\n      \"last_name\": \"Doe\",\n      \"phone\": \"+1234567890\",\n      \"custom_attributes\": {\n        \"company\": \"Acme Corp\",\n        \"role\": \"Manager\"\n      },\n      \"submissions_count\": 5,\n      \"created_at\": \"2023-09-01T10:00:00.000Z\",\n      \"updated_at\": \"2023-09-15T14:30:00.000Z\",\n      \"invited_at\": \"2023-09-01T10:00:00.000Z\"\n    }\n  ],\n  \"page_info\": {\n    \"has_next\": true,\n    \"next_cursor\": \"64f1a2b3c4d5e6f7g8h9i0j2\",\n    \"count\": 10,\n    \"limit\": 10\n  }\n}"},{"id":"4a914fb9-4b56-475c-8c7f-9d2bfc234b62","name":"Studio Not Found","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":{"raw":"https://headshots.snapbar.com/api/v1/contacts?studio_id=invalid_id","host":["https://headshots.snapbar.com"],"path":["api","v1","contacts"],"query":[{"key":"studio_id","value":"invalid_id"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"Studio not found\"\n}"},{"id":"20031231-507e-47f3-b8fb-4b105a7ae758","name":"Custom Attributes Filter","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"},{"key":"Content-Type","value":"application/json"}],"url":{"raw":"https://headshots.snapbar.com/api/v2/contacts?custom_attributes[example_1]=Red&custom_attributes[example_2]=Blue","host":["https://headshots.snapbar.com"],"path":["api","v2","contacts"],"query":[{"key":"studio_id","value":"{{studio_id}}","description":"Filter contacts by studio ID (optional)","disabled":true},{"key":"contact_list_id","value":"{{contact_list_id}}","description":"Filter contacts by contact list ID (optional)","disabled":true},{"key":"cursor","value":"{{cursor}}","description":"Cursor for pagination (optional)","disabled":true},{"key":"limit","value":"{{limit}}","description":"Number of contacts to return (default: 25, max: 100)","disabled":true},{"key":"custom_attributes[example_1]","value":"Red","description":"Filter by custom attributes (case sensitive)"},{"key":"custom_attributes[example_2]","value":"Blue","description":"Filter by custom attributes (case sensitive)"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"vary","value":"Accept"},{"key":"etag","value":"W/\"90ca58715d7b344bc0bbc29dfbbb083c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"content-security-policy","value":"default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src 'self' https: blob: 'nonce-WQS87C2i/CeL3hdKB5f1Xg=='; style-src 'self' https: 'unsafe-inline'"},{"key":"x-request-id","value":"875a26b4-77c7-4b27-8bd1-76825d3f92cf"},{"key":"x-runtime","value":"0.026181"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"Content-Length","value":"459"},{"key":"Date","value":"Thu, 04 Dec 2025 18:08:21 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"contacts\": [\n        {\n            \"id\": \"6931cc80f299c0770db44e2e\",\n            \"email\": \"john@example.com\",\n            \"first_name\": \"John\",\n            \"last_name\": \"Doe\",\n            \"phone\": \"+4153156485\",\n            \"custom_attributes\": {\n                \"Bingo\": \"\",\n                \"Department\": \"\",\n                \"EmployeeID\": \"\",\n                \"HEY\": \"\",\n                \"example_1\": \"Red\",\n                \"example_2\": \"Blue\"\n            },\n            \"submissions_count\": 0,\n            \"contact_list_ids\": [],\n            \"created_at\": \"2025-12-04T18:01:36.682Z\",\n            \"updated_at\": \"2025-12-04T18:06:28.944Z\",\n            \"invited_at\": null\n        }\n    ],\n    \"page_info\": {\n        \"has_next\": false,\n        \"next_cursor\": null,\n        \"count\": 1,\n        \"limit\": 25\n    }\n}"}],"_postman_id":"538170ec-7de4-48ef-aedb-3ae9199fa387"},{"name":"Create Contact","id":"414d5003-1ea4-421f-85bc-aa44e725c4d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"first_name\": \"{{ first_name }}\",\n    \"last_name\": \"{{ last_name }}\",\n    \"email\": \"{{ email }}\",\n    \"phone\": \"{{ phone }}\",\n    \"studio_ids\": [\"{{ studio_id}} \"],\n    \"list_ids\": [],\n    \"custom_attributes\": {\n        \"example_1\": \"example\",\n        \"example_2\": \"example\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/contacts","description":"<p>Create a new contact associate with one or more studios</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","contacts"],"host":["https://headshots.snapbar.com"],"query":[],"variable":[]}},"response":[{"id":"52ac7077-007a-469b-8054-ad78e08200db","name":"Successful Response","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john@example.com\",\n    \"phone\": \"+4153156485\",\n    \"studio_ids\": [\"{{studio_id}}\"],\n    \"list_ids\": [],\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/contacts"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"vary","value":"Accept"},{"key":"etag","value":"W/\"69f867db46d0ad118c5a7186ba7a0f1c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"content-security-policy","value":"default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src 'self' https: blob: 'nonce-5bV5dMD26GtMFNEshjRKjA=='; style-src 'self' https: 'unsafe-inline'"},{"key":"x-request-id","value":"0576959c-b4ab-4ae5-b96a-19c7e1d008b7"},{"key":"x-runtime","value":"0.376890"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"Content-Length","value":"321"},{"key":"Date","value":"Thu, 04 Dec 2025 18:01:36 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"6931cc80f299c0770db44e2e\",\n    \"email\": \"john@example.com\",\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"phone\": \"+4153156485\",\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    },\n    \"submissions_count\": 0,\n    \"contact_list_ids\": [],\n    \"created_at\": \"2025-12-04T18:01:36.682Z\",\n    \"updated_at\": \"2025-12-04T18:01:36.682Z\",\n    \"invited_at\": null\n}"},{"id":"063e7b55-f81a-493b-a555-5593beea3cfc","name":"Studio ID is required","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john@example.com\",\n    \"phone\": \"+4153156485\",\n    \"studio_ids\": [],\n    \"list_ids\": [],\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/contacts"},"status":"unknown","code":422,"_postman_previewlanguage":null,"header":[{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"vary","value":"Accept"},{"key":"cache-control","value":"no-cache"},{"key":"content-security-policy","value":"default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src 'self' https: blob: 'nonce-R7ge8sNqOczgIqXV7VSsKw=='; style-src 'self' https: 'unsafe-inline'"},{"key":"x-request-id","value":"e34f5886-da80-425f-b7a4-498e70488315"},{"key":"x-runtime","value":"0.020960"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"Content-Length","value":"43"},{"key":"Date","value":"Thu, 04 Dec 2025 18:03:21 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"At least one studio is required\"\n}"},{"id":"332970d2-0649-4aaf-ad46-60640f56db13","name":"Email must be unique","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john@example.com\",\n    \"phone\": \"+4153156485\",\n    \"studio_ids\": [\"{{studio_id}}\"],\n    \"list_ids\": [],\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/contacts"},"status":"unknown","code":422,"_postman_previewlanguage":null,"header":[{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"vary","value":"Accept"},{"key":"cache-control","value":"no-cache"},{"key":"content-security-policy","value":"default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src 'self' https: blob: 'nonce-qj38qGfwpe9RLuGtqr0BdQ=='; style-src 'self' https: 'unsafe-inline'"},{"key":"x-request-id","value":"e4991560-c244-4668-96c0-081a50f5a854"},{"key":"x-runtime","value":"0.138518"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"Content-Length","value":"79"},{"key":"Date","value":"Thu, 04 Dec 2025 18:04:04 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Failed to create contact\",\n    \"details\": [\n        \"Email has already been taken\"\n    ]\n}"}],"_postman_id":"414d5003-1ea4-421f-85bc-aa44e725c4d6"},{"name":"Update Contact","id":"4cb5c332-f725-4405-b4df-a368b8470baf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john@example.com\",\n    \"phone\": \"+4153156485\",\n    \"studio_ids\": [\"{{studio_id}}\"],\n    \"list_ids\": [],\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/contacts/{{contact_id}}","description":"<p>Update details for a contact</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","contacts","{{contact_id}}"],"host":["https://headshots.snapbar.com"],"query":[],"variable":[]}},"response":[{"id":"9a58b321-f804-415a-9087-dcef28127415","name":"Successful Response","originalRequest":{"method":"PUT","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john@example.com\",\n    \"phone\": \"+4153156485\",\n    \"studio_ids\": [\"{{studio_id}}\"],\n    \"list_ids\": [],\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/contacts/{{contact_id}}"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"x-frame-options","value":"SAMEORIGIN"},{"key":"x-xss-protection","value":"1; mode=block"},{"key":"x-content-type-options","value":"nosniff"},{"key":"x-download-options","value":"noopen"},{"key":"x-permitted-cross-domain-policies","value":"none"},{"key":"referrer-policy","value":"strict-origin-when-cross-origin"},{"key":"content-type","value":"application/json; charset=utf-8"},{"key":"vary","value":"Accept"},{"key":"etag","value":"W/\"69f867db46d0ad118c5a7186ba7a0f1c\""},{"key":"cache-control","value":"max-age=0, private, must-revalidate"},{"key":"content-security-policy","value":"default-src 'self' https:; font-src 'self' https: data:; img-src 'self' https: data:; object-src 'none'; script-src 'self' https: blob: 'nonce-9pA4sLWbfzACULeYvhY2xg=='; style-src 'self' https: 'unsafe-inline'"},{"key":"x-request-id","value":"45d5b5af-ede4-4588-82d5-3718ceeeb1b4"},{"key":"x-runtime","value":"0.127180"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"Content-Length","value":"321"},{"key":"Date","value":"Thu, 04 Dec 2025 18:02:36 GMT"},{"key":"Via","value":"1.1 google"},{"key":"Alt-Svc","value":"h3=\":443\"; ma=2592000,h3-29=\":443\"; ma=2592000"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": \"6931cc80f299c0770db44e2e\",\n    \"email\": \"john@example.com\",\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"phone\": \"+4153156485\",\n    \"custom_attributes\": {\n        \"example_1\": \"Red\",\n        \"example_2\": \"Blue\"\n    },\n    \"submissions_count\": 0,\n    \"contact_list_ids\": [],\n    \"created_at\": \"2025-12-04T18:01:36.682Z\",\n    \"updated_at\": \"2025-12-04T18:01:36.682Z\",\n    \"invited_at\": null\n}"}],"_postman_id":"4cb5c332-f725-4405-b4df-a368b8470baf"},{"name":"Get Contact","id":"7c705da3-4343-4d81-b455-f9ef918f14ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v2/contacts/{{contact_id}}","description":"<p>Retrieve detailed information about a specific contact by ID.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","contacts","{{contact_id}}"],"host":["https://headshots.snapbar.com"],"query":[],"variable":[]}},"response":[{"id":"72801217-b7dc-4f00-8a78-4d1a7e360989","name":"Successful Response","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"https://headshots.snapbar.com/api/v1/contacts/64f1a2b3c4d5e6f7g8h9i0j1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"64f1a2b3c4d5e6f7g8h9i0j1\",\n  \"email\": \"john.doe@example.com\",\n  \"first_name\": \"John\",\n  \"last_name\": \"Doe\",\n  \"phone\": \"+1234567890\",\n  \"custom_attributes\": {\n    \"company\": \"Acme Corp\",\n    \"role\": \"Manager\"\n  },\n  \"submissions_count\": 5,\n  \"created_at\": \"2023-09-01T10:00:00.000Z\",\n  \"updated_at\": \"2023-09-15T14:30:00.000Z\",\n  \"invited_at\": \"2023-09-01T10:00:00.000Z\"\n}"},{"id":"0048d792-72a2-4ace-bfdb-c42ffbf27556","name":"Contact Not Found","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"https://headshots.snapbar.com/api/v1/contacts/invalid_id"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"Contact not found\"\n}"}],"_postman_id":"7c705da3-4343-4d81-b455-f9ef918f14ae"}],"id":"e34df486-7312-47ec-86bc-6c77b21d67ed","description":"<p>Manage contacts with pagination, filtering by studio and contact lists</p>\n","_postman_id":"e34df486-7312-47ec-86bc-6c77b21d67ed","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}}},{"name":"Submissions","item":[{"name":"List Submissions","id":"11d2ffea-37fa-415f-a420-b761f81da4f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v2/submissions","description":"<p>Retrieve a paginated list of submissions with optional filtering by studio, contact, or state. Uses cursor-based pagination.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","submissions"],"host":["https://headshots.snapbar.com"],"query":[{"disabled":true,"description":{"content":"<p>Filter submissions by studio ID (optional)</p>\n","type":"text/plain"},"key":"studio_id","value":"{{studio_id}}"},{"disabled":true,"description":{"content":"<p>Filter submissions by contact email (optonal)</p>\n","type":"text/plain"},"key":"contact_email","value":"{{email}}"},{"disabled":true,"description":{"content":"<p>Filter submissions by contact ID (optional)</p>\n","type":"text/plain"},"key":"contact_id","value":"{{contact_id}}"},{"disabled":true,"description":{"content":"<p>Filter submissions by state: REVIEW, ACCEPTED, REJECTED (optional)</p>\n","type":"text/plain"},"key":"state","value":"{{state}}"},{"disabled":true,"description":{"content":"<p>Cursor for pagination (optional)</p>\n","type":"text/plain"},"key":"cursor","value":"{{cursor}}"},{"disabled":true,"description":{"content":"<p>Number of submissions to return (default: 25, max: 100)</p>\n","type":"text/plain"},"key":"limit","value":"{{limit}}"},{"disabled":true,"description":{"content":"<p>Filter submitted after date ISO format (optional)</p>\n","type":"text/plain"},"key":"submitted_at_min","value":"{{submitted_at_min}}"},{"disabled":true,"description":{"content":"<p>Filter submitted before date ISO format (optional)</p>\n","type":"text/plain"},"key":"submitted_at_max","value":"{{submitted_at_max}}"}],"variable":[]}},"response":[{"id":"be1640d5-e70a-497b-b273-f738d3913ec3","name":"Successful Response","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":{"raw":"https://headshots.snapbar.com/api/v1/submissions?state=REVIEW&limit=5","host":["https://headshots.snapbar.com"],"path":["api","v1","submissions"],"query":[{"key":"state","value":"REVIEW"},{"key":"limit","value":"5"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"submissions\": [\n    {\n      \"id\": \"64f1a2b3c4d5e6f7g8h9i0j1\",\n      \"email\": \"john.doe@example.com\",\n      \"state\": \"REVIEW\",\n      \"created_at\": \"2023-09-01T10:00:00.000Z\",\n      \"updated_at\": \"2023-09-15T14:30:00.000Z\",\n      \"submitted_at\": \"2023-09-01T10:00:00.000Z\",\n      \"studio_id\": \"64f1a2b3c4d5e6f7g8h9i0j2\",\n      \"photos\": [\n        {\n          \"name\": \"Portrait - Standard Edit\",\n          \"enhancement_status\": \"ENHANCED\",\n          \"height\": 1080,\n          \"width\": 1920,\n          \"temporary_download_url\": \"https://example.com/download/photo1.jpg\"\n        }\n      ],\n      \"contact\": {\n        \"id\": \"64f1a2b3c4d5e6f7g8h9i0j3\",\n        \"created_at\": \"2023-08-01T09:00:00.000Z\",\n        \"updated_at\": \"2023-09-01T10:00:00.000Z\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"email\": \"john.doe@example.com\",\n        \"phone\": \"+1234567890\",\n        \"custom_attributes\": {\n          \"company\": \"Acme Corp\"\n        }\n      }\n    }\n  ],\n  \"page_info\": {\n    \"has_next\": true,\n    \"next_cursor\": \"64f1a2b3c4d5e6f7g8h9i0j4\",\n    \"count\": 5,\n    \"limit\": 5\n  }\n}"},{"id":"ffbbfbaa-2573-48ac-9ff9-43a0cf6c8748","name":"Invalid State","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":{"raw":"https://headshots.snapbar.com/api/v1/submissions?state=INVALID_STATE","host":["https://headshots.snapbar.com"],"path":["api","v1","submissions"],"query":[{"key":"state","value":"INVALID_STATE"}]}},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"'INVALID_STATE' is not a valid state. Valid states are: REVIEW, ACCEPTED, REJECTED\"\n}"}],"_postman_id":"11d2ffea-37fa-415f-a420-b761f81da4f6"},{"name":"Get Submission","id":"355f319a-bb55-4173-a9cc-91d537f59d41","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v2/submissions/{{submission_id}}","description":"<p>Retrieve detailed information about a specific submission by ID, including photos and contact details.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","submissions","{{submission_id}}"],"host":["https://headshots.snapbar.com"],"query":[],"variable":[]}},"response":[{"id":"896ddd22-d576-4fc0-90e3-de5932f8bbd9","name":"Successful Response","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"https://headshots.snapbar.com/api/v1/submissions/64f1a2b3c4d5e6f7g8h9i0j1"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"id\": \"64f1a2b3c4d5e6f7g8h9i0j1\",\n  \"email\": \"john.doe@example.com\",\n  \"state\": \"ACCEPTED\",\n  \"created_at\": \"2023-09-01T10:00:00.000Z\",\n  \"updated_at\": \"2023-09-15T14:30:00.000Z\",\n  \"submitted_at\": \"2023-09-01T10:00:00.000Z\",\n  \"studio_id\": \"64f1a2b3c4d5e6f7g8h9i0j2\",\n  \"photos\": [\n    {\n      \"name\": \"Portrait - Standard Edit\",\n      \"enhancement_status\": \"ENHANCED\",\n      \"height\": 1080,\n      \"width\": 1920,\n      \"temporary_download_url\": \"https://example.com/download/photo1.jpg\"\n    },\n    {\n      \"name\": \"Portrait - Premium Edit\",\n      \"enhancement_status\": \"ENHANCED\",\n      \"height\": 2160,\n      \"width\": 3840,\n      \"temporary_download_url\": \"https://example.com/download/photo2.jpg\"\n    }\n  ],\n  \"contact\": {\n    \"id\": \"64f1a2b3c4d5e6f7g8h9i0j3\",\n    \"created_at\": \"2023-08-01T09:00:00.000Z\",\n    \"updated_at\": \"2023-09-01T10:00:00.000Z\",\n    \"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"phone\": \"+1234567890\",\n    \"custom_attributes\": {\n      \"company\": \"Acme Corp\",\n      \"role\": \"Manager\"\n    }\n  }\n}"},{"id":"cdbea798-b0aa-4afe-ab99-c0489e757ce7","name":"Submission Not Found","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}"}],"url":"https://headshots.snapbar.com/api/v1/submissions/invalid_id"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"Submission not found\"\n}"}],"_postman_id":"355f319a-bb55-4173-a9cc-91d537f59d41"}],"id":"701c68c6-6cb2-46c7-8900-37c9ee00e99f","description":"<p>Manage photo submissions with filtering by studio, contact, and state</p>\n","_postman_id":"701c68c6-6cb2-46c7-8900-37c9ee00e99f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}}},{"name":"Studio Sessions","item":[{"name":"Create Studio Session","id":"f448371a-7d4b-4b93-8e3b-0c3cc48d0517","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"},{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"email\": \"nick@heliumdev.com\",\n    \"studio_id\": \"{{studio_id}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://headshots.snapbar.com/api/v2/studio_sessions","description":"<p>Create a new studio session for a contact. This generates an invitation URL that can be sent to the contact.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}},"urlObject":{"path":["api","v2","studio_sessions"],"host":["https://headshots.snapbar.com"],"query":[],"variable":[]}},"response":[{"id":"89c62fe5-c518-402e-8770-b5c44daf5bce","name":"Successful Response","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v1/studio_sessions"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"studio_session_url\": \"https://example.com/session/invite/abc123def456\",\n  \"contact_id\": \"64f1a2b3c4d5e6f7g8h9i0j2\"\n}"},{"id":"06d47bdb-4c6a-4f62-b4dd-74c17d393d2f","name":"Invalid Email","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v1/studio_sessions"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"path\": [\"email\"],\n      \"message\": \"Email address is invalid\"\n    }\n  ]\n}"},{"id":"d869b33d-bf4c-4971-a0e1-fa3befa147a6","name":"Studio Not Found","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"Bearer {{access_token}}"},{"key":"Content-Type","value":"application/json"}],"url":"https://headshots.snapbar.com/api/v1/studio_sessions"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"error\": \"Studio not found\"\n}"}],"_postman_id":"f448371a-7d4b-4b93-8e3b-0c3cc48d0517"}],"id":"02e60248-8b1e-45f0-b21e-8b27f0fbf39f","description":"<p>Use a Studio Session to generate a URL that can be used by a contact to submit photos.</p>\n","_postman_id":"02e60248-8b1e-45f0-b21e-8b27f0fbf39f","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]},"isInherited":true,"source":{"_postman_id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","id":"9e524d4a-63bb-4dd1-9e6b-c51feac02e56","name":"Scale Headshots API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{vault:access_token}}"}]}},"event":[{"listen":"prerequest","script":{"id":"5a2ec7c0-6b96-4b4d-af85-c85b2b84b29d","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"e77392b0-6dcd-4b2a-a6b0-6e103bd78586","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}],"variable":[{"key":"base_url","value":"https://headshots.snapbar.com"}]}