{"info":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","description":"<html><head></head><body><h1 id=\"casting42-api-documentation\">Casting42 API Documentation</h1>\n<p>Complete API documentation for Casting42 API v2. This collection includes all endpoints for managing talents, castings, candidates, contacts, groups, and settings.</p>\n<h2 id=\"getting-started\">Getting Started</h2>\n<ol>\n<li><p>Set your <code>api_key</code> in the collection variables</p>\n</li>\n<li><p>Run the <strong>Authentication</strong> request to get your JWT token (auto-stored)</p>\n</li>\n<li><p>Start making API calls!</p>\n</li>\n</ol>\n<h2 id=\"base-url\">Base URL</h2>\n<ul>\n<li><code>https://casting42.com</code></li>\n</ul>\n<h2 id=\"authentication\">Authentication</h2>\n<p>All API requests require a valid JWT token obtained via the <code>/api/v2/auth</code> endpoint. The token expires after 15 minutes.</p>\n<h2 id=\"rate-limits\">Rate Limits</h2>\n<p>API requests are subject to rate limiting. Standard limits apply per tenant.</p>\n<h2 id=\"pagination\">Pagination</h2>\n<p>Most list endpoints support pagination with <code>limit</code> (max 100) and <code>offset</code> parameters.</p>\n<h2 id=\"field-naming-convention\">Field Naming Convention</h2>\n<p>The API accepts both camelCase and snake_case for field names in requests and responses.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Casting42 API Documentation","slug":"casting42-api-documentation"}],"owner":"50258044","collectionId":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","publishedId":"2sB3WyLwst","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"0081ff"},"publishDate":"2025-11-21T10:15:57.000Z"},"item":[{"name":"📖 README - Getting Started","item":[{"name":"Overview","id":"71e64925-749a-4e96-8a63-4e90729763f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/auth","description":"<h1 id=\"casting42-api-v2---complete-documentation\">Casting42 API v2 - Complete Documentation</h1>\n<h2 id=\"welcome\">Welcome!</h2>\n<p>This Postman collection provides comprehensive documentation and examples for the Casting42 API v2. Use this API to integrate Casting42's powerful talent management features into your applications.</p>\n<hr />\n<h2 id=\"🚀-quick-start\">🚀 Quick Start</h2>\n<h3 id=\"1-get-your-api-key\">1. Get Your API Key</h3>\n<ol>\n<li>Log into your Casting42 account</li>\n<li>Navigate to <strong>Settings &gt; API Information</strong></li>\n<li>Generate or copy your high-level API key</li>\n</ol>\n<h3 id=\"2-set-collection-variables\">2. Set Collection Variables</h3>\n<ol>\n<li>Click on the collection name</li>\n<li>Go to the <strong>Variables</strong> tab</li>\n<li>Set <code>api_key</code> to your API key</li>\n<li>Set <code>base_url</code> (default: <a href=\"https://casting42.com\">https://casting42.com</a>)</li>\n</ol>\n<h3 id=\"3-authenticate\">3. Authenticate</h3>\n<ol>\n<li>Open <strong>Authentication &gt; Authenticate</strong></li>\n<li>Click <strong>Send</strong></li>\n<li>JWT token is automatically stored for 15 minutes</li>\n</ol>\n<h3 id=\"4-start-making-requests\">4. Start Making Requests!</h3>\n<p>All subsequent requests will use the stored JWT token automatically.</p>\n<hr />\n<h2 id=\"📚-main-features\">📚 Main Features</h2>\n<h3 id=\"👤-talents\">👤 Talents</h3>\n<ul>\n<li>List, create, update, and search talents</li>\n<li>Upload photos, videos, and files</li>\n<li>Manage skills and custom fields</li>\n<li>Advanced search with multiple operators</li>\n<li>Bulk operations</li>\n</ul>\n<h3 id=\"🎬-castings\">🎬 Castings</h3>\n<ul>\n<li>Create and manage casting projects</li>\n<li>Generate sign-up URLs for talent registration</li>\n<li>Configure registration fields</li>\n<li>Enable guest access for clients</li>\n</ul>\n<h3 id=\"🎭-candidates\">🎭 Candidates</h3>\n<ul>\n<li>Add talents to castings</li>\n<li>Manage candidate status and rounds</li>\n<li>Tag and categorize candidates</li>\n<li>Track auditions and availability</li>\n</ul>\n<h3 id=\"📞-contacts\">📞 Contacts</h3>\n<ul>\n<li>Manage clients and agency contacts</li>\n<li>Generate guest access links</li>\n<li>Search and filter contacts</li>\n</ul>\n<h3 id=\"👥-groups\">👥 Groups</h3>\n<ul>\n<li>Organize talents into groups</li>\n<li>Add multiple talents to groups</li>\n<li>Search groups by criteria</li>\n</ul>\n<h3 id=\"⚙️-settings--fields\">⚙️ Settings &amp; Fields</h3>\n<ul>\n<li>Get field configurations</li>\n<li>Create custom dropdowns and fields</li>\n<li>Add values to existing fields</li>\n<li>Manage field visibility</li>\n</ul>\n<h3 id=\"🔔-webhooks\">🔔 Webhooks</h3>\n<ul>\n<li>Subscribe to events (talent created, casting updated, etc.)</li>\n<li>Receive real-time notifications</li>\n<li>Integrate with Zapier and other tools</li>\n</ul>\n<hr />\n<h2 id=\"🔑-authentication\">🔑 Authentication</h2>\n<h3 id=\"api-key-authentication\">API Key Authentication</h3>\n<p>Your API key is your master credential:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer YOUR_API_KEY\n</code></pre><h3 id=\"jwt-token\">JWT Token</h3>\n<p>Exchange API key for JWT token (valid 15 minutes):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">GET /api/v2/auth\nAuthorization: Bearer YOUR_API_KEY\n</code></pre>\n<p>Response headers contain:</p>\n<ul>\n<li><code>Response</code>: JWT token</li>\n<li><code>Expiry</code>: Expiration time</li>\n</ul>\n<h3 id=\"using-jwt-token\">Using JWT Token</h3>\n<p>All API requests use JWT token:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer YOUR_JWT_TOKEN\n</code></pre><hr />\n<h2 id=\"📄-pagination\">📄 Pagination</h2>\n<p>Most list endpoints support pagination:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/v2/talents?limit=100&amp;offset=0\n</code></pre><ul>\n<li><code>limit</code>: Items per page (max 100)</li>\n<li><code>offset</code>: Page number (0-indexed)</li>\n<li>Response includes <code>talentCount</code> for total items</li>\n</ul>\n<p><strong>Example: Get page 3 with 50 items per page</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>limit=50&amp;offset=2\n</code></pre><hr />\n<h2 id=\"🔍-search--filtering\">🔍 Search &amp; Filtering</h2>\n<h3 id=\"query-operators\">Query Operators</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Operator</th>\n<th>Description</th>\n<th>Example</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>=</code></td>\n<td>Exact match</td>\n<td><code>\"gender\": \"=male\"</code></td>\n</tr>\n<tr>\n<td><code>~</code></td>\n<td>Contains (case-insensitive)</td>\n<td><code>\"firstName\": \"~Joh\"</code></td>\n</tr>\n<tr>\n<td><code>&gt;</code></td>\n<td>Greater than</td>\n<td><code>\"height\": \"&gt;170\"</code></td>\n</tr>\n<tr>\n<td><code>&lt;</code></td>\n<td>Less than</td>\n<td><code>\"height\": \"&lt;180\"</code></td>\n</tr>\n<tr>\n<td><code>&gt;=</code></td>\n<td>Greater or equal</td>\n<td><code>\"age\": \"&gt;=18\"</code></td>\n</tr>\n<tr>\n<td><code>&lt;=</code></td>\n<td>Less or equal</td>\n<td><code>\"age\": \"&lt;=65\"</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"special-queries\">Special Queries</h3>\n<p><strong>Age Range</strong> (instead of birthday):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"age_range\": [18, 35]}\n</code></pre>\n<p><strong>Skills</strong> (by category name):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"Languages\": [1, 2, 3]}\n</code></pre>\n<p><strong>Custom Fields</strong> (by label):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"Agency Contact\": \"~Smith\"}\n</code></pre>\n<hr />\n<h2 id=\"📤-file-uploads\">📤 File Uploads</h2>\n<h3 id=\"upload-photos\">Upload Photos</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-http\">POST /api/v2/talents/upload-photo\nContent-Type: multipart/form-data\n\ntalent_tag: talent-123\nimage: [file]\nattachment_label: Headshot\nis_profile_picture: true\n</code></pre>\n<h3 id=\"supported-formats\">Supported Formats</h3>\n<ul>\n<li><strong>Photos</strong>: JPG, PNG, HEIC, WebP</li>\n<li><strong>Videos</strong>: MP4, MOV, AVI</li>\n<li><strong>Files</strong>: PDF, DOC, DOCX, XLS, XLSX</li>\n</ul>\n<h3 id=\"file-size-limits\">File Size Limits</h3>\n<ul>\n<li>Photos: 50MB</li>\n<li>Videos: 500MB</li>\n<li>Files: 100MB</li>\n</ul>\n<hr />\n<h2 id=\"🎯-field-naming\">🎯 Field Naming</h2>\n<p>The API accepts both camelCase and snake_case:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// Both work!\n{\"firstName\": \"John\"}      // camelCase\n{\"first_name\": \"John\"}     // snake_case\n\n{\"emailAddress\": \"...\"}\n{\"email_address\": \"...\"}\n</code></pre>\n<hr />\n<h2 id=\"⚠️-error-handling\">⚠️ Error Handling</h2>\n<h3 id=\"http-status-codes\">HTTP Status Codes</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Success</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad Request (invalid parameters)</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthorized (invalid API key/token)</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not Found (resource doesn't exist)</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"error-response-format\">Error Response Format</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"message\": \"Error description\",\n  \"reason\": \"Detailed reason\"\n}\n</code></pre>\n<h3 id=\"common-errors\">Common Errors</h3>\n<p><strong>Invalid API Key</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"success\": false, \"error\": \"Invalid API key\"}\n</code></pre>\n<p><strong>Talent Not Found</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"success\": false, \"message\": \"Talent does not exist\"}\n</code></pre>\n<p><strong>Validation Error</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": false,\n  \"message\": \"Email address is invalid, Height is not a number\"\n}\n</code></pre>\n<hr />\n<h2 id=\"🔔-webhooks-1\">🔔 Webhooks</h2>\n<h3 id=\"available-events\">Available Events</h3>\n<ul>\n<li><code>talent.created</code></li>\n<li><code>talent.updated</code></li>\n<li><code>casting.created</code></li>\n<li><code>casting.updated</code></li>\n<li><code>candidate.created</code></li>\n<li><code>contact.created</code></li>\n<li><code>contact.updated</code></li>\n<li><code>group.created</code></li>\n</ul>\n<h3 id=\"webhook-payload\">Webhook Payload</h3>\n<p>Each webhook includes:</p>\n<ul>\n<li>Event type</li>\n<li>Resource data</li>\n<li>Changed attributes</li>\n<li>Timestamp</li>\n</ul>\n<h3 id=\"example-webhook-setup\">Example Webhook Setup</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"hook_url\": \"https://your-app.com/webhook\",\n  \"events\": \"talent.created\"\n}\n</code></pre>\n<hr />\n<h2 id=\"📊-rate-limits\">📊 Rate Limits</h2>\n<ul>\n<li><strong>Authentication</strong>: 10 requests/minute</li>\n<li><strong>General API</strong>: 100 requests/minute</li>\n<li><strong>File Uploads</strong>: 20 requests/minute</li>\n</ul>\n<p>Rate limit headers:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>X-RateLimit-Limit: 100\nX-RateLimit-Remaining: 95\nX-RateLimit-Reset: 1634567890\n</code></pre><hr />\n<h2 id=\"🔒-security-best-practices\">🔒 Security Best Practices</h2>\n<ol>\n<li><strong>Never expose API keys</strong> in client-side code</li>\n<li><strong>Store JWT tokens securely</strong> (not in localStorage)</li>\n<li><strong>Use HTTPS</strong> for all API calls</li>\n<li><strong>Rotate API keys</strong> regularly</li>\n<li><strong>Implement rate limiting</strong> in your application</li>\n<li><strong>Validate webhook signatures</strong> (if available)</li>\n</ol>\n<hr />\n<h2 id=\"🆘-support\">🆘 Support</h2>\n<h3 id=\"documentation\">Documentation</h3>\n<ul>\n<li>API Docs: <a href=\"https://casting42.com/api-documentation\">https://casting42.com/api-documentation</a></li>\n<li>Getting Started: <a href=\"https://casting42.com/getting-started\">https://casting42.com/getting-started</a></li>\n<li>FAQ: <a href=\"https://casting42.com/FAQ\">https://casting42.com/FAQ</a></li>\n</ul>\n<h3 id=\"contact\">Contact</h3>\n<ul>\n<li>Email: <a href=\"mailto:support@casting42.com\">support@casting42.com</a></li>\n<li>Chat: Available in Casting42 dashboard</li>\n</ul>\n<hr />\n<h2 id=\"📝-examples\">📝 Examples</h2>\n<p>This collection includes extensive examples for:</p>\n<ul>\n<li>✅ Success responses</li>\n<li>❌ Error responses</li>\n<li>🔄 Edge cases</li>\n<li>💡 Best practices</li>\n</ul>\n<p>Explore each endpoint to see detailed examples!</p>\n<hr />\n<h2 id=\"🎓-learning-path\">🎓 Learning Path</h2>\n<h3 id=\"beginner\">Beginner</h3>\n<ol>\n<li>Authenticate</li>\n<li>List talents</li>\n<li>Create a talent</li>\n<li>Upload a photo</li>\n</ol>\n<h3 id=\"intermediate\">Intermediate</h3>\n<ol>\n<li>Search talents with filters</li>\n<li>Create a casting</li>\n<li>Add candidates</li>\n<li>Manage contacts</li>\n</ol>\n<h3 id=\"advanced\">Advanced</h3>\n<ol>\n<li>Custom fields and skills</li>\n<li>Webhooks</li>\n<li>Guest access links</li>\n<li>Bulk operations</li>\n</ol>\n<hr />\n<p>Happy coding! 🚀</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","auth"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"71e64925-749a-4e96-8a63-4e90729763f4"}],"id":"4415a02a-0699-44aa-9203-20f94ca26144","_postman_id":"4415a02a-0699-44aa-9203-20f94ca26144","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Authentication","item":[{"name":"Authenticate","event":[{"listen":"test","script":{"exec":["var response = pm.response.headers.get('Response');","if (response) {","    pm.collectionVariables.set('jwt_token', response);","    console.log('JWT Token stored successfully');","}","","pm.test('Status code is 200', function () {","    pm.response.to.have.status(200);","});","","pm.test('Response header contains token', function () {","    pm.response.to.have.header('Response');","});"],"type":"text/javascript","id":"f85fca0c-28ed-4720-aeb2-28cf86fde8fd"}}],"id":"5769362e-ec4f-42ca-9070-3922f744ec2e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Authorization","value":"Bearer YOUR_API_KEY_HERE","description":"<p>Your high-level API key from Casting42 settings</p>\n","type":"text"}],"url":"https://casting42.com/api/v2/auth","description":"<h1 id=\"authenticate-with-the-api\">Authenticate with the API</h1>\n<p>This endpoint exchanges your API key for a JWT token that's valid for 15 minutes.</p>\n<h2 id=\"how-to-get-your-api-key\">How to get your API key</h2>\n<ol>\n<li>Log into your Casting42 account</li>\n<li>Navigate to Settings &gt; API Information</li>\n<li>Generate or copy your API key</li>\n</ol>\n<h2 id=\"response-headers\">Response Headers</h2>\n<ul>\n<li><code>Response</code>: The JWT token (automatically stored in collection variables)</li>\n<li><code>Expiry</code>: Token expiration time (MM-DD-YYYY HH:MM format)</li>\n</ul>\n<h2 id=\"authentication-flow\">Authentication Flow</h2>\n<ol>\n<li>Send your API key in the Authorization header</li>\n<li>Receive JWT token in response header</li>\n<li>Use JWT token for all subsequent API requests</li>\n</ol>\n<h2 id=\"token-lifecycle\">Token Lifecycle</h2>\n<ul>\n<li>Tokens expire after 15 minutes</li>\n<li>Request a new token when expired</li>\n<li>Store the token securely</li>\n</ul>\n<h2 id=\"error-responses\">Error Responses</h2>\n<ul>\n<li><code>401 Unauthorized</code>: Invalid API key</li>\n<li><code>500 Internal Server Error</code>: Server error</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","auth"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[{"id":"2fa617c0-021a-44ef-a701-bcf8a423f81f","name":"Successful Authentication","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer your-api-key-here"}],"url":"https://casting42.com/api/v2/auth"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Response","value":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."},{"key":"Expiry","value":"10-17-2025 15:30"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true\n}"},{"id":"e538ad8c-e317-4e64-95c5-2c0096141ed8","name":"Invalid API Key","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer invalid-key"}],"url":"https://casting42.com/api/v2/auth"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"error\": \"Invalid API key\"\n}"}],"_postman_id":"5769362e-ec4f-42ca-9070-3922f744ec2e"}],"id":"316fb176-95ab-495a-bf40-cd07c4af3ba7","_postman_id":"316fb176-95ab-495a-bf40-cd07c4af3ba7","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Talents","item":[{"name":"List Talents","id":"77506608-6982-4148-8725-738b562495f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/talents?limit=100&offset=0&sort_field=id&sort_order=asc","description":"<h1 id=\"list-all-talents\">List All Talents</h1>\n<p>Retrieve a paginated list of talents that have API access enabled (<code>allow_api_response: true</code>).</p>\n<h2 id=\"pagination\">Pagination</h2>\n<p>Use <code>limit</code> and <code>offset</code> to paginate through results:</p>\n<ul>\n<li>First page: <code>offset=0&amp;limit=100</code></li>\n<li>Second page: <code>offset=1&amp;limit=100</code></li>\n<li>Third page: <code>offset=2&amp;limit=100</code></li>\n</ul>\n<h2 id=\"sorting\">Sorting</h2>\n<p>Sort by any talent field using camelCase or snake_case:</p>\n<ul>\n<li><code>sort_field=firstName</code> or <code>sort_field=first_name</code></li>\n<li><code>sort_field=createdAt</code> or <code>sort_field=created_at</code></li>\n<li><code>sort_field=height</code></li>\n</ul>\n<h2 id=\"response-fields\">Response Fields</h2>\n<p>Each talent includes:</p>\n<ul>\n<li>Basic info: firstName, lastName, emailAddress, phoneNumber</li>\n<li>Physical attributes: height, weight, gender, birthday</li>\n<li>Media: profile pictures, photos, videos</li>\n<li>Custom fields and skills</li>\n<li>Metadata: tag, slug, createdAt, updatedAt</li>\n</ul>\n<h2 id=\"performance\">Performance</h2>\n<ul>\n<li>Results include all related data (photos, skills, custom fields)</li>\n<li>Profile pictures are pre-loaded</li>\n<li>Rich text fields are included</li>\n</ul>\n<h2 id=\"rate-limiting\">Rate Limiting</h2>\n<p>This endpoint is rate-limited. Consider caching results when possible.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents"],"host":["https://casting42.com"],"query":[{"description":{"content":"<p>Number of talents to return (max 100, default 100)</p>\n","type":"text/plain"},"key":"limit","value":"100"},{"description":{"content":"<p>Page offset for pagination (default 0)</p>\n","type":"text/plain"},"key":"offset","value":"0"},{"description":{"content":"<p>Field to sort by: id, firstName, lastName, createdAt, updatedAt, etc. (camelCase or snake_case)</p>\n","type":"text/plain"},"key":"sort_field","value":"id"},{"description":{"content":"<p>Sort order: asc (ascending) or desc (descending)</p>\n","type":"text/plain"},"key":"sort_order","value":"asc"}],"variable":[]}},"response":[{"id":"836de0dd-2b6e-4cb3-bf38-a45986e88591","name":"Success Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://casting42.com/api/v2/talents?limit=2&offset=0","host":["https://casting42.com"],"path":["api","v2","talents"],"query":[{"key":"limit","value":"2"},{"key":"offset","value":"0"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talentCount\": 245,\n  \"talents\": [\n    {\n      \"id\": 1,\n      \"tag\": \"1697557200-abc123\",\n      \"slug\": \"john-doe\",\n      \"firstName\": \"John\",\n      \"lastName\": \"Doe\",\n      \"emailAddress\": \"john.doe@example.com\",\n      \"phoneNumber\": \"+1234567890\",\n      \"gender\": \"male\",\n      \"birthday\": \"1990-05-15\",\n      \"height\": 180,\n      \"weight\": 75,\n      \"communicationLanguage\": \"en\",\n      \"biography\": \"<p>Experienced actor with 10 years in theater and film.</p>\",\n      \"address\": \"123 Main St, Los Angeles, CA\",\n      \"city\": \"Los Angeles\",\n      \"zipcode\": \"90001\",\n      \"country\": \"United States\",\n      \"allowApiResponse\": true,\n      \"createdAt\": \"2024-01-15T10:30:00Z\",\n      \"updatedAt\": \"2024-10-01T14:20:00Z\",\n      \"profilePicture\": {\n        \"url\": \"https://casting42.s3.amazonaws.com/tenant-name/profile-photo.jpg\",\n        \"signedUrl\": \"https://casting42.com/api/v2/tenant-enc/rails/active_storage/blobs/proxy/signed-id/photo.jpg\"\n      },\n      \"photos\": [\n        {\n          \"id\": 101,\n          \"url\": \"https://casting42.s3.amazonaws.com/tenant-name/photo1.jpg\",\n          \"signedUrl\": \"https://casting42.com/api/v2/tenant-enc/rails/active_storage/blobs/proxy/signed-id/photo1.jpg\",\n          \"attachmentLabel\": \"Headshot\",\n          \"onPdf\": true,\n          \"exifDate\": \"2024-09-01\"\n        }\n      ],\n      \"skills\": [\n        {\n          \"categoryId\": 5,\n          \"categoryName\": \"Languages\",\n          \"skillId\": 25,\n          \"skillName\": \"English - Native\"\n        },\n        {\n          \"categoryId\": 5,\n          \"categoryName\": \"Languages\",\n          \"skillId\": 26,\n          \"skillName\": \"Spanish - Fluent\"\n        }\n      ],\n      \"customFields\": [\n        {\n          \"fieldId\": 10,\n          \"fieldName\": \"Agency Contact\",\n          \"value\": \"Jane Smith\"\n        }\n      ]\n    },\n    {\n      \"id\": 2,\n      \"tag\": \"1697557300-def456\",\n      \"slug\": \"jane-smith\",\n      \"firstName\": \"Jane\",\n      \"lastName\": \"Smith\",\n      \"emailAddress\": \"jane.smith@example.com\",\n      \"phoneNumber\": \"+1234567891\",\n      \"gender\": \"female\",\n      \"birthday\": \"1995-08-22\",\n      \"height\": 168,\n      \"weight\": 58,\n      \"communicationLanguage\": \"en\",\n      \"biography\": \"<p>Award-winning actress specializing in drama.</p>\",\n      \"allowApiResponse\": true,\n      \"createdAt\": \"2024-02-10T09:15:00Z\",\n      \"updatedAt\": \"2024-10-05T11:45:00Z\",\n      \"profilePicture\": {\n        \"url\": \"https://casting42.s3.amazonaws.com/tenant-name/profile-photo2.jpg\",\n        \"signedUrl\": \"https://casting42.com/api/v2/tenant-enc/rails/active_storage/blobs/proxy/signed-id/photo2.jpg\"\n      },\n      \"photos\": [],\n      \"skills\": [],\n      \"customFields\": []\n    }\n  ]\n}"},{"id":"5c4ef43f-0970-43a9-8902-3297007f96e5","name":"Invalid Sort Field","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://casting42.com/api/v2/talents?sort_field=invalidField","host":["https://casting42.com"],"path":["api","v2","talents"],"query":[{"key":"sort_field","value":"invalidField"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"message\": \"error: wrong field\"\n}"}],"_postman_id":"77506608-6982-4148-8725-738b562495f9"},{"name":"Get Talent by Tag","id":"0312eadc-4d3d-4d4e-a448-399c3e7f227f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/talents/:tag","description":"<p>Get a specific talent by their unique tag.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"5c9ab1a0-5b15-4402-8465-0d290fddc84a","type":"any","value":"talent-tag-here","key":"tag"}]}},"response":[],"_postman_id":"0312eadc-4d3d-4d4e-a448-399c3e7f227f"},{"name":"Create Talent","id":"c91e7459-ca5c-4d02-adaa-f85149f8da46","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"tag\": \"custom-unique-tag-123\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"emailAddress\": \"john.doe@example.com\",\n  \"phoneNumber\": \"+1234567890\",\n  \"gender\": \"male\",\n  \"birthday\": \"1990-01-15\",\n  \"height\": 180,\n  \"weight\": 75,\n  \"communicationLanguage\": \"en\",\n  \"address\": \"123 Main Street\",\n  \"city\": \"Los Angeles\",\n  \"zipcode\": \"90001\",\n  \"country\": \"United States\",\n  \"biography\": \"Experienced actor with a passion for dramatic roles.\",\n  \"remarks\": \"Available for auditions in Q4 2024\",\n  \"skillCategoryLanguage\": \"en\",\n  \"customFieldLanguage\": \"en\",\n  \"createdAt\": \"2024-01-01T00:00:00Z\",\n  \"updatedAt\": \"2024-10-17T12:00:00Z\"\n}"},"url":"https://casting42.com/api/v2/talents","description":"<h1 id=\"create-a-new-talent\">Create a New Talent</h1>\n<p>Create a new talent profile in your database.</p>\n<h2 id=\"required-fields\">Required Fields</h2>\n<ul>\n<li>None are strictly required, but recommended:<ul>\n<li><code>firstName</code> and <code>lastName</code> for identification</li>\n<li><code>emailAddress</code> for communication</li>\n<li><code>tag</code> for custom identification (auto-generated if not provided)</li>\n</ul>\n</li>\n</ul>\n<h2 id=\"optional-fields\">Optional Fields</h2>\n<h3 id=\"basic-information\">Basic Information</h3>\n<ul>\n<li><code>firstName</code>, <code>lastName</code>, <code>emailAddress</code>, <code>phoneNumber</code></li>\n<li><code>communicationLanguage</code>: Language preference (en, nl, de, fr, es, etc.)</li>\n<li><code>address</code>, <code>city</code>, <code>zipcode</code>, <code>country</code></li>\n<li><code>slug</code>: URL-friendly identifier (auto-generated from name if not provided)</li>\n</ul>\n<h3 id=\"physical-attributes\">Physical Attributes</h3>\n<ul>\n<li><code>gender</code>: Gender identity</li>\n<li><code>birthday</code>: Format: YYYY-MM-DD</li>\n<li><code>height</code>: Height in centimeters</li>\n<li><code>weight</code>: Weight in kilograms</li>\n<li><code>ethnicity_id</code>, <code>hair_color_id</code>, <code>eyes_color_id</code>: Reference IDs to value lists</li>\n</ul>\n<h3 id=\"text-fields\">Text Fields</h3>\n<ul>\n<li><code>biography</code>: Rich text biography (HTML supported)</li>\n<li><code>remarks</code>: Internal notes (not visible to talent)</li>\n</ul>\n<h3 id=\"skills--custom-fields\">Skills &amp; Custom Fields</h3>\n<ul>\n<li>Skills: Add via skill category names and skill IDs</li>\n<li>Custom fields: Add via custom field labels</li>\n<li>Use <code>skillCategoryLanguage</code> and <code>customFieldLanguage</code> to specify language</li>\n</ul>\n<h3 id=\"advanced-fields\">Advanced Fields</h3>\n<ul>\n<li><code>tag</code>: Custom unique identifier (auto-generated: <code>timestamp-uuid</code> if not provided)</li>\n<li><code>createdAt</code>: Override creation timestamp (ISO 8601 format)</li>\n<li><code>updatedAt</code>: Override update timestamp (ISO 8601 format)</li>\n<li><code>allowApiResponse</code>: Control API visibility (default: true)</li>\n</ul>\n<h2 id=\"field-naming\">Field Naming</h2>\n<p>Accepts both camelCase and snake_case:</p>\n<ul>\n<li><code>firstName</code> or <code>first_name</code></li>\n<li><code>emailAddress</code> or <code>email_address</code></li>\n</ul>\n<h2 id=\"value-list-fields\">Value List Fields</h2>\n<p>For dropdown fields (gender, ethnicity, hair color, etc.):</p>\n<ol>\n<li>Use field name + <code>_id</code> (e.g., <code>gender_id: 5</code>)</li>\n<li>Or use natural language lookup (e.g., <code>gender: \"male\"</code>)</li>\n</ol>\n<h2 id=\"skills\">Skills</h2>\n<p>Add skills by:</p>\n<ol>\n<li><strong>Skill IDs</strong>: <code>{\"Languages\": [1, 2, 3]}</code></li>\n<li><strong>Skill Names</strong>: <code>{\"Languages\": \"English\"}</code></li>\n</ol>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"Languages\": [25, 26],\n  \"Sports\": \"Swimming\"\n}\n</code></pre>\n<h2 id=\"custom-fields\">Custom Fields</h2>\n<p>Add custom field values:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"Agency Contact\": \"Jane Smith\",\n  \"IMDB Link\": \"https://imdb.com/name/...\"\n}\n</code></pre>\n<h2 id=\"limits\">Limits</h2>\n<ul>\n<li>Maximum talents per account based on subscription</li>\n<li>Returns 401 if talent limit reached</li>\n</ul>\n<h2 id=\"duplicate-prevention\">Duplicate Prevention</h2>\n<ul>\n<li>Each <code>tag</code> must be unique</li>\n<li>Returns 401 if tag already exists</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>Returns created talent object with auto-generated fields.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[{"id":"8efce17d-6926-4af3-aa73-264dda549766","name":"Success - Talent Created","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"emailAddress\": \"john.doe@example.com\",\n  \"phoneNumber\": \"+1234567890\",\n  \"gender\": \"male\",\n  \"birthday\": \"1990-01-15\",\n  \"height\": 180,\n  \"communicationLanguage\": \"en\"\n}"},"url":"https://casting42.com/api/v2/talents"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talent\": {\n    \"id\": 350,\n    \"tag\": \"1729166400-7f8e9d2a-5b4c-3a1e\",\n    \"slug\": \"john-doe\",\n    \"firstName\": \"John\",\n    \"lastName\": \"Doe\",\n    \"emailAddress\": \"john.doe@example.com\",\n    \"phoneNumber\": \"+1234567890\",\n    \"gender\": \"male\",\n    \"birthday\": \"1990-01-15\",\n    \"height\": 180,\n    \"communicationLanguage\": \"en\",\n    \"allowApiResponse\": true,\n    \"createdAt\": \"2024-10-17T12:00:00Z\",\n    \"updatedAt\": \"2024-10-17T12:00:00Z\"\n  }\n}"},{"id":"886eb2b1-eadc-4b0b-ab7e-e52e5539d08e","name":"Success - With Skills and Custom Fields","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"tag\": \"actor-123\",\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Smith\",\n  \"emailAddress\": \"jane@example.com\",\n  \"height\": 168,\n  \"Languages\": [1, 2],\n  \"Sports\": [5],\n  \"Agency Contact\": \"John Manager\",\n  \"IMDB Link\": \"https://imdb.com/name/nm1234567\",\n  \"skillCategoryLanguage\": \"en\",\n  \"customFieldLanguage\": \"en\"\n}"},"url":"https://casting42.com/api/v2/talents"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talent\": {\n    \"id\": 351,\n    \"tag\": \"actor-123\",\n    \"slug\": \"jane-smith\",\n    \"firstName\": \"Jane\",\n    \"lastName\": \"Smith\",\n    \"emailAddress\": \"jane@example.com\",\n    \"height\": 168,\n    \"skills\": [\n      {\n        \"categoryId\": 1,\n        \"categoryName\": \"Languages\",\n        \"skillId\": 1,\n        \"skillName\": \"English\"\n      },\n      {\n        \"categoryId\": 1,\n        \"categoryName\": \"Languages\",\n        \"skillId\": 2,\n        \"skillName\": \"Spanish\"\n      },\n      {\n        \"categoryId\": 3,\n        \"categoryName\": \"Sports\",\n        \"skillId\": 5,\n        \"skillName\": \"Swimming\"\n      }\n    ],\n    \"customFields\": [\n      {\n        \"fieldId\": 10,\n        \"fieldName\": \"Agency Contact\",\n        \"value\": \"John Manager\"\n      },\n      {\n        \"fieldId\": 11,\n        \"fieldName\": \"IMDB Link\",\n        \"value\": \"https://imdb.com/name/nm1234567\"\n      }\n    ],\n    \"createdAt\": \"2024-10-17T12:00:00Z\",\n    \"updatedAt\": \"2024-10-17T12:00:00Z\"\n  }\n}"},{"id":"914d6a08-32aa-4a5b-b2e8-f8966d766fb1","name":"Error - Tag Already Exists","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"tag\": \"existing-tag-123\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\"\n}"},"url":"https://casting42.com/api/v2/talents"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"reason\": \"Talent with id existing-tag-123 already exists\"\n}"},{"id":"6e530660-4c0b-43b8-b832-236ecc386d5e","name":"Error - Talent Limit Reached","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\"\n}"},"url":"https://casting42.com/api/v2/talents"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"reason\": \"Too many talents\"\n}"},{"id":"a1d8e3b7-76d8-4ab1-830f-789e0aefe724","name":"Error - Validation Error","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"emailAddress\": \"invalid-email\",\n  \"height\": \"not-a-number\"\n}"},"url":"https://casting42.com/api/v2/talents"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Email address is invalid, Height is not a number\"\n}"},{"id":"24fbd05f-6aba-406f-82b7-bcdbe0d99d5f","name":"Error - No Request Body","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"https://casting42.com/api/v2/talents"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"reason\": \"No body sent\"\n}"}],"_postman_id":"c91e7459-ca5c-4d02-adaa-f85149f8da46"},{"name":"Update Talent","id":"1f86f04e-9013-4809-8f79-327da50f60cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"tag\": \"talent-tag-to-update\",\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Smith\",\n  \"emailAddress\": \"jane.smith@example.com\",\n  \"biography\": \"Updated biography\"\n}"},"url":"https://casting42.com/api/v2/talents/:tag","description":"<p>Update an existing talent. Include the tag in the body to identify the talent.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"02fbea7f-91bf-47aa-82ee-60c2a9624972","type":"any","value":"talent-tag-to-update","key":"tag"}]}},"response":[],"_postman_id":"1f86f04e-9013-4809-8f79-327da50f60cd"},{"name":"Find Talents","id":"30d6539d-3d52-48e9-8758-c9227e4b2783","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"firstName\": \"~John\",\n      \"age_range\": [20, 35],\n      \"height\": \">170\",\n      \"gender\": \"male\"\n    }\n  ]\n}","options":{"raw":{"language":"json"}}},"url":"https://casting42.com/api/v2/talents/find?limit=100&offset=0&sort_field=firstName&sort_order=asc","description":"<h1 id=\"advanced-talent-search\">Advanced Talent Search</h1>\n<p>Search for talents using complex query conditions. Supports multiple filters, operators, and custom fields.</p>\n<h2 id=\"query-structure\">Query Structure</h2>\n<p>The query is an array of search objects. Each object represents a search condition:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"query\": [\n    {\n      \"field1\": \"value1\",\n      \"field2\": \"operator+value2\"\n    }\n  ]\n}\n</code></pre>\n<h2 id=\"comparison-operators\">Comparison Operators</h2>\n<h3 id=\"exact-match-\">Exact Match (=)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"firstName\": \"=John\"}\n</code></pre>\n<h3 id=\"contains-\">Contains (~)</h3>\n<p>Case-insensitive partial match:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"firstName\": \"~Joh\"}  // Matches John, Johnny, etc.\n</code></pre>\n<h3 id=\"greater-than-\">Greater Than (&gt;)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"height\": \"&gt;170\"}  // Height greater than 170cm\n</code></pre>\n<h3 id=\"less-than-\">Less Than (&lt;)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"height\": \"&lt;180\"}  // Height less than 180cm\n</code></pre>\n<h3 id=\"greater-or-equal-\">Greater or Equal (&gt;=)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"height\": \"&gt;=170\"}\n</code></pre>\n<h3 id=\"less-or-equal-\">Less or Equal (&lt;=)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"height\": \"&lt;=180\"}\n</code></pre>\n<h3 id=\"no-operator-default-contains\">No Operator (Default: Contains)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"firstName\": \"John\"}  // Same as \"~John\"\n</code></pre>\n<h2 id=\"special-field-age_range\">Special Field: age_range</h2>\n<p>Search by age range instead of birthday:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"age_range\": [18, 35]}  // Ages 18-35\n</code></pre>\n<p>Automatically converts to birthday range.</p>\n<h2 id=\"date-fields\">Date Fields</h2>\n<p>Use format: <code>DD-MM-YYYY</code> with operators:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"birthday\": \"&gt;01-01-1990\",  // Born after Jan 1, 1990\n  \"createdAt\": \"&gt;=15-03-2024\"  // Created after Mar 15, 2024\n}\n</code></pre>\n<h2 id=\"value-list-fields\">Value List Fields</h2>\n<h3 id=\"by-natural-value\">By Natural Value</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"gender\": \"male\"}\n</code></pre>\n<h3 id=\"by-id\">By ID</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"gender_id\": \"=5\"}\n</code></pre>\n<h2 id=\"skills-search\">Skills Search</h2>\n<p>Search by skill category names:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"Languages\": \"English\",  // By name\n  \"Sports\": [1, 2, 3]      // By IDs\n}\n</code></pre>\n<h2 id=\"custom-fields\">Custom Fields</h2>\n<p>Search custom fields by label:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"Agency Contact\": \"John Smith\",\n  \"IMDB Link\": \"~imdb.com\"\n}\n</code></pre>\n<h2 id=\"multiple-conditions\">Multiple Conditions</h2>\n<p>All conditions within one object are AND:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"query\": [\n    {\n      \"firstName\": \"~John\",\n      \"gender\": \"male\",\n      \"height\": \"&gt;170\",\n      \"age_range\": [25, 40]\n    }\n  ]\n}\n</code></pre>\n<h2 id=\"complex-example\">Complex Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"query\": [\n    {\n      \"firstName\": \"~a\",\n      \"age_range\": [20, 30],\n      \"height\": \"&gt;165\",\n      \"gender\": \"female\",\n      \"Languages\": [1, 5],\n      \"createdAt\": \"&gt;01-01-2024\",\n      \"Agency Contact\": \"~Smith\"\n    }\n  ]\n}\n</code></pre>\n<h2 id=\"response\">Response</h2>\n<p>Returns:</p>\n<ul>\n<li><code>talents</code>: Array of matching talents with full details</li>\n<li><code>talentCount</code>: Total number of matches (for pagination)</li>\n<li><code>success</code>: Boolean status</li>\n</ul>\n<h2 id=\"field-name-formats\">Field Name Formats</h2>\n<p>Accepts both formats:</p>\n<ul>\n<li><code>firstName</code> or <code>first_name</code></li>\n<li><code>emailAddress</code> or <code>email_address</code></li>\n<li><code>createdAt</code> or <code>created_at</code></li>\n</ul>\n<h2 id=\"common-search-patterns\">Common Search Patterns</h2>\n<h3 id=\"find-by-email\">Find by Email</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\"query\": [{\"emailAddress\": \"=john@example.com\"}]}\n</code></pre>\n<h3 id=\"age-and-height-range\">Age and Height Range</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"query\": [{\n    \"age_range\": [18, 25],\n    \"height\": \"&gt;160\",\n    \"height\": \"&lt;185\"\n  }]\n}\n</code></pre>\n<h3 id=\"multiple-skills\">Multiple Skills</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"query\": [{\n    \"Languages\": [1, 2],\n    \"Sports\": \"Swimming\"\n  }]\n}\n</code></pre>\n<h3 id=\"recent-signups\">Recent Signups</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"query\": [{\n    \"createdAt\": \"&gt;01-10-2024\"\n  }]\n}\n</code></pre>\n<h2 id=\"error-handling\">Error Handling</h2>\n<ul>\n<li>Returns 400 for invalid field names</li>\n<li>Returns 400 for negative offset</li>\n<li>Returns 400 for integers without operators</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","find"],"host":["https://casting42.com"],"query":[{"description":{"content":"<p>Maximum 100</p>\n","type":"text/plain"},"key":"limit","value":"100"},{"description":{"content":"<p>Page offset</p>\n","type":"text/plain"},"key":"offset","value":"0"},{"description":{"content":"<p>Any talent field</p>\n","type":"text/plain"},"key":"sort_field","value":"firstName"},{"description":{"content":"<p>asc or desc</p>\n","type":"text/plain"},"key":"sort_order","value":"asc"}],"variable":[]}},"response":[{"id":"6b2c2a66-2621-4435-9e2e-6fe8251f1482","name":"Success - Basic Search","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"firstName\": \"~John\",\n      \"gender\": \"male\"\n    }\n  ]\n}"},"url":{"raw":"https://casting42.com/api/v2/talents/find?limit=10","host":["https://casting42.com"],"path":["api","v2","talents","find"],"query":[{"key":"limit","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talentCount\": 3,\n  \"talents\": [\n    {\n      \"id\": 15,\n      \"tag\": \"talent-tag-001\",\n      \"firstName\": \"John\",\n      \"lastName\": \"Smith\",\n      \"gender\": \"male\",\n      \"emailAddress\": \"john.smith@example.com\",\n      \"height\": 178,\n      \"createdAt\": \"2024-05-10T10:00:00Z\"\n    },\n    {\n      \"id\": 42,\n      \"tag\": \"talent-tag-002\",\n      \"firstName\": \"Johnny\",\n      \"lastName\": \"Doe\",\n      \"gender\": \"male\",\n      \"emailAddress\": \"johnny.doe@example.com\",\n      \"height\": 182,\n      \"createdAt\": \"2024-06-15T14:30:00Z\"\n    },\n    {\n      \"id\": 78,\n      \"tag\": \"talent-tag-003\",\n      \"firstName\": \"Johnson\",\n      \"lastName\": \"Williams\",\n      \"gender\": \"male\",\n      \"emailAddress\": \"johnson.w@example.com\",\n      \"height\": 175,\n      \"createdAt\": \"2024-07-20T09:15:00Z\"\n    }\n  ]\n}"},{"id":"0bd5c236-d0e5-4542-b48f-11f61906ba33","name":"Success - Age Range and Height","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"age_range\": [25, 35],\n      \"height\": \">170\",\n      \"gender\": \"female\"\n    }\n  ]\n}"},"url":{"raw":"https://casting42.com/api/v2/talents/find?limit=5","host":["https://casting42.com"],"path":["api","v2","talents","find"],"query":[{"key":"limit","value":"5"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talentCount\": 12,\n  \"talents\": [\n    {\n      \"id\": 23,\n      \"tag\": \"talent-female-001\",\n      \"firstName\": \"Emma\",\n      \"lastName\": \"Watson\",\n      \"gender\": \"female\",\n      \"birthday\": \"1992-04-15\",\n      \"height\": 172,\n      \"emailAddress\": \"emma.w@example.com\"\n    },\n    {\n      \"id\": 45,\n      \"tag\": \"talent-female-002\",\n      \"firstName\": \"Sarah\",\n      \"lastName\": \"Johnson\",\n      \"gender\": \"female\",\n      \"birthday\": \"1995-08-20\",\n      \"height\": 168,\n      \"emailAddress\": \"sarah.j@example.com\"\n    }\n  ]\n}"},{"id":"c6dd9650-51b7-458a-ac4e-4d5e91e68bdd","name":"Success - With Skills","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"Languages\": [1, 2],\n      \"Sports\": \"Swimming\"\n    }\n  ]\n}"},"url":"https://casting42.com/api/v2/talents/find"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talentCount\": 5,\n  \"talents\": [\n    {\n      \"id\": 100,\n      \"tag\": \"multilingual-athlete-001\",\n      \"firstName\": \"Maria\",\n      \"lastName\": \"Rodriguez\",\n      \"skills\": [\n        {\n          \"categoryId\": 1,\n          \"categoryName\": \"Languages\",\n          \"skillId\": 1,\n          \"skillName\": \"English\"\n        },\n        {\n          \"categoryId\": 1,\n          \"categoryName\": \"Languages\",\n          \"skillId\": 2,\n          \"skillName\": \"Spanish\"\n        },\n        {\n          \"categoryId\": 5,\n          \"categoryName\": \"Sports\",\n          \"skillId\": 15,\n          \"skillName\": \"Swimming\"\n        }\n      ]\n    }\n  ]\n}"},{"id":"8c492b6a-20a5-4920-b3af-43e7eb530bd0","name":"Success - Custom Fields","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"Agency Contact\": \"~Smith\",\n      \"height\": \">175\"\n    }\n  ]\n}"},"url":"https://casting42.com/api/v2/talents/find"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"talentCount\": 2,\n  \"talents\": [\n    {\n      \"id\": 150,\n      \"tag\": \"represented-talent-001\",\n      \"firstName\": \"David\",\n      \"lastName\": \"Miller\",\n      \"height\": 185,\n      \"customFields\": [\n        {\n          \"fieldId\": 10,\n          \"fieldName\": \"Agency Contact\",\n          \"value\": \"Jane Smith\"\n        }\n      ]\n    }\n  ]\n}"},{"id":"1159f5a7-d5c5-499b-a983-07c2e10da870","name":"Error - Missing Query","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{}"},"url":"https://casting42.com/api/v2/talents/find"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Missing query\"\n}"},{"id":"6ea33064-922e-4dbf-a35d-21f2ed0788fe","name":"Error - Invalid Field","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"invalidField\": \"value\"\n    }\n  ]\n}"},"url":"https://casting42.com/api/v2/talents/find"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Wrong field\"\n}"},{"id":"7deff832-26d9-4c55-b345-d46e3f367fde","name":"Error - Integer Without Operator","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": [\n    {\n      \"height\": 180\n    }\n  ]\n}"},"url":"https://casting42.com/api/v2/talents/find"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Integers should be preceded by <=, >=, <, > or =\"\n}"}],"_postman_id":"30d6539d-3d52-48e9-8758-c9227e4b2783"},{"name":"Get Talent Photos","id":"e26902cd-303f-4090-8732-0464c199421c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/talents/photos/:talent_tag/:photo_size?message_amount=10","description":"<p>Get photos for a specific talent.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","photos",":talent_tag",":photo_size"],"host":["https://casting42.com"],"query":[{"description":{"content":"<p>Number of photos to return</p>\n","type":"text/plain"},"key":"message_amount","value":"10"}],"variable":[{"id":"6d551cde-5999-4d4f-bb08-fdbbecee4768","type":"any","value":"talent-tag-here","key":"talent_tag"},{"id":"1602aad4-971b-4273-98fb-81b0dd932c62","description":{"content":"<p>Options: small, medium, large</p>\n","type":"text/plain"},"type":"any","value":"medium","key":"photo_size"}]}},"response":[],"_postman_id":"e26902cd-303f-4090-8732-0464c199421c"},{"name":"Find Talents Photos","id":"1dcd6acf-043a-4e23-aafb-2a2078261e26","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"talentTags\": [\"talent-tag-1\", \"talent-tag-2\", \"talent-tag-3\"]\n}"},"url":"https://casting42.com/api/v2/talents/photos/find?photo_size=medium&message_amount=5","description":"<p>Get photos for multiple talents at once.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","photos","find"],"host":["https://casting42.com"],"query":[{"key":"photo_size","value":"medium"},{"key":"message_amount","value":"5"}],"variable":[]}},"response":[],"_postman_id":"1dcd6acf-043a-4e23-aafb-2a2078261e26"},{"name":"Get Talent Media","id":"0ae56930-69bc-4e90-aa9d-2e8ee1c15dbe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"talentTags\": [\"talent-tag-1\", \"talent-tag-2\"],\n  \"attachmentLabels\": [\"label1\", \"label2\"],\n  \"mediaType\": \"photos\",\n  \"mediaLang\": \"en\",\n  \"messageAmount\": 10\n}"},"url":"https://casting42.com/api/v2/talents/media/find","description":"<p>Get media (photos, videos, files) for multiple talents with optional filtering by labels.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","media","find"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"0ae56930-69bc-4e90-aa9d-2e8ee1c15dbe"},{"name":"Upload Photo","id":"1743bf45-6e96-43b2-8c9f-cb4f591f85db","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"talent-tag-here","type":"text","description":"<p>Required: Unique tag of the talent</p>\n"},{"key":"image","type":"file","description":"<p>Required: Image file (JPG, PNG, HEIC supported)</p>\n","value":null},{"key":"filename","value":"photo.jpg","type":"text","description":"<p>Optional: Custom filename (defaults to uploaded filename)</p>\n"},{"key":"attachment_label","value":"Portfolio","type":"text","description":"<p>Optional: Label for categorizing photo (e.g., 'Headshot', 'Portfolio', 'Scene')</p>\n"},{"key":"on_pdf","value":"true","type":"text","description":"<p>Optional: Include in PDF exports (true/false, default: true)</p>\n"},{"key":"is_profile_picture","value":"false","type":"text","description":"<p>Optional: Set as profile picture (true/false, default: false)</p>\n"}]},"url":"https://casting42.com/api/v2/talents/upload-photo","description":"<h1 id=\"upload-photo-for-talent\">Upload Photo for Talent</h1>\n<p>Upload photos to a talent's profile. Supports various image formats and automatic optimization.</p>\n<h2 id=\"supported-formats\">Supported Formats</h2>\n<ul>\n<li>JPEG/JPG</li>\n<li>PNG</li>\n<li>HEIC (iOS photos)</li>\n<li>WebP</li>\n</ul>\n<h2 id=\"required-parameters\">Required Parameters</h2>\n<ul>\n<li><code>talent_tag</code>: Unique identifier of the talent</li>\n<li><code>image</code>: The image file to upload</li>\n</ul>\n<h2 id=\"optional-parameters\">Optional Parameters</h2>\n<h3 id=\"attachment_label\">attachment_label</h3>\n<p>Categorize photos with labels:</p>\n<ul>\n<li>\"Headshot\"</li>\n<li>\"Full Body\"</li>\n<li>\"Portfolio\"</li>\n<li>\"Action Shot\"</li>\n<li>\"Scene Work\"</li>\n<li>Custom labels</li>\n</ul>\n<h3 id=\"on_pdf-boolean\">on_pdf (boolean)</h3>\n<ul>\n<li><code>true</code>: Include in PDF exports (default)</li>\n<li><code>false</code>: Exclude from PDF exports</li>\n<li>Useful for keeping some photos private or for internal use</li>\n</ul>\n<h3 id=\"is_profile_picture-boolean\">is_profile_picture (boolean)</h3>\n<ul>\n<li><code>true</code>: Set as profile picture (replaces existing)</li>\n<li><code>false</code>: Add as regular photo (default)</li>\n<li>Only one profile picture per talent</li>\n<li>Previous profile picture becomes regular photo</li>\n</ul>\n<h3 id=\"filename\">filename</h3>\n<ul>\n<li>Custom filename for the uploaded photo</li>\n<li>Automatically extracted from file if not provided</li>\n<li>Should include file extension</li>\n</ul>\n<h2 id=\"file-size-limits\">File Size Limits</h2>\n<ul>\n<li>Maximum file size: 50MB per photo</li>\n<li>Recommended: Under 10MB for faster uploads</li>\n<li>Photos are automatically optimized after upload</li>\n</ul>\n<h2 id=\"image-processing\">Image Processing</h2>\n<ol>\n<li><strong>Upload</strong>: File uploaded to S3 storage</li>\n<li><strong>Storage</strong>: Original stored with encryption</li>\n<li><strong>EXIF Extraction</strong>: Date and metadata extracted</li>\n<li><strong>Optimization</strong>: Background job compresses and creates thumbnails</li>\n<li><strong>Variants</strong>: Multiple sizes generated (small, medium, large)</li>\n</ol>\n<h2 id=\"exif-data\">EXIF Data</h2>\n<p>Automatically extracted:</p>\n<ul>\n<li>Photo capture date</li>\n<li>Camera settings</li>\n<li>GPS location (if available)</li>\n<li>Orientation</li>\n</ul>\n<h2 id=\"photo-optimization\">Photo Optimization</h2>\n<p>After upload, trigger optimization:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /api/v2/talents/optimize-photos-of-talent/:talent_tag\n</code></pre><p>Optimization creates:</p>\n<ul>\n<li>Thumbnails (150x150)</li>\n<li>Small (400x400)</li>\n<li>Medium (800x800)</li>\n<li>Large (1200x1200)</li>\n<li>Original (preserved)</li>\n</ul>\n<h2 id=\"best-practices\">Best Practices</h2>\n<h3 id=\"photo-labels\">Photo Labels</h3>\n<p>Use consistent labeling:</p>\n<ul>\n<li>\"Headshot\" for close-up portraits</li>\n<li>\"Full Body\" for full-length shots</li>\n<li>\"Portfolio\" for professional work</li>\n<li>\"Scene\" for scene work examples</li>\n</ul>\n<h3 id=\"profile-pictures\">Profile Pictures</h3>\n<ul>\n<li>Use high-quality headshots</li>\n<li>Clear, well-lit photos</li>\n<li>Professional appearance</li>\n<li>Square aspect ratio works best</li>\n</ul>\n<h3 id=\"upload-order\">Upload Order</h3>\n<ol>\n<li>Upload profile picture first (is_profile_picture: true)</li>\n<li>Upload additional photos</li>\n<li>Trigger optimization when all photos uploaded</li>\n<li>Add labels for organization</li>\n</ol>\n<h2 id=\"multiple-uploads\">Multiple Uploads</h2>\n<p>To upload multiple photos:</p>\n<ol>\n<li>Call endpoint multiple times (one per photo)</li>\n<li>Or use batch upload (coming soon)</li>\n</ol>\n<h2 id=\"storage-location\">Storage Location</h2>\n<ul>\n<li>Development/Staging: AWS S3 development bucket</li>\n<li>Production: AWS S3 production bucket</li>\n<li>Organized by tenant name</li>\n<li>Encrypted at rest</li>\n</ul>\n<h2 id=\"error-handling\">Error Handling</h2>\n<ul>\n<li>Returns 404 if talent doesn't exist</li>\n<li>Returns 400 if file type is invalid</li>\n<li>Returns 500 if upload fails</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>Returns success status immediately. Photo processing happens in background.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","upload-photo"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[{"id":"9dfbcbd6-a238-4358-ab71-e3ec533751c7","name":"Success - Regular Photo","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"talent-123","type":"text"},{"key":"image","type":"file","src":["photo.jpg"]},{"key":"attachment_label","value":"Portfolio","type":"text"},{"key":"on_pdf","value":"true","type":"text"}]},"url":"https://casting42.com/api/v2/talents/upload-photo"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true\n}"},{"id":"4c74db54-52c1-4a91-9f68-135bbc567483","name":"Success - Profile Picture","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"talent-123","type":"text"},{"key":"image","type":"file","src":["headshot.jpg"]},{"key":"is_profile_picture","value":"true","type":"text"},{"key":"attachment_label","value":"Headshot","type":"text"}]},"url":"https://casting42.com/api/v2/talents/upload-photo"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true\n}"},{"id":"2536d85b-fe90-40f4-a311-d90f1c0eef37","name":"Error - Talent Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"non-existent-tag","type":"text"},{"key":"image","type":"file","src":["photo.jpg"]}]},"url":"https://casting42.com/api/v2/talents/upload-photo"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"requested talent does not exist\"\n}"},{"id":"e3349dbe-1b44-4aa0-86c0-a5d2abff7ede","name":"Error - Invalid File Type","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"talent-123","type":"text"},{"key":"image","value":"not-a-file","type":"text"}]},"url":"https://casting42.com/api/v2/talents/upload-photo"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": false,\n  \"message\": \"Wrong file upload type\"\n}"}],"_postman_id":"1743bf45-6e96-43b2-8c9f-cb4f591f85db"},{"name":"Upload Media","id":"261ea0de-d0c5-40f0-9e78-d249ac8c11ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"talent-tag-here","type":"text"},{"key":"image","type":"file","value":null},{"key":"filename","value":"video.mp4","type":"text"},{"key":"attachment_label","value":"Show Reel","type":"text"},{"key":"on_pdf","value":"false","type":"text"},{"key":"media_type","value":"videos","type":"text","description":"<p>Options: photos, videos, audition_videos</p>\n"}]},"url":"https://casting42.com/api/v2/talents/upload-media","description":"<p>Upload media (video, audio) for a talent.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","upload-media"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"261ea0de-d0c5-40f0-9e78-d249ac8c11ae"},{"name":"Upload File","id":"7cd9edcb-9105-4c25-bc3e-b9d2de44976e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"talent_tag","value":"talent-tag-here","type":"text"},{"key":"image","type":"file","value":null},{"key":"filename","value":"resume.pdf","type":"text"}]},"url":"https://casting42.com/api/v2/talents/upload-file","description":"<p>Upload a file (PDF, document) for a talent.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","upload-file"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"7cd9edcb-9105-4c25-bc3e-b9d2de44976e"},{"name":"Optimize Talent Photos","id":"10ad6c9d-673e-4886-a9d3-56bf98e5aae4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/talents/optimize-photos-of-talent/:talent_tag","description":"<p>Trigger photo optimization for a talent. This compresses and optimizes all photos.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","optimize-photos-of-talent",":talent_tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"a3f36241-5c00-4776-a801-d0b76bfe3447","type":"any","value":"talent-tag-here","key":"talent_tag"}]}},"response":[],"_postman_id":"10ad6c9d-673e-4886-a9d3-56bf98e5aae4"},{"name":"Webhook Example","id":"d65f55e0-73b2-4fb7-ac49-c965aa6a33b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/talents/webhook-example?limit=5&offset=0","description":"<p>Get example webhook payload for talents to understand the webhook structure.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents","webhook-example"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"5"},{"key":"offset","value":"0"}],"variable":[]}},"response":[],"_postman_id":"d65f55e0-73b2-4fb7-ac49-c965aa6a33b8"},{"name":"Delete Talent","id":"174a42f0-71cf-4590-99da-a65f7a61385d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"url":"https://casting42.com/api/v2/talents/:tag","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","talents",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"type":"any","value":"talent-tag-to-delete","key":"tag"}]}},"response":[],"_postman_id":"174a42f0-71cf-4590-99da-a65f7a61385d"}],"id":"3dba7ce0-50e4-4753-bc54-e098a025a5ed","_postman_id":"3dba7ce0-50e4-4753-bc54-e098a025a5ed","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Castings","item":[{"name":"List Castings","id":"6f3e8a4c-9fdd-4520-882e-d0c3bab21317","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/castings?limit=100&offset=0&sort_field=id&sort_order=asc","description":"<p>Get a list of open castings.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","castings"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"100"},{"key":"offset","value":"0"},{"key":"sort_field","value":"id"},{"key":"sort_order","value":"asc"}],"variable":[]}},"response":[],"_postman_id":"6f3e8a4c-9fdd-4520-882e-d0c3bab21317"},{"name":"Get Casting by Tag","id":"fe06d095-48ff-4fdf-8dd4-1c77c16c5d7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/castings/:tag","description":"<p>Get a specific casting by its tag.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","castings",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"4334f02b-1dc6-4646-9af3-a366f78c65da","type":"any","value":"casting-tag-here","key":"tag"}]}},"response":[],"_postman_id":"fe06d095-48ff-4fdf-8dd4-1c77c16c5d7d"},{"name":"Create Casting","id":"4b006fa1-19e1-48e3-aa11-389ce1724bd8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"castingName\": \"Feature Film - Lead Role\",\n  \"clientId\": \"client-tag-123\",\n  \"agencyId\": \"agency-tag-456\",\n  \"open\": true,\n  \"description\": \"Casting for the lead role in upcoming feature film. Looking for experienced actors aged 25-35.\",\n  \"projectName\": \"Project Phoenix\",\n  \"shootingDate\": \"2025-03-15\",\n  \"location\": \"Los Angeles, CA\"\n}","options":{"raw":{"language":"json"}}},"url":"https://casting42.com/api/v2/castings","description":"<h1 id=\"create-a-new-casting\">Create a New Casting</h1>\n<p>Create a new casting project to organize talent submissions and manage the casting process.</p>\n<h2 id=\"required-fields\">Required Fields</h2>\n<ul>\n<li><code>castingName</code>: Name of the casting project</li>\n</ul>\n<h2 id=\"optional-fields\">Optional Fields</h2>\n<h3 id=\"basic-information\">Basic Information</h3>\n<ul>\n<li><code>clientId</code>: Tag of the client contact</li>\n<li><code>agencyId</code>: Tag of the agency contact</li>\n<li><code>description</code>: Detailed description of the casting</li>\n<li><code>projectName</code>: Internal project name</li>\n<li><code>open</code>: Whether casting is accepting submissions (default: true)</li>\n</ul>\n<h3 id=\"dates--location\">Dates &amp; Location</h3>\n<ul>\n<li><code>shootingDate</code>: Shooting/production date</li>\n<li><code>auditionDate</code>: Audition date</li>\n<li><code>location</code>: Shooting location</li>\n<li><code>auditionLocation</code>: Audition location</li>\n</ul>\n<h3 id=\"settings\">Settings</h3>\n<ul>\n<li><code>sharingEnabled</code>: Enable guest access sharing (default: true)</li>\n<li><code>hideUnavailableTalents</code>: Hide unavailable talents in views</li>\n<li><code>hideRejectedTalents</code>: Hide rejected candidates</li>\n<li><code>allowDownloadAuditions</code>: Allow guest users to download audition tapes</li>\n<li><code>groupTalentsByTags</code>: Group talents by their candidate tags</li>\n</ul>\n<h3 id=\"registration-fields\">Registration Fields</h3>\n<p>The system automatically configures:</p>\n<ul>\n<li><code>registrationFields</code>: Fields shown on talent registration form</li>\n<li><code>requiredFields</code>: Required fields for registration</li>\n<li><code>guestFields</code>: Fields visible to guest users</li>\n</ul>\n<p>These are set based on your account's field configuration.</p>\n<h2 id=\"auto-generated-fields\">Auto-Generated Fields</h2>\n<ul>\n<li><code>tag</code>: Unique identifier (timestamp-uuid format)</li>\n<li><code>signUpUrl</code>: Public URL for talent registration</li>\n<li><code>createdAt</code>: Creation timestamp</li>\n<li><code>updatedAt</code>: Last update timestamp</li>\n</ul>\n<h2 id=\"response\">Response</h2>\n<p>Returns:</p>\n<ul>\n<li>Created casting object</li>\n<li><code>signUpUrl</code>: Direct link for talent registration</li>\n<li>All casting details</li>\n</ul>\n<h2 id=\"sign-up-url\">Sign-Up URL</h2>\n<p>The sign-up URL allows talents to:</p>\n<ul>\n<li>Register for the casting</li>\n<li>Submit their information</li>\n<li>Upload photos and documents</li>\n<li>Update their availability</li>\n</ul>\n<p>Format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://casting42.com/{locale}/users/sign_up?key={api_key}&amp;company_name={company}&amp;casting_tag={tag}\n</code></pre><h2 id=\"workflow\">Workflow</h2>\n<ol>\n<li>Create casting project</li>\n<li>Get sign-up URL from response</li>\n<li>Share URL with talents</li>\n<li>Talents register and submit profiles</li>\n<li>Review candidates in Casting42</li>\n<li>Manage auditions and callbacks</li>\n</ol>\n<h2 id=\"sharing-with-clients\">Sharing with Clients</h2>\n<p>Enable guest access:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"sharingEnabled\": true,\n  \"guestFields\": [\"firstName\", \"lastName\", \"height\", \"age\"]\n}\n</code></pre>\n<p>Then use:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /api/v2/contacts/generate-guest-access-link\n</code></pre><h2 id=\"best-practices\">Best Practices</h2>\n<h3 id=\"naming-conventions\">Naming Conventions</h3>\n<ul>\n<li>Use descriptive names: \"Feature Film Lead - Drama\"</li>\n<li>Include project type: \"Commercial\", \"TV Series\", \"Film\"</li>\n<li>Add year if relevant: \"Summer Campaign 2025\"</li>\n</ul>\n<h3 id=\"description-tips\">Description Tips</h3>\n<ul>\n<li>Include role details</li>\n<li>Specify requirements (age, appearance, skills)</li>\n<li>Mention shooting dates</li>\n<li>Add compensation info</li>\n<li>Include audition process</li>\n</ul>\n<h3 id=\"organization\">Organization</h3>\n<ul>\n<li>Link to client and agency contacts</li>\n<li>Set shooting dates early</li>\n<li>Configure availability requests</li>\n<li>Set up candidate tags for rounds</li>\n</ul>\n<h2 id=\"field-name-formats\">Field Name Formats</h2>\n<p>Accepts both:</p>\n<ul>\n<li><code>castingName</code> or <code>casting_name</code></li>\n<li><code>clientId</code> or <code>client_id</code></li>\n<li><code>projectName</code> or <code>project_name</code></li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","castings"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[{"id":"191c5560-6e14-4b61-a366-4c35833786eb","name":"Success - Basic Casting","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"castingName\": \"Feature Film - Lead Role\",\n  \"description\": \"Looking for lead actor\",\n  \"open\": true\n}"},"url":"https://casting42.com/api/v2/castings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"project\": {\n    \"id\": 42,\n    \"tag\": \"1729166400-abc123xyz\",\n    \"castingName\": \"Feature Film - Lead Role\",\n    \"projectName\": \"Feature Film - Lead Role\",\n    \"description\": \"Looking for lead actor\",\n    \"open\": true,\n    \"sharingEnabled\": true,\n    \"hideUnavailableTalents\": false,\n    \"groupTalentsByTags\": false,\n    \"allowDownloadAuditions\": false,\n    \"registrationFields\": [\n      \"firstName\",\n      \"lastName\",\n      \"emailAddress\",\n      \"phoneNumber\",\n      \"birthday\",\n      \"gender\",\n      \"height\"\n    ],\n    \"requiredFields\": [\n      \"firstName\",\n      \"lastName\",\n      \"emailAddress\"\n    ],\n    \"guestFields\": [\n      \"firstName\",\n      \"lastName\",\n      \"height\",\n      \"age\",\n      \"gender\"\n    ],\n    \"createdAt\": \"2024-10-17T12:00:00Z\",\n    \"updatedAt\": \"2024-10-17T12:00:00Z\"\n  },\n  \"signUpUrl\": \"https://casting42.com/en/your-company/abc123/sign-up?casting_tag=1729166400-abc123xyz\"\n}"},{"id":"b9a3d1b8-5528-4b66-b6c3-d259243dd989","name":"Success - With Contacts","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"castingName\": \"Commercial - Tech Product\",\n  \"clientId\": \"client-tech-corp-001\",\n  \"agencyId\": \"agency-creative-456\",\n  \"description\": \"30-second commercial spot\",\n  \"shootingDate\": \"2025-02-20\",\n  \"location\": \"New York, NY\",\n  \"open\": true\n}"},"url":"https://casting42.com/api/v2/castings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"project\": {\n    \"id\": 43,\n    \"tag\": \"1729166500-def456uvw\",\n    \"castingName\": \"Commercial - Tech Product\",\n    \"projectName\": \"Commercial - Tech Product\",\n    \"clientId\": 25,\n    \"agencyId\": 12,\n    \"description\": \"30-second commercial spot\",\n    \"shootingDate\": \"2025-02-20\",\n    \"location\": \"New York, NY\",\n    \"open\": true,\n    \"client\": {\n      \"id\": 25,\n      \"tag\": \"client-tech-corp-001\",\n      \"firstName\": \"Sarah\",\n      \"lastName\": \"Johnson\",\n      \"company\": \"Tech Corp\"\n    },\n    \"agency\": {\n      \"id\": 12,\n      \"tag\": \"agency-creative-456\",\n      \"firstName\": \"Mike\",\n      \"lastName\": \"Creative\",\n      \"company\": \"Creative Agency\"\n    },\n    \"createdAt\": \"2024-10-17T12:05:00Z\",\n    \"updatedAt\": \"2024-10-17T12:05:00Z\"\n  },\n  \"signUpUrl\": \"https://casting42.com/en/your-company/abc123/sign-up?casting_tag=1729166500-def456uvw\"\n}"},{"id":"072d0ed1-dd14-49a0-aed1-505817675fa3","name":"Error - Invalid Client ID","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"castingName\": \"Test Casting\",\n  \"clientId\": \"non-existent-client\"\n}"},"url":"https://casting42.com/api/v2/castings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"success\": true,\n  \"project\": {\n    \"id\": 44,\n    \"tag\": \"1729166600-ghi789rst\",\n    \"castingName\": \"Test Casting\",\n    \"clientId\": null,\n    \"createdAt\": \"2024-10-17T12:10:00Z\"\n  },\n  \"signUpUrl\": \"https://casting42.com/en/your-company/abc123/sign-up?casting_tag=1729166600-ghi789rst\"\n}"}],"_postman_id":"4b006fa1-19e1-48e3-aa11-389ce1724bd8"},{"name":"Update Casting","id":"ae8ed9cd-6cec-40fb-b282-780ca4f92917","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"tag\": \"casting-tag-to-update\",\n  \"castingName\": \"Updated Casting Name\",\n  \"open\": false,\n  \"description\": \"Updated description\"\n}"},"url":"https://casting42.com/api/v2/castings/:tag","description":"<p>Update an existing casting.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","castings",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"245763c2-a720-4c45-91b1-8198fa136d8c","type":"any","value":"casting-tag-to-update","key":"tag"}]}},"response":[],"_postman_id":"ae8ed9cd-6cec-40fb-b282-780ca4f92917"},{"name":"Get Candidate Tags","id":"770ebd87-6b60-40a1-b197-73f4e0f31596","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/castings/:tag/candidate-tags","description":"<p>Get available candidate tags for a casting.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","castings",":tag","candidate-tags"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"76ec9b3c-b685-4f7f-832f-46bd274fb471","type":"any","value":"casting-tag-here","key":"tag"}]}},"response":[],"_postman_id":"770ebd87-6b60-40a1-b197-73f4e0f31596"},{"name":"Webhook Example","id":"ba5e58d0-5e4a-4a27-a87b-b62baf7bfd04","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/castings/webhook-example?limit=5","description":"<p>Get example webhook payload for castings.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","castings","webhook-example"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"5"}],"variable":[]}},"response":[],"_postman_id":"ba5e58d0-5e4a-4a27-a87b-b62baf7bfd04"}],"id":"a851a719-2c15-45a0-b2ae-783a80132a8f","_postman_id":"a851a719-2c15-45a0-b2ae-783a80132a8f","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Candidates","item":[{"name":"Create Candidate","id":"4e127273-917c-428b-8e44-3e08d2c30f97","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"casting_tag\": \"casting-tag-here\",\n  \"talent_tag\": \"talent-tag-here\",\n  \"tags\": [\"tag1\", \"tag2\"]\n}"},"url":"https://casting42.com/api/v2/candidates","description":"<p>Add a talent to a casting as a candidate.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","candidates"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4e127273-917c-428b-8e44-3e08d2c30f97"},{"name":"Get Candidate by Tag","id":"a6039938-43c1-4627-b397-29e231e7d10d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/candidates/:tag","description":"<p>Get a specific candidate by their tag.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","candidates",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"cd0f2b3d-53fc-49e8-91f8-e405af81a902","type":"any","value":"candidate-tag-here","key":"tag"}]}},"response":[],"_postman_id":"a6039938-43c1-4627-b397-29e231e7d10d"},{"name":"Webhook Example","id":"48f853e5-0ca5-4331-bd28-5309aaf0d310","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/candidates/webhook-example?limit=5","description":"<p>Get example webhook payload for candidates.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","candidates","webhook-example"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"5"}],"variable":[]}},"response":[],"_postman_id":"48f853e5-0ca5-4331-bd28-5309aaf0d310"}],"id":"165a781e-7dbc-43f9-b9bd-0acf6bdc9ee6","_postman_id":"165a781e-7dbc-43f9-b9bd-0acf6bdc9ee6","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Contacts","item":[{"name":"Create Contact","id":"85f1eab5-cc5b-4ee7-b1bc-01c77f0ed4e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Director\",\n  \"emailAddress\": \"jane.director@example.com\",\n  \"company\": \"Production Company\",\n  \"phoneNumber\": \"+1234567890\",\n  \"communicationLanguage\": \"en\",\n  \"address\": \"123 Main St, City, Country\"\n}"},"url":"https://casting42.com/api/v2/contacts","description":"<p>Create a new contact.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","contacts"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"85f1eab5-cc5b-4ee7-b1bc-01c77f0ed4e9"},{"name":"Update Contact","id":"5c8f835b-52f2-4cc0-aae4-2ee614c51536","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Updated Director\",\n  \"company\": \"New Production Company\"\n}"},"url":"https://casting42.com/api/v2/contacts/:tag","description":"<p>Update an existing contact.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","contacts",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"54b8698c-5647-4dfa-ab67-637602885f1d","type":"any","value":"contact-tag-here","key":"tag"}]}},"response":[],"_postman_id":"5c8f835b-52f2-4cc0-aae4-2ee614c51536"},{"name":"Get Contact by Tag","id":"3b406cbc-e724-4639-998b-4fe02e63297c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/contacts/:tag","description":"<p>Get a specific contact by their tag.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","contacts",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"a5b04e6d-9e60-4168-8297-b801b6806383","type":"any","value":"contact-tag-here","key":"tag"}]}},"response":[],"_postman_id":"3b406cbc-e724-4639-998b-4fe02e63297c"},{"name":"Find Contacts","id":"c81e7524-2143-4e9c-b88c-96ed173bdc10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"firstName\": \"Jane\",\n  \"company\": \"Production Company\"\n}"},"url":"https://casting42.com/api/v2/contacts/find?limit=100&offset=0","description":"<p>Search for contacts by their attributes.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","contacts","find"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"100"},{"key":"offset","value":"0"}],"variable":[]}},"response":[],"_postman_id":"c81e7524-2143-4e9c-b88c-96ed173bdc10"},{"name":"Generate Guest Access Link","id":"acb919a7-adeb-4d1c-b835-c3def417a113","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"contact-tag-here\",\n  \"castingId\": \"casting-tag-here\"\n}"},"url":"https://casting42.com/api/v2/contacts/generate-guest-access-link","description":"<p>Generate a guest access link for a contact to view a specific casting.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","contacts","generate-guest-access-link"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"acb919a7-adeb-4d1c-b835-c3def417a113"},{"name":"Webhook Example","id":"46873b8d-9366-4ccf-bb9a-99325044d08d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/contacts/webhook-example?limit=5","description":"<p>Get example webhook payload for contacts.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","contacts","webhook-example"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"5"}],"variable":[]}},"response":[],"_postman_id":"46873b8d-9366-4ccf-bb9a-99325044d08d"}],"id":"ceeaaf0e-0f01-4923-9f7e-5bf5dbe253cf","_postman_id":"ceeaaf0e-0f01-4923-9f7e-5bf5dbe253cf","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Groups","item":[{"name":"Create Group","id":"d657cf62-ed47-4d37-8d79-80e9b53589d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Lead Actors\",\n  \"color\": \"#FF5733\",\n  \"talents\": []\n}"},"url":"https://casting42.com/api/v2/groups","description":"<p>Create a new group for organizing talents.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","groups"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d657cf62-ed47-4d37-8d79-80e9b53589d0"},{"name":"Get Group by Tag","id":"09d903e8-f390-4689-8fee-110c4ddef518","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/groups/:tag","description":"<p>Get a specific group and its talents by tag.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","groups",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"19849a59-288a-43eb-8758-cea8e924285a","type":"any","value":"group-tag-here","key":"tag"}]}},"response":[],"_postman_id":"09d903e8-f390-4689-8fee-110c4ddef518"},{"name":"Find Group","id":"2e48b75b-7b9b-4fd8-8cd6-84b7e96aa311","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"query\": {\n    \"name\": \"Lead Actors\"\n  }\n}"},"url":"https://casting42.com/api/v2/groups/find","description":"<p>Find a group by query parameters.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","groups","find"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"2e48b75b-7b9b-4fd8-8cd6-84b7e96aa311"},{"name":"Add Talents to Group","id":"3cd64ffb-8b23-403f-b0b1-f63751f41371","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"talents\": [\"talent-tag-1\", \"talent-tag-2\", \"talent-tag-3\"]\n}"},"url":"https://casting42.com/api/v2/groups/add-talents/:tag","description":"<p>Add multiple talents to a group.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","groups","add-talents",":tag"],"host":["https://casting42.com"],"query":[],"variable":[{"id":"73040d74-ce87-42df-9d6c-9a57a3ce83e7","type":"any","value":"group-tag-here","key":"tag"}]}},"response":[],"_postman_id":"3cd64ffb-8b23-403f-b0b1-f63751f41371"},{"name":"Webhook Example","id":"ff5d6dd7-97a7-489d-8e78-289293940686","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/groups/webhook-example?limit=5","description":"<p>Get example webhook payload for groups.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","groups","webhook-example"],"host":["https://casting42.com"],"query":[{"key":"limit","value":"5"}],"variable":[]}},"response":[],"_postman_id":"ff5d6dd7-97a7-489d-8e78-289293940686"}],"id":"1892699d-68cb-4ae5-9f6e-14b5c54946fe","_postman_id":"1892699d-68cb-4ae5-9f6e-14b5c54946fe","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Settings & Fields","item":[{"name":"Get All Fields","id":"853d92f5-44ae-4ae8-9b01-c67ff8820b56","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/settings/fields?lang=en","description":"<h1 id=\"get-all-custom-fields\">Get All Custom Fields</h1>\n<p>Retrieve all fields enabled for API access, including standard fields, custom fields, and skill categories.</p>\n<h2 id=\"response-structure\">Response Structure</h2>\n<p>The response includes three types of fields:</p>\n<h3 id=\"1-standard-fields\">1. Standard Fields</h3>\n<p>Built-in Casting42 fields:</p>\n<ul>\n<li><strong>One-selection</strong>: Dropdown fields (gender, ethnicity, hair color, etc.)</li>\n<li><strong>Standard fields</strong>: Text, number, date fields (firstName, height, birthday, etc.)</li>\n</ul>\n<h3 id=\"2-custom-fields\">2. Custom Fields</h3>\n<p>User-created fields:</p>\n<ul>\n<li>Text</li>\n<li>Number</li>\n<li>Date</li>\n<li>Checkbox</li>\n<li>WYSIWYG (rich text)</li>\n</ul>\n<h3 id=\"3-skill-categories-custom-dropdowns\">3. Skill Categories (Custom Dropdowns)</h3>\n<p>Multi-select skill categories:</p>\n<ul>\n<li>Languages</li>\n<li>Sports</li>\n<li>Musical Instruments</li>\n<li>Special Skills</li>\n<li>etc.</li>\n</ul>\n<h2 id=\"field-properties\">Field Properties</h2>\n<p>Each field includes:</p>\n<ul>\n<li><code>name</code>: Field name (camelCase)</li>\n<li><code>type</code>: Field type</li>\n<li><code>required</code>: Whether field is required</li>\n<li><code>inputType</code>: How to display the field</li>\n<li><code>options</code>: Available values (for dropdowns)</li>\n<li><code>id</code>: Field ID (for import API)</li>\n</ul>\n<h2 id=\"language-support\">Language Support</h2>\n<p>Use the <code>lang</code> parameter to get field labels in different languages:</p>\n<ul>\n<li><code>en</code>: English</li>\n<li><code>nl</code>: Dutch</li>\n<li><code>de</code>: German</li>\n<li><code>fr</code>: French</li>\n<li><code>es</code>: Spanish</li>\n<li><code>pt</code>: Portuguese</li>\n<li><code>it</code>: Italian</li>\n</ul>\n<p>Field values and options are returned in the requested language.</p>\n<h2 id=\"input-types\">Input Types</h2>\n<h3 id=\"text\">text</h3>\n<p>Simple text input:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"firstName\",\n  \"type\": \"text\",\n  \"required\": true,\n  \"inputType\": \"text\"\n}\n</code></pre>\n<h3 id=\"number\">number</h3>\n<p>Numeric input:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"height\",\n  \"type\": \"number\",\n  \"required\": false,\n  \"inputType\": \"number\"\n}\n</code></pre>\n<h3 id=\"date\">date</h3>\n<p>Date picker:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"birthday\",\n  \"type\": \"date\",\n  \"required\": false,\n  \"inputType\": \"date\"\n}\n</code></pre>\n<h3 id=\"select-one-selection\">select (one-selection)</h3>\n<p>Single-select dropdown:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"gender\",\n  \"type\": \"one-selection\",\n  \"required\": false,\n  \"inputType\": \"select\",\n  \"options\": [\n    {\"id\": 1, \"value\": \"Male\"},\n    {\"id\": 2, \"value\": \"Female\"},\n    {\"id\": 3, \"value\": \"Non-binary\"}\n  ]\n}\n</code></pre>\n<h3 id=\"multiselect-custom-dropdownskill-category\">multiselect (custom-dropdown/skill-category)</h3>\n<p>Multi-select dropdown:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"Languages\",\n  \"type\": \"custom-dropdown\",\n  \"required\": false,\n  \"inputType\": \"multiselect\",\n  \"options\": [\n    {\"id\": 1, \"value\": \"English\"},\n    {\"id\": 2, \"value\": \"Spanish\"},\n    {\"id\": 3, \"value\": \"French\"}\n  ]\n}\n</code></pre>\n<h3 id=\"checkbox\">checkbox</h3>\n<p>Boolean checkbox:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"driverLicense\",\n  \"type\": \"checkbox\",\n  \"required\": false,\n  \"inputType\": \"checkbox\"\n}\n</code></pre>\n<h3 id=\"wysiwyg\">wysiwyg</h3>\n<p>Rich text editor:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"name\": \"biography\",\n  \"type\": \"wysiwyg\",\n  \"required\": false,\n  \"inputType\": \"wysiwyg\"\n}\n</code></pre>\n<h2 id=\"use-cases\">Use Cases</h2>\n<h3 id=\"build-dynamic-forms\">Build Dynamic Forms</h3>\n<p>Use this endpoint to build talent registration forms dynamically:</p>\n<ol>\n<li>Get all fields</li>\n<li>Filter by <code>required: true</code> for required fields</li>\n<li>Render appropriate input based on <code>inputType</code></li>\n<li>Populate dropdowns with <code>options</code></li>\n</ol>\n<h3 id=\"validation\">Validation</h3>\n<p>Validate data before sending:</p>\n<ol>\n<li>Check required fields</li>\n<li>Validate data types</li>\n<li>Check against available options for dropdowns</li>\n</ol>\n<h3 id=\"importexport\">Import/Export</h3>\n<p>Use field IDs for data import:</p>\n<ol>\n<li>Get field mappings</li>\n<li>Map CSV columns to field names</li>\n<li>Use IDs for skill categories</li>\n</ol>\n<h2 id=\"field-categories\">Field Categories</h2>\n<p>Fields are organized by tab:</p>\n<ul>\n<li><code>summary</code>: Overview tab (default)</li>\n<li><code>personal</code>: Personal information</li>\n<li><code>physical</code>: Physical attributes</li>\n<li><code>professional</code>: Professional details</li>\n<li>Custom tabs</li>\n</ul>\n<h2 id=\"best-practices\">Best Practices</h2>\n<ol>\n<li><strong>Cache field data</strong>: Changes infrequently, cache for 1 hour+</li>\n<li><strong>Support multiple languages</strong>: Pass user's language preference</li>\n<li><strong>Handle new fields</strong>: Design UI to handle dynamic fields</li>\n<li><strong>Respect required fields</strong>: Always include required fields</li>\n</ol>\n<h2 id=\"response-size\">Response Size</h2>\n<p>Typical response:</p>\n<ul>\n<li>30-50 fields</li>\n<li>5-10KB payload</li>\n<li>Sub-100ms response time</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","settings","fields"],"host":["https://casting42.com"],"query":[{"description":{"content":"<p>Language code: en, nl, de, fr, es, pt, it, etc.</p>\n","type":"text/plain"},"key":"lang","value":"en"}],"variable":[]}},"response":[{"id":"0b41aa7c-13c9-4d61-893a-b83884b393d9","name":"Success Response","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://casting42.com/api/v2/settings/fields?lang=en","host":["https://casting42.com"],"path":["api","v2","settings","fields"],"query":[{"key":"lang","value":"en"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"fields\": [\n    {\n      \"name\": \"firstName\",\n      \"type\": \"standard-field\",\n      \"required\": true,\n      \"inputType\": \"text\",\n      \"id\": 1\n    },\n    {\n      \"name\": \"lastName\",\n      \"type\": \"standard-field\",\n      \"required\": true,\n      \"inputType\": \"text\",\n      \"id\": 2\n    },\n    {\n      \"name\": \"emailAddress\",\n      \"type\": \"standard-field\",\n      \"required\": true,\n      \"inputType\": \"email\",\n      \"id\": 3\n    },\n    {\n      \"name\": \"phoneNumber\",\n      \"type\": \"standard-field\",\n      \"required\": false,\n      \"inputType\": \"tel\",\n      \"id\": 4\n    },\n    {\n      \"name\": \"birthday\",\n      \"type\": \"standard-field\",\n      \"required\": false,\n      \"inputType\": \"date\",\n      \"id\": 5\n    },\n    {\n      \"name\": \"height\",\n      \"type\": \"standard-field\",\n      \"required\": false,\n      \"inputType\": \"number\",\n      \"id\": 6\n    },\n    {\n      \"name\": \"weight\",\n      \"type\": \"standard-field\",\n      \"required\": false,\n      \"inputType\": \"number\",\n      \"id\": 7\n    },\n    {\n      \"name\": \"gender\",\n      \"type\": \"one-selection\",\n      \"required\": false,\n      \"inputType\": \"select\",\n      \"options\": [\n        {\"id\": 1, \"value\": \"Male\"},\n        {\"id\": 2, \"value\": \"Female\"},\n        {\"id\": 3, \"value\": \"Non-binary\"},\n        {\"id\": 4, \"value\": \"Prefer not to say\"}\n      ],\n      \"id\": 8\n    },\n    {\n      \"name\": \"ethnicity\",\n      \"type\": \"one-selection\",\n      \"required\": false,\n      \"inputType\": \"select\",\n      \"options\": [\n        {\"id\": 1, \"value\": \"Caucasian\"},\n        {\"id\": 2, \"value\": \"African\"},\n        {\"id\": 3, \"value\": \"Asian\"},\n        {\"id\": 4, \"value\": \"Hispanic\"},\n        {\"id\": 5, \"value\": \"Middle Eastern\"},\n        {\"id\": 6, \"value\": \"Mixed\"}\n      ],\n      \"id\": 9\n    },\n    {\n      \"name\": \"hairColor\",\n      \"type\": \"one-selection\",\n      \"required\": false,\n      \"inputType\": \"select\",\n      \"options\": [\n        {\"id\": 1, \"value\": \"Black\"},\n        {\"id\": 2, \"value\": \"Brown\"},\n        {\"id\": 3, \"value\": \"Blonde\"},\n        {\"id\": 4, \"value\": \"Red\"},\n        {\"id\": 5, \"value\": \"Gray\"},\n        {\"id\": 6, \"value\": \"White\"}\n      ],\n      \"id\": 10\n    },\n    {\n      \"name\": \"eyesColor\",\n      \"type\": \"one-selection\",\n      \"required\": false,\n      \"inputType\": \"select\",\n      \"options\": [\n        {\"id\": 1, \"value\": \"Brown\"},\n        {\"id\": 2, \"value\": \"Blue\"},\n        {\"id\": 3, \"value\": \"Green\"},\n        {\"id\": 4, \"value\": \"Hazel\"},\n        {\"id\": 5, \"value\": \"Gray\"}\n      ],\n      \"id\": 11\n    },\n    {\n      \"name\": \"biography\",\n      \"type\": \"standard-field\",\n      \"required\": false,\n      \"inputType\": \"wysiwyg\",\n      \"id\": 12\n    },\n    {\n      \"name\": \"Languages\",\n      \"type\": \"custom-dropdown\",\n      \"required\": false,\n      \"inputType\": \"multiselect\",\n      \"options\": [\n        {\"id\": 1, \"value\": \"English - Native\"},\n        {\"id\": 2, \"value\": \"English - Fluent\"},\n        {\"id\": 3, \"value\": \"English - Conversational\"},\n        {\"id\": 4, \"value\": \"Spanish - Native\"},\n        {\"id\": 5, \"value\": \"Spanish - Fluent\"},\n        {\"id\": 6, \"value\": \"French - Native\"},\n        {\"id\": 7, \"value\": \"French - Fluent\"},\n        {\"id\": 8, \"value\": \"German - Fluent\"}\n      ],\n      \"id\": 20\n    },\n    {\n      \"name\": \"Sports\",\n      \"type\": \"custom-dropdown\",\n      \"required\": false,\n      \"inputType\": \"multiselect\",\n      \"options\": [\n        {\"id\": 10, \"value\": \"Swimming\"},\n        {\"id\": 11, \"value\": \"Running\"},\n        {\"id\": 12, \"value\": \"Basketball\"},\n        {\"id\": 13, \"value\": \"Football\"},\n        {\"id\": 14, \"value\": \"Tennis\"},\n        {\"id\": 15, \"value\": \"Yoga\"}\n      ],\n      \"id\": 21\n    },\n    {\n      \"name\": \"Musical Instruments\",\n      \"type\": \"custom-dropdown\",\n      \"required\": false,\n      \"inputType\": \"multiselect\",\n      \"options\": [\n        {\"id\": 20, \"value\": \"Piano\"},\n        {\"id\": 21, \"value\": \"Guitar\"},\n        {\"id\": 22, \"value\": \"Violin\"},\n        {\"id\": 23, \"value\": \"Drums\"},\n        {\"id\": 24, \"value\": \"Saxophone\"}\n      ],\n      \"id\": 22\n    },\n    {\n      \"name\": \"Agency Contact\",\n      \"type\": \"custom-field\",\n      \"required\": false,\n      \"inputType\": \"text\",\n      \"id\": 100\n    },\n    {\n      \"name\": \"IMDB Link\",\n      \"type\": \"custom-field\",\n      \"required\": false,\n      \"inputType\": \"text\",\n      \"id\": 101\n    },\n    {\n      \"name\": \"Driver License\",\n      \"type\": \"custom-field\",\n      \"required\": false,\n      \"inputType\": \"checkbox\",\n      \"id\": 102\n    },\n    {\n      \"name\": \"Experience Years\",\n      \"type\": \"custom-field\",\n      \"required\": false,\n      \"inputType\": \"number\",\n      \"id\": 103\n    }\n  ]\n}"},{"id":"6fbb48fc-b822-4664-aa7e-37cb93bd54ea","name":"Success - Dutch Language","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://casting42.com/api/v2/settings/fields?lang=nl","host":["https://casting42.com"],"path":["api","v2","settings","fields"],"query":[{"key":"lang","value":"nl"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n  \"fields\": [\n    {\n      \"name\": \"firstName\",\n      \"type\": \"standard-field\",\n      \"required\": true,\n      \"inputType\": \"text\",\n      \"label\": \"Voornaam\",\n      \"id\": 1\n    },\n    {\n      \"name\": \"lastName\",\n      \"type\": \"standard-field\",\n      \"required\": true,\n      \"inputType\": \"text\",\n      \"label\": \"Achternaam\",\n      \"id\": 2\n    },\n    {\n      \"name\": \"height\",\n      \"type\": \"standard-field\",\n      \"required\": false,\n      \"inputType\": \"number\",\n      \"label\": \"Lengte\",\n      \"id\": 6\n    },\n    {\n      \"name\": \"Talen\",\n      \"type\": \"custom-dropdown\",\n      \"required\": false,\n      \"inputType\": \"multiselect\",\n      \"options\": [\n        {\"id\": 1, \"value\": \"Engels - Moedertaal\"},\n        {\"id\": 2, \"value\": \"Engels - Vloeiend\"},\n        {\"id\": 9, \"value\": \"Nederlands - Moedertaal\"},\n        {\"id\": 10, \"value\": \"Nederlands - Vloeiend\"}\n      ],\n      \"id\": 20\n    }\n  ]\n}"}],"_postman_id":"853d92f5-44ae-4ae8-9b01-c67ff8820b56"},{"name":"Get Specific Field","id":"3e31fa6a-2096-4ec2-8177-a571d253629f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://casting42.com/api/v2/settings/fields/:field_type/:name?lang=en","description":"<p>Get details of a specific field by type and name.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","settings","fields",":field_type",":name"],"host":["https://casting42.com"],"query":[{"key":"lang","value":"en"}],"variable":[{"id":"fbfcdd77-731e-4ce7-a2e6-e7fb9f74537e","description":{"content":"<p>Options: custom-dropdown, one-selection, standard-field, custom-field</p>\n","type":"text/plain"},"type":"any","value":"custom-dropdown","key":"field_type"},{"id":"de691cd3-6dc8-4783-961d-88f0cf26fd62","type":"any","value":"field-name-here","key":"name"}]}},"response":[],"_postman_id":"3e31fa6a-2096-4ec2-8177-a571d253629f"},{"name":"Create Custom Dropdown","id":"4c79d55b-c1da-4e26-bd9c-82875f9251ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Special Skills\"\n}"},"url":"https://casting42.com/api/v2/settings/fields/custom-dropdowns?lang=en","description":"<p>Create a new custom dropdown field (skill category).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","settings","fields","custom-dropdowns"],"host":["https://casting42.com"],"query":[{"key":"lang","value":"en"}],"variable":[]}},"response":[],"_postman_id":"4c79d55b-c1da-4e26-bd9c-82875f9251ac"},{"name":"Add Values to Custom Dropdown","id":"229c0e51-1936-4dda-9563-6ff7e912412a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"values\": [\"Value 1\", \"Value 2\", \"Value 3\"]\n}"},"url":"https://casting42.com/api/v2/settings/fields/custom-dropdowns/:name/values?lang=en","description":"<p>Add values to an existing custom dropdown.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","settings","fields","custom-dropdowns",":name","values"],"host":["https://casting42.com"],"query":[{"key":"lang","value":"en"}],"variable":[{"id":"366d01e5-cf81-42f1-a97d-e6fd6cf1bb27","type":"any","value":"Special Skills","key":"name"}]}},"response":[],"_postman_id":"229c0e51-1936-4dda-9563-6ff7e912412a"},{"name":"Add Values to Standard Dropdown","id":"d401bbf8-e02f-4c95-a61d-65d5e44b70c2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"values\": [\"New Value 1\", \"New Value 2\"]\n}"},"url":"https://casting42.com/api/v2/settings/fields/standard-dropdowns/:name/values?lang=en","description":"<p>Add values to a standard dropdown field.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","settings","fields","standard-dropdowns",":name","values"],"host":["https://casting42.com"],"query":[{"key":"lang","value":"en"}],"variable":[{"id":"85e3558c-1961-4cf8-b6c6-d1606965d039","description":{"content":"<p>Standard field name (e.g., ethnicity, nationality, etc.)</p>\n","type":"text/plain"},"type":"any","value":"ethnicity","key":"name"}]}},"response":[],"_postman_id":"d401bbf8-e02f-4c95-a61d-65d5e44b70c2"},{"name":"Create Custom Field","id":"92ec9a2e-3d95-4c03-a6ce-85e319bb6ddd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"name\": \"Agency Contact\",\n  \"fieldType\": \"text\"\n}"},"url":"https://casting42.com/api/v2/settings/fields/custom-fields?lang=en","description":"<p>Create a new custom field. Field types: text, number, date, checkbox, wysiwyg.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","settings","fields","custom-fields"],"host":["https://casting42.com"],"query":[{"key":"lang","value":"en"}],"variable":[]}},"response":[],"_postman_id":"92ec9a2e-3d95-4c03-a6ce-85e319bb6ddd"}],"id":"21144afa-19e9-4df6-a03e-f84e6062165e","_postman_id":"21144afa-19e9-4df6-a03e-f84e6062165e","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}},{"name":"Webhooks","item":[{"name":"Create Webhook","id":"f6723643-96a8-49fe-9ea8-ddb59987c38f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"hook_url\": \"https://your-webhook-url.com/endpoint\",\n  \"events\": \"talent.created\"\n}"},"url":"https://casting42.com/api/v2/webhooks/zapier/new","description":"<p>Create a new webhook endpoint. Available events: talent.created, talent.updated, casting.created, casting.updated, candidate.created, contact.created, contact.updated, group.created.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","webhooks","zapier","new"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f6723643-96a8-49fe-9ea8-ddb59987c38f"},{"name":"Delete Webhook","id":"d835be84-f924-45a3-98a4-25490e606cee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"raw","raw":"{\n  \"id\": \"webhook-tag-here\"\n}"},"url":"https://casting42.com/api/v2/webhooks/zapier/delete","description":"<p>Delete an existing webhook by its tag.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}},"urlObject":{"path":["api","v2","webhooks","zapier","delete"],"host":["https://casting42.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d835be84-f924-45a3-98a4-25490e606cee"}],"id":"58691dfe-934e-4e8c-90d5-86245c7b86fa","_postman_id":"58691dfe-934e-4e8c-90d5-86245c7b86fa","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":true,"source":{"_postman_id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","id":"1cbb6bd3-d6e2-4166-8d92-bbd1c0930f32","name":"Casting42 API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]}},"variable":[{"key":"base_url","value":"https://casting42.com","type":"string"},{"key":"api_key","value":"YOUR_API_KEY_HERE","type":"string"},{"key":"jwt_token","value":"","type":"string"}]}