{"info":{"_postman_id":"a3b1763b-6aaa-430a-a77c-2f7d3e8a4897","name":"TDT Metrics API – PUBLIC","description":"<html><head></head><body><p>This collection contains the <strong>publicly supported</strong> endpoints of the TDT Metrics API. Only the requests included here are considered stable and suitable for client integration.</p>\n<hr>\n<h2 id=\"base-url\">Base URL</h2>\n<p>Use the active Postman Environment to set:</p>\n<ul>\n<li><code>api_url</code> — API base URL (example: <code>https://api.metrics.tdtglobal.io/api</code>)</li>\n</ul>\n<p>All requests are executed against:<br><code>{{api_url}}</code></p>\n<hr>\n<h2 id=\"authentication-keycloak-proxy\">Authentication (Keycloak Proxy)</h2>\n<p>Authentication is handled through <strong>Keycloak (proxy)</strong> via:</p>\n<ul>\n<li><strong>POST</strong> <code>/auth/login</code></li>\n</ul>\n<p>On success, the API returns an <code>access_token</code> (JWT).<br>For protected endpoints, include:</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<p>Tip: The login request can automatically store the token in your Environment variable <code>token</code> for subsequent calls.</p>\n<hr>\n<h2 id=\"required-headers\">Required Headers</h2>\n<p>Unless otherwise specified, send:</p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<p>Protected endpoints require:</p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<hr>\n<h2 id=\"request-body-conventions\">Request Body Conventions</h2>\n<p>Some endpoints use <code>multipart/form-data</code> (form-data).<br>Field names may follow a nested format such as:</p>\n<ul>\n<li><code>data[attributes][...]</code></li>\n</ul>\n<p>Refer to each endpoint documentation for the exact parameters and types.</p>\n<hr>\n<h2 id=\"standard-error-format\">Standard Error Format</h2>\n<p>Error responses are returned in JSON. Typical failures include:</p>\n<ul>\n<li><p><strong>422</strong> Validation Error (missing/invalid fields)</p>\n</li>\n<li><p><strong>401</strong> Unauthorized (invalid credentials or missing/invalid token)</p>\n</li>\n<li><p><strong>403</strong> Forbidden (access denied)</p>\n</li>\n<li><p><strong>404</strong> Not Found (resource or route not found)</p>\n</li>\n<li><p><strong>503</strong> Service Unavailable (upstream auth provider unavailable / timeout)</p>\n</li>\n<li><p><strong>500</strong> Internal Server Error (unexpected failure)</p>\n</li>\n</ul>\n<p>Each endpoint includes examples for common error scenarios.</p>\n<hr>\n<h2 id=\"support--versioning\">Support / Versioning</h2>\n<p>This collection represents the <strong>public contract</strong> for client integrations.<br>Breaking changes (if any) should be communicated ahead of time and versioned accordingly.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"21299040","collectionId":"a3b1763b-6aaa-430a-a77c-2f7d3e8a4897","publishedId":"2sBXc8oPAF","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"5947b2"},"publishDate":"2026-02-10T21:05:18.000Z"},"item":[{"name":"Auth","item":[{"name":"User login","event":[{"listen":"test","script":{"id":"0bff05f1-1f39-4bed-b1d0-8aac4e63a3ac","exec":["// Guardar access_token en el ENVIRONMENT (TDT metrics)\r","if (pm.response.code === 200) {\r","  const json = pm.response.json();\r","\r","  if (json?.access_token) {\r","    pm.environment.set(\"token\", json.access_token);\r","  }\r","\r","  // opcional: guardar token_type\r","  if (json?.token_type) {\r","    pm.environment.set(\"token_type\", json.token_type);\r","  } else {\r","    pm.environment.set(\"token_type\", \"Bearer\");\r","  }\r","}\r","\r","// Tests básicos visibles en \"Test Results\"\r","pm.test(\"Login returns 200\", function () {\r","  pm.response.to.have.status(200);\r","});\r","\r","pm.test(\"Login returns access_token\", function () {\r","  const json = pm.response.json();\r","  pm.expect(json).to.have.property(\"access_token\");\r","});\r","\r",""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"4727f0da-db6b-4964-bd4a-663eddf00dbd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"data[attributes][email]","value":"{{email}}","type":"text","description":"<p>required | email</p>\n"},{"key":"data[attributes][password]","value":"{{password}}","type":"text","description":"<p>required | string</p>\n"}]},"url":"{{api_url}}/auth/login","description":"<h3 id=\"login\">Login</h3>\n<p>Authenticates a user through <strong>Keycloak (proxy)</strong> and returns an <strong>access token (JWT)</strong> plus the authenticated user profile (including relationships such as country and roles). Use the returned token to access protected endpoints.</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint <strong>does not require</strong> an <code>Authorization</code> header (public endpoint).</p>\n<p>For protected endpoints, include:</p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>/api/auth/login</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<p><strong>Content-Type:</strong> <code>multipart/form-data</code> (form-data)</p>\n<h4 id=\"body-parameters-form-data\">Body Parameters (form-data)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data[attributes][email]</code></td>\n<td>Yes</td>\n<td>string (email)</td>\n<td>User email address</td>\n</tr>\n<tr>\n<td><code>data[attributes][password]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>User password</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--login-success\">200 OK — Login Success</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h4 id=\"example-response-200\">Example Response (200)</h4>\n<blockquote>\n<p>&lt;p &gt;Token and personal data are shown with generic values.&lt;/p&gt; </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...&lt;truncated&gt;\",\n  \"token_type\": \"Bearer\",\n  \"expires_at\": \"2026-12-31 23:59:59\",\n  \"user\": {\n    \"id\": 123,\n    \"type\": \"users\",\n    \"attributes\": {\n      \"name\": \"John\",\n      \"last_name\": \"Doe\",\n      \"avatar\": null,\n      \"email\": \"john.doe@example.com\",\n      \"country_id\": 2,\n      \"company_id\": 63,\n      \"user_type_id\": 1,\n      \"timezone\": \"America/Montevideo\",\n      \"position\": \"Admin\",\n      \"phone_number\": \"+598 9000 0000\",\n      \"birthday\": null,\n      \"gender\": null,\n      \"first_loggin_at\": \"2026-02-05 14:35:18\"\n    },\n    \"relationships\": {\n      \"country\": {\n        \"data\": { \"id\": 2, \"type\": \"countries\", \"name\": \"Uruguay\" }\n      },\n      \"user_type\": {\n        \"data\": { \"id\": 1, \"type\": \"user_types\" }\n      },\n      \"permissions\": { \"data\": [] },\n      \"roles\": {\n        \"data\": [{ \"id\": 1, \"type\": \"roles\" }]\n      }\n    },\n    \"links\": {\n      \"self\": \"https://api.example.com/api/users/123\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h3>\n<p>Returned when required fields are missing or incorrectly formatted.</p>\n<h4 id=\"example-response-422\">Example Response (422)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The data.attributes.email field is required. (and 1 more error)\",\n  \"errors\": {\n    \"data.attributes.email\": [\n      \"The data.attributes.email field is required.\"\n    ],\n    \"data.attributes.password\": [\n      \"The data.attributes.password field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"401-unauthorized--invalid-credentials\">401 Unauthorized — Invalid Credentials</h3>\n<p>Returned when the email or password is incorrect.</p>\n<h4 id=\"example-response-401\">Example Response (401)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Invalid credentials.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"403-forbidden--access-denied\">403 Forbidden — Access Denied</h3>\n<p>Returned when the user's access is restricted (disabled, blocked, or not allowed).</p>\n<h4 id=\"example-response-403\">Example Response (403)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Access denied.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the route is incorrect or the requested resource is not available.</p>\n<h4 id=\"example-response-404\">Example Response (404)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<h4 id=\"example-response-500\">Example Response (500)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"curl-example\">cURL Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/auth/login' \\\n  --header 'Accept: application/json' \\\n  --form 'data[attributes][email]=\"{{email}}\"' \\\n  --form 'data[attributes][password]=\"{{password}}\"'\n\n</code></pre>\n<hr />\n<h2 id=\"token-usage\">Token Usage</h2>\n<p>For protected endpoints:</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n","urlObject":{"path":["auth","login"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"83e7c023-0e7a-46a8-82bf-72cb5e458b88","name":"200 OK — Login Success","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"data[attributes][email]","value":"{{email}}","type":"text","description":"required | email"},{"key":"data[attributes][password]","value":"{{password}}","type":"text","description":"required | string"}]},"url":"{{api_url}}/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 17:36:41 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"69e2928d-9478-4bf5-a50f-acba60e84a73"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJaWFRXUnkwTDZBRUFEMU1qNzRXMUhLMDZENmlHMTF4YkpyZGNFVk1nQzNnIn0.eyJleHAiOjE3NzI5OTE0MDYsImlhdCI6MTc3MDM5OTQwNiwianRpIjoiOTkwM2RlMTItYTA4OS00NWU2LTkyYjYtODk4ZGNiMjg0ZDY2IiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5kZXYudG9sYmVyLmlvL2F1dGgvcmVhbG1zL1REVCIsImF1ZCI6WyJwbGFubmluZyIsInRkdC1jb21tb25zIiwidGR0LXJlc291cmNlcyIsImludmVudG9yeSIsImFjY291bnQiXSwic3ViIjoiNzBjMDM3ZTQtNDRmMy00NTA1LTgxMzYtMGMwNGRjOGRiN2I5IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiaW50ZWdyYWNpb24tYXBpLXVzZXIiLCJzZXNzaW9uX3N0YXRlIjoiY2ZiOGExMmUtNjI4YS00ZGZjLTk2YTAtNmI2MTNiNmNkYTg4IiwiYWNyIjoiMSIsInJlYWxtX2FjY2VzcyI6eyJyb2xlcyI6WyJvZmZsaW5lX2FjY2VzcyIsInVtYV9hdXRob3JpemF0aW9uIl19LCJyZXNvdXJjZV9hY2Nlc3MiOnsicGxhbm5pbmciOnsicm9sZXMiOlsiYWRtaW4iXX0sInRkdC1jb21tb25zIjp7InJvbGVzIjpbImFkbWluIl19LCJ0ZHQtcmVzb3VyY2VzIjp7InJvbGVzIjpbIk9yZ2FuaXphY2lvbmVzIiwiQWRtaW5pc3RyYXRvciIsIkJyYW5kcyIsIlJhem9uZXMgc29jaWFsZXMiXX0sImludmVudG9yeSI6eyJyb2xlcyI6WyJhZG1pbmlzdHJhdG9yIl19LCJhY2NvdW50Ijp7InJvbGVzIjpbIm1hbmFnZS1hY2NvdW50IiwibWFuYWdlLWFjY291bnQtbGlua3MiLCJ2aWV3LXByb2ZpbGUiXX19LCJzY29wZSI6Im9wZW5pZCBwcm9maWxlIG9mZmxpbmVfYWNjZXNzIGVtYWlsIiwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJuYW1lIjoiQVBJIEludGVncmF0aW9uIiwicHJlZmVycmVkX3VzZXJuYW1lIjoiYXBpLmludGVncmF0aW9uQHRkdGdsb2JhbC5pbyIsImdpdmVuX25hbWUiOiJBUEkiLCJmYW1pbHlfbmFtZSI6IkludGVncmF0aW9uIiwiZW1haWwiOiJhcGkuaW50ZWdyYXRpb25AdGR0Z2xvYmFsLmlvIn0.VpovxRDrWZxo8J8-kgWK2QjrD5sxF9rk_XTz0uqMMHZ9_Qz7FvXoKYjK3XkWdolmFyVFuWXm331pFQFT8SqUCYD7GuTKCyy5Q7Ec3YhmG7E_VIfSBn9b0LvJGCppU7VJfLvfOYGIgvuwHRV81qnobHo0YveuMxyEFf3Oy36un-Wx87qenfhuLcN25zqoEuty7lqAO0KvJPLCKSHybPzHp9AuT68xNY5ev_AX7zSj7UfgG4FQWV6P7wUcpdXGc6spCla0Y1Xe5zDok8rtTNCb0dufP-dsmu1waMtlv4vDQ4l2lhsz7nv46szchnrgjJ7KZzjOpD6iTj1qlGDRRWnn8w\",\n    \"token_type\": \"Bearer\",\n    \"expires_at\": \"2026-03-08 17:36:49\",\n    \"user\": {\n        \"id\": 180,\n        \"type\": \"users\",\n        \"attributes\": {\n            \"name\": \"API\",\n            \"last_name\": \"Integration\",\n            \"avatar\": null,\n            \"email\": \"api.integration@tdtglobal.io\",\n            \"country_id\": 4,\n            \"company_id\": 55,\n            \"user_type_id\": 1,\n            \"timezone\": null,\n            \"position\": \"Admin\",\n            \"phone_number\": null,\n            \"birthday\": null,\n            \"gender\": null,\n            \"first_loggin_at\": \"2026-02-06 17:36:49\"\n        },\n        \"relationships\": {\n            \"country\": {\n                \"data\": {\n                    \"id\": 4,\n                    \"type\": \"countries\",\n                    \"name\": \"Mexico\"\n                }\n            },\n            \"company\": {\n                \"data\": {\n                    \"id\": 55,\n                    \"type\": \"companies\",\n                    \"name\": \"inDrive\",\n                    \"logo\": \"https://metrics-tdtglobal.s3.amazonaws.com/images/companies/system-company-55-681280c993ce5.jpg\",\n                    \"profile\": {\n                        \"id\": 2,\n                        \"name\": \"Premium\"\n                    }\n                }\n            },\n            \"user_type\": {\n                \"data\": {\n                    \"id\": 1,\n                    \"type\": \"user_types\"\n                }\n            },\n            \"permissions\": {\n                \"data\": []\n            },\n            \"roles\": {\n                \"data\": [\n                    {\n                        \"id\": 1,\n                        \"type\": \"roles\"\n                    }\n                ]\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/users/180\"\n        }\n    },\n    \"refresh_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiODExOWM4NS1lMjFmLTQ1ZDktODBmZC03M2FmZmMwNWI0MGEifQ.eyJpYXQiOjE3NzAzOTk0MDYsImp0aSI6IjhjOTRhY2U1LTYzZDUtNGQwYS04YmIwLTQ5YzdlNWM3YWZiYSIsImlzcyI6Imh0dHBzOi8vb2F1dGguZGV2LnRvbGJlci5pby9hdXRoL3JlYWxtcy9URFQiLCJhdWQiOiJodHRwczovL29hdXRoLmRldi50b2xiZXIuaW8vYXV0aC9yZWFsbXMvVERUIiwic3ViIjoiNzBjMDM3ZTQtNDRmMy00NTA1LTgxMzYtMGMwNGRjOGRiN2I5IiwidHlwIjoiT2ZmbGluZSIsImF6cCI6ImludGVncmFjaW9uLWFwaS11c2VyIiwic2Vzc2lvbl9zdGF0ZSI6ImNmYjhhMTJlLTYyOGEtNGRmYy05NmEwLTZiNjEzYjZjZGE4OCIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgb2ZmbGluZV9hY2Nlc3MgZW1haWwifQ.HglCgYuogKe3VbLtXq9RxVUWfonyMB2zgiDfmx-EsvY\",\n    \"refresh_expires_in\": 0\n}"},{"id":"9da89fa2-e42c-40d8-857a-f4464c23fb96","name":"401 Unauthorized — Invalid Credentials","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"data[attributes][email]","value":"{{email}}","type":"text","description":"required | email"},{"key":"data[attributes][password]","value":"{{password}}","type":"text","description":"required | string"}]},"url":"{{api_url}}/auth/login"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Thu, 05 Feb 2026 21:10:42 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"60749b98-19a4-4bf8-98ed-47d41fe8a3e4"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Invalid credentials.\"\n}"},{"id":"c6866278-9be4-431e-8eea-ad4d24fa6d89","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"data[attributes][email]","value":"{{email}}","type":"text","description":"required | email"},{"key":"data[attributes][password]","value":"{{password}}","type":"text","description":"required | string"}]},"url":"{{api_url}}/auth/login"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 17:19:14 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"47bf84a0-3090-47a3-9899-83f32933702b"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"b2f1e713-eb77-4204-8354-bb80bf3b87d2","name":"422 - Validation error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"data[attributes][email]","value":"{{email}}","type":"text","description":"required | email"},{"key":"data[attributes][password]","value":"{{password}}","type":"text","description":"required | string"}]},"url":"{{api_url}}/auth/login"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Feb 2026 18:39:08 GMT"},{"key":"Server","value":"Apache/2.4.58 (Ubuntu)"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"c43e2116-408e-4ff6-b933-7f3662396b9e"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The data.attributes.email field is required. (and 1 more error)\",\n    \"errors\": {\n        \"data.attributes.email\": [\n            \"The data.attributes.email field is required.\"\n        ],\n        \"data.attributes.password\": [\n            \"The data.attributes.password field is required.\"\n        ]\n    }\n}"},{"id":"f37f0a60-dbd8-4b3e-ac1f-8c1399c92395","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"data[attributes][email]","value":"{{email}}","type":"text","description":"required | email"},{"key":"data[attributes][password]","value":"{{password}}","type":"text","description":"required | string"}]},"url":"{{api_url}}/auth/login"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:10:05 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"d13e7649-778c-4c7a-a074-47df28a73cdd"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"4727f0da-db6b-4964-bd4a-663eddf00dbd"},{"name":"Login m2m","event":[{"listen":"test","script":{"id":"32347c73-99f3-46fe-884d-0d42f23a36d6","exec":["const responseJson = pm.response.json();\r","\r","if (responseJson.data && responseJson.data.access_token) {\r","    pm.environment.set(\"token\", responseJson.data.access_token);\r","    console.log(\"Access token saved to environment variable {{token}}\");\r","} else {\r","    console.error(\"Access token not found in the response\");\r","}"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"44e1b1d5-5782-4628-b47c-f075ea3416f3","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"50bd3508-9015-4a18-8afa-77e0743f5b78","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"content-type","value":"application/json; charset=utf-8","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"email","value":"{{username}}","type":"text","description":"<p>required|string|email</p>\n","disabled":true},{"key":"password","value":"{{password}}","type":"text","description":"<p>required|string</p>\n","disabled":true}]},"url":"{{api_url}}/auth/service-token","description":"<h1 id=\"login-m2m--service-token\">Login (M2M) — Service Token</h1>\n<p>Generates an <strong>access token (JWT)</strong> for <strong>machine-to-machine (M2M)</strong> integrations using a service account. Use the returned token to access protected endpoints.</p>\n<hr />\n<h1 id=\"authentication\">Authentication</h1>\n<p>This endpoint does <strong>not</strong> require an <code>Authorization</code> header (public endpoint).</p>\n<p>For protected endpoints, include:</p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<hr />\n<h1 id=\"request\">Request</h1>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>/api/auth/service-token</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<p><strong>Content-Type:</strong> <code>multipart/form-data</code> (form-data)</p>\n<hr />\n<h2 id=\"body-parameters-form-data\">Body Parameters (form-data)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>email</code></td>\n<td>Yes</td>\n<td>string (email)</td>\n<td>Service account email</td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Service account password</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--service-token-generated\">200 OK — Service Token Generated</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Token and personal data are shown with generic values. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Service token for API integrations generated\",\n  \"data\": {\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...&lt;truncated&gt;\",\n    \"token_type\": \"Bearer\",\n    \"expires_in\": 2592000,\n    \"expires_at\": \"2026-03-08 18:06:13\",\n    \"scope\": \"profile email\",\n    \"refresh_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...&lt;truncated&gt;\",\n    \"refresh_expires_in\": 2592000,\n    \"refresh_expires_at\": \"2026-03-08 18:06:13\"\n  }\n}\n\n</code></pre>\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required fields are missing or incorrectly formatted.</p>\n<h3 id=\"example-response-422\">Example Response (422)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The email field is required. (and 1 more error)\",\n  \"errors\": {\n    \"email\": [\n      \"The email field is required.\"\n    ],\n    \"password\": [\n      \"The password field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"401-unauthorized--invalid-credentials\">401 Unauthorized — Invalid Credentials</h2>\n<p>Returned when the email or password is incorrect.</p>\n<h3 id=\"example-response-401\">Example Response (401)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Invalid credentials.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"403-forbidden--access-denied\">403 Forbidden — Access Denied</h2>\n<p>Returned when the service account is blocked/disabled or access is restricted.</p>\n<h3 id=\"example-response-403\">Example Response (403)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Access denied.\"\n}\n\n</code></pre>\n<h2 id=\"404-not-found\">404 Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<h2 id=\"500-internal-server-error\">500 Internal Server Error</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n","urlObject":{"path":["auth","service-token"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"0b0176a1-67c3-4fc4-a9ad-74da09c75efa","name":"Returns access token, token type, and expiration date in JSON format","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"content-length","value":"89","type":"text","disabled":true},{"key":"content-type","value":"application/json; charset=utf-8","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"email","value":"{{username}}","type":"text","description":"required|string|email","disabled":true},{"key":"password","value":"{{password}}","type":"text","description":"required|string","disabled":true}]},"url":"{{api_url}}/auth/service-token"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 18:06:12 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"4e0d2b29-a534-481b-9428-7a58e4e50ea0"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Service token for API integrations generated\",\n    \"data\": {\n        \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJaWFRXUnkwTDZBRUFEMU1qNzRXMUhLMDZENmlHMTF4YkpyZGNFVk1nQzNnIn0.eyJleHAiOjE3NzI5OTMxNzMsImlhdCI6MTc3MDQwMTE3MywianRpIjoiMTM4OGZlNGUtYjZmZC00YjJlLWI0MGUtN2ZkZTI5ZjE3MzRkIiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5kZXYudG9sYmVyLmlvL2F1dGgvcmVhbG1zL1REVCIsImF1ZCI6WyJwbGFubmluZyIsInRkdC1jb21tb25zIiwidGR0LXJlc291cmNlcyIsImludmVudG9yeSIsImFjY291bnQiXSwic3ViIjoiNjdlZTFiNzgtMTQ4NS00YTQ3LThmMjYtOGFmYTc5M2NjYTg4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiaW50ZWdyYWNpb24tbTJtIiwic2Vzc2lvbl9zdGF0ZSI6ImUwMWY3MTJiLWY2ZDUtNDNhZS05OTIyLWU2NGFiYWZlNzJkOSIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7InBsYW5uaW5nIjp7InJvbGVzIjpbImFkbWluIl19LCJ0ZHQtY29tbW9ucyI6eyJyb2xlcyI6WyJhZG1pbiJdfSwidGR0LXJlc291cmNlcyI6eyJyb2xlcyI6WyJPcmdhbml6YWNpb25lcyIsIkFkbWluaXN0cmF0b3IiLCJCcmFuZHMiLCJSYXpvbmVzIHNvY2lhbGVzIl19LCJpbnZlbnRvcnkiOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6Im9hdXRoLmRldi50b2xiZXIuaW8iLCJjbGllbnRJZCI6ImludGVncmFjaW9uLW0ybSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWludGVncmFjaW9uLW0ybSIsImNsaWVudEFkZHJlc3MiOiJvYXV0aC5kZXYudG9sYmVyLmlvIn0.IYqO1f-kXBGorLAoDoktqPdggvSQABOlScrjdCeqtjPwNcplKJvdNBANbTPP_74_slex4VRucv2qKUP7PCxt9rHyejcroFrNLce84M0cYqP9fvzcAUbjVJaOyL8Ehd7G9Q4Fpga55cOuh3EX2_dM3RsbhNm1TZkJTXhhKF0vvfYkuvoMLSFER3oqJH3vNR7PLT2U88W9Zzad4tqe0_QuD0KWdxsPyevosEzsCNsWAbEQAKscpCYwSmfAsNBwRh0ENwrG-waGDY3Ldq0sgSjQWt0hkvbYxtG2C-Gj4D76Yq_RE6ddijeaJsIYiBAsQn-RodqVsw3cgCkCxEjos5EEWQ\",\n        \"token_type\": \"Bearer\",\n        \"expires_in\": 2592000,\n        \"expires_at\": \"2026-03-08 18:06:13\",\n        \"scope\": \"profile email\",\n        \"refresh_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiODExOWM4NS1lMjFmLTQ1ZDktODBmZC03M2FmZmMwNWI0MGEifQ.eyJleHAiOjE3NzI5OTMxNzMsImlhdCI6MTc3MDQwMTE3MywianRpIjoiMzAzYWI1NTktOGU1Yy00NGJmLTgwMGUtZjU2MWQ0OWZkNDdlIiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5kZXYudG9sYmVyLmlvL2F1dGgvcmVhbG1zL1REVCIsImF1ZCI6Imh0dHBzOi8vb2F1dGguZGV2LnRvbGJlci5pby9hdXRoL3JlYWxtcy9URFQiLCJzdWIiOiI2N2VlMWI3OC0xNDg1LTRhNDctOGYyNi04YWZhNzkzY2NhODgiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiaW50ZWdyYWNpb24tbTJtIiwic2Vzc2lvbl9zdGF0ZSI6ImUwMWY3MTJiLWY2ZDUtNDNhZS05OTIyLWU2NGFiYWZlNzJkOSIsInNjb3BlIjoicHJvZmlsZSBlbWFpbCJ9.uwPfvxtjQwT8hXt4ctk6i8nu49jtA5TQSn0FCwd8exM\",\n        \"refresh_expires_in\": 2592000,\n        \"refresh_expires_at\": \"2026-03-08 18:06:13\"\n    }\n}"}],"_postman_id":"50bd3508-9015-4a18-8afa-77e0743f5b78"},{"name":"Auth service m2m refresh token","event":[{"listen":"test","script":{"id":"32347c73-99f3-46fe-884d-0d42f23a36d6","exec":["const responseJson = pm.response.json();\r","\r","if (responseJson.data && responseJson.data.access_token) {\r","    pm.environment.set(\"token\", responseJson.data.access_token);\r","    console.log(\"Access token saved to environment variable {{token}}\");\r","} else {\r","    console.error(\"Access token not found in the response\");\r","}"],"type":"text/javascript","packages":{},"requests":{}}},{"listen":"prerequest","script":{"id":"44e1b1d5-5782-4628-b47c-f075ea3416f3","exec":[""],"type":"text/javascript","packages":{},"requests":{}}}],"id":"ef7951ae-54c4-4e81-b384-b612fa485bd1","protocolProfileBehavior":{"disableBodyPruning":true,"disabledSystemHeaders":{}},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"content-type","value":"application/json; charset=utf-8","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"refresh_token","value":"{{refresh_token}}","type":"text","description":"<p>required | string</p>\n"}]},"url":"{{api_url}}/auth/service-token/refresh","description":"<h1 id=\"refresh-token-m2m--service-token-refresh\">Refresh Token (M2M) — Service Token Refresh</h1>\n<p>Refreshes an existing <strong>M2M service access token</strong> using a valid <code>refresh_token</code> and returns a new access token (and typically a new refresh token) with updated expiration values.</p>\n<p>Use the returned token to access protected endpoints:<br /><code>Authorization: Bearer</code></p>\n<hr />\n<h1 id=\"authentication\">Authentication</h1>\n<p>This endpoint does <strong>not</strong> require an <code>Authorization</code> header (public endpoint).<br />The <code>refresh_token</code> is used to validate and refresh the session.</p>\n<hr />\n<h1 id=\"request\">Request</h1>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>/api/auth/service-token/refresh</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<p><strong>Content-Type:</strong> <code>multipart/form-data</code> (form-data)</p>\n<hr />\n<h2 id=\"body-parameters-form-data\">Body Parameters (form-data)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>refresh_token</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Refresh token obtained from <strong>Login (M2M) — Service Token</strong></td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--token-refreshed\">200 OK — Token Refreshed</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Token values are shown with generic/truncated values. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Service token refreshed successfully\",\n  \"data\": {\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...&lt;truncated&gt;\",\n    \"token_type\": \"Bearer\",\n    \"expires_in\": 2592000,\n    \"expires_at\": \"2026-03-08 18:06:13\",\n    \"scope\": \"profile email\",\n    \"refresh_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...&lt;truncated&gt;\",\n    \"refresh_expires_in\": 2592000,\n    \"refresh_expires_at\": \"2026-03-08 18:06:13\"\n  }\n}\n\n</code></pre>\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when <code>refresh_token</code> is missing or incorrectly formatted.</p>\n<h3 id=\"example-response-422\">Example Response (422)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The refresh_token field is required.\",\n  \"errors\": {\n    \"refresh_token\": [\n      \"The refresh_token field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"401-unauthorized--invalid-or-expired-refresh-token\">401 Unauthorized — Invalid or Expired Refresh Token</h2>\n<p>Returned when the provided refresh token is invalid, expired, or cannot be verified.</p>\n<h3 id=\"example-response-401\">Example Response (401)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"403-forbidden--access-denied\">403 Forbidden — Access Denied</h2>\n<p>Returned when the service account/client is not allowed to refresh tokens or access is restricted.</p>\n<h3 id=\"example-response-403\">Example Response (403)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Access denied.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or the requested resource is not available.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n","urlObject":{"path":["auth","service-token","refresh"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"01242973-7035-4bdf-acc6-cdd28cdc30e4","name":"Returns access token, token type, and expiration date in JSON format","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"content-length","value":"89","type":"text","disabled":true},{"key":"content-type","value":"application/json; charset=utf-8","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"refresh_token","value":"{{refresh_token}}","type":"text","description":"required|string"}]},"url":"{{api_url}}/auth/service-token/refresh"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 18:12:33 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"f8560d71-0163-4758-9147-f389ce8664ac"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Service token refreshed successfully\",\n    \"data\": {\n        \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJaWFRXUnkwTDZBRUFEMU1qNzRXMUhLMDZENmlHMTF4YkpyZGNFVk1nQzNnIn0.eyJleHAiOjE3NzI5OTMxNzMsImlhdCI6MTc3MDQwMTU1NSwianRpIjoiMWYwM2YyZDctNmVlZC00YWQ2LTlkZTItMGQ2MzRiMjE5MWQ0IiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5kZXYudG9sYmVyLmlvL2F1dGgvcmVhbG1zL1REVCIsImF1ZCI6WyJwbGFubmluZyIsInRkdC1jb21tb25zIiwidGR0LXJlc291cmNlcyIsImludmVudG9yeSIsImFjY291bnQiXSwic3ViIjoiNjdlZTFiNzgtMTQ4NS00YTQ3LThmMjYtOGFmYTc5M2NjYTg4IiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiaW50ZWdyYWNpb24tbTJtIiwic2Vzc2lvbl9zdGF0ZSI6ImUwMWY3MTJiLWY2ZDUtNDNhZS05OTIyLWU2NGFiYWZlNzJkOSIsImFjciI6IjEiLCJyZWFsbV9hY2Nlc3MiOnsicm9sZXMiOlsib2ZmbGluZV9hY2Nlc3MiLCJ1bWFfYXV0aG9yaXphdGlvbiJdfSwicmVzb3VyY2VfYWNjZXNzIjp7InBsYW5uaW5nIjp7InJvbGVzIjpbImFkbWluIl19LCJ0ZHQtY29tbW9ucyI6eyJyb2xlcyI6WyJhZG1pbiJdfSwidGR0LXJlc291cmNlcyI6eyJyb2xlcyI6WyJPcmdhbml6YWNpb25lcyIsIkFkbWluaXN0cmF0b3IiLCJCcmFuZHMiLCJSYXpvbmVzIHNvY2lhbGVzIl19LCJpbnZlbnRvcnkiOnsicm9sZXMiOlsiYWRtaW5pc3RyYXRvciJdfSwiYWNjb3VudCI6eyJyb2xlcyI6WyJtYW5hZ2UtYWNjb3VudCIsIm1hbmFnZS1hY2NvdW50LWxpbmtzIiwidmlldy1wcm9maWxlIl19fSwic2NvcGUiOiJwcm9maWxlIGVtYWlsIiwiY2xpZW50SG9zdCI6Im9hdXRoLmRldi50b2xiZXIuaW8iLCJjbGllbnRJZCI6ImludGVncmFjaW9uLW0ybSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwicHJlZmVycmVkX3VzZXJuYW1lIjoic2VydmljZS1hY2NvdW50LWludGVncmFjaW9uLW0ybSIsImNsaWVudEFkZHJlc3MiOiJvYXV0aC5kZXYudG9sYmVyLmlvIn0.QFYKCcg9q9wQ8sGC2IDbNs3wtuWuJgErPVbNoVvb6iALd5KxPZ69ItDFgXCzNxO0u_s0qSQQzFNiBw2E4hN3nmVMfY6xhDAMh8uL_623EJA-bFLVxSGqJVFtqoqaWyZkIGak6yoSWITgWUjuyS5pKBryfbXUo_E-FLefR9weJ8n27PxLMbJ8ABrOkUznXIvJvXj4LOnz8i0tcA8qz3oftCFi6B__-VUc5mGixpxSXcq6I0TqjYL0t9PXcoWwqyFuI3M2uxaMMr_glrQMeh0Ml3jfYLpbVc6Yz_dj96DoTTSculBbNJLS-DOqSgUOXbzBnhQivcQNQ38Ja-lP0eqp6w\",\n        \"token_type\": \"Bearer\",\n        \"expires_in\": 2591618,\n        \"expires_at\": \"2026-03-08 18:06:12\",\n        \"scope\": \"profile email\",\n        \"refresh_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJiODExOWM4NS1lMjFmLTQ1ZDktODBmZC03M2FmZmMwNWI0MGEifQ.eyJleHAiOjE3NzI5OTMxNzMsImlhdCI6MTc3MDQwMTU1NSwianRpIjoiMjEyNWY5ZGMtZmVhMS00NGNmLTkwMGQtNjQ3MmVjMDNlOTQ3IiwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5kZXYudG9sYmVyLmlvL2F1dGgvcmVhbG1zL1REVCIsImF1ZCI6Imh0dHBzOi8vb2F1dGguZGV2LnRvbGJlci5pby9hdXRoL3JlYWxtcy9URFQiLCJzdWIiOiI2N2VlMWI3OC0xNDg1LTRhNDctOGYyNi04YWZhNzkzY2NhODgiLCJ0eXAiOiJSZWZyZXNoIiwiYXpwIjoiaW50ZWdyYWNpb24tbTJtIiwic2Vzc2lvbl9zdGF0ZSI6ImUwMWY3MTJiLWY2ZDUtNDNhZS05OTIyLWU2NGFiYWZlNzJkOSIsInNjb3BlIjoicHJvZmlsZSBlbWFpbCJ9.lWPZDyvDfYiiZGx5jRx8LKEt-KmhUjAMOgoAQH6vK0c\",\n        \"refresh_expires_in\": 2591618,\n        \"refresh_expires_at\": \"2026-03-08 18:06:12\"\n    }\n}"}],"_postman_id":"ef7951ae-54c4-4e81-b384-b612fa485bd1"}],"id":"e2c3d8f0-e503-420b-baad-faa741443e12","description":"<p>This folder contains all authentication endpoints for the TDT Metrics API, implemented as a <strong>proxy to Keycloak</strong>.</p>\n<p>It supports two authentication modes:</p>\n<ol>\n<li><strong>User Login (Interactive)</strong> — authenticates an end user (email/password) and returns a JWT access token plus the user profile.  </li>\n<li><strong>M2M (Machine-to-Machine)</strong> — authenticates a service account and returns access/refresh tokens for backend integrations, plus a refresh endpoint to renew access tokens.</li>\n</ol>\n<hr />\n<h2 id=\"1-interactive-user-authentication\">1) Interactive User Authentication</h2>\n<h3 id=\"post-apiauthlogin\">POST <code>/api/auth/login</code></h3>\n<p>Use this endpoint when a real user signs in (UI / human login).</p>\n<ul>\n<li><p>Input: <code>data[attributes][email]</code>, <code>data[attributes][password]</code> (form-data)</p>\n</li>\n<li><p>Output: <code>access_token</code>, <code>token_type</code>, <code>expires_at</code>, and <code>user</code> details</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"2-m2m-authentication-service-accounts\">2) M2M Authentication (Service Accounts)</h2>\n<h3 id=\"post-apiauthservice-token\">POST <code>/api/auth/service-token</code></h3>\n<p>Use this endpoint for server-to-server integrations (service account login).</p>\n<ul>\n<li><p>Input: <code>email</code>, <code>password</code> (form-data)</p>\n</li>\n<li><p>Output: <code>access_token</code>, expiration fields, and <code>refresh_token</code></p>\n</li>\n</ul>\n<h3 id=\"post-apiauthservice-tokenrefresh\">POST <code>/api/auth/service-token/refresh</code></h3>\n<p>Use this endpoint to refresh an existing service session.</p>\n<ul>\n<li><p>Input: <code>refresh_token</code> (form-data)</p>\n</li>\n<li><p>Output: new <code>access_token</code> (and updated expiration fields)</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"common-conventions\">Common Conventions</h2>\n<ul>\n<li><p><strong>Base URL:</strong> <code>{{api_url}}</code></p>\n</li>\n<li><p><strong>Default header:</strong> <code>Accept: application/json</code></p>\n</li>\n<li><p>Tokens must be sent to protected endpoints as:</p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n</li>\n</ul>\n<hr />\n<h2 id=\"status-codes-standard\">Status Codes (Standard)</h2>\n<p>These endpoints use the following status codes:</p>\n<ul>\n<li><p><strong>200</strong> success</p>\n</li>\n<li><p><strong>401</strong> invalid credentials / invalid token</p>\n</li>\n<li><p><strong>403</strong> access denied (blocked/disabled user or restricted access)</p>\n</li>\n<li><p><strong>404</strong> not found (route not available)</p>\n</li>\n<li><p><strong>422</strong> validation error (missing/invalid fields)</p>\n</li>\n<li><p><strong>500</strong> unexpected server error</p>\n</li>\n</ul>\n","_postman_id":"e2c3d8f0-e503-420b-baad-faa741443e12"},{"name":"System","item":[{"name":"Password Resets","item":[{"name":"Request password reset","id":"f4d61b89-9c0b-46de-95bd-d1bfe6325a08","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text","description":"<p>required | string</p>\n"},{"key":"data[attributes][email]","value":"dojeda@tolber.io","type":"text","description":"<p>required | string | email</p>\n"}]},"url":"{{api_url}}/password-resets","description":"<p>Requests a password reset by email. The system will generate a password reset token and send a reset message to the provided email address.</p>\n<hr />\n<h1 id=\"authentication\">Authentication</h1>\n<p>This endpoint does <strong>not</strong> require an <code>Authorization</code> header (public endpoint).</p>\n<hr />\n<h1 id=\"request\">Request</h1>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>/api/password-resets</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<p><strong>Content-Type:</strong> <code>multipart/form-data</code> (form-data)</p>\n<hr />\n<h2 id=\"body-parameters-form-data\">Body Parameters (form-data)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code> :contentReference[oaicite:2]{index=2}</td>\n</tr>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Must be: <code>user_password_resets</code> :contentReference[oaicite:3]{index=3}</td>\n</tr>\n<tr>\n<td><code>data[attributes][email]</code></td>\n<td>Yes</td>\n<td>string (email)</td>\n<td>User email address to receive the reset instructions :contentReference[oaicite:4]{index=4}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--request-password-reset\">200 OK — Request Password Reset</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 52,\n    \"type\": \"user_password_resets\",\n    \"attributes\": {\n      \"email\": \"john.doe@example.com\",\n      \"token\": \"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP\",\n      \"expired_at\": \"2026-02-07 19:55:46\",\n      \"used_at\": null\n    },\n    \"meta\": {\n      \"is_expired\": false,\n      \"is_used\": false,\n      \"is_active\": true\n    }\n  }\n}\n\n</code></pre>\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required fields are missing or incorrectly formatted.</p>\n<h3 id=\"example-response-422\">Example Response (422)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The data.attributes.email field is required.\",\n  \"errors\": {\n    \"data.attributes.email\": [\n      \"The data.attributes.email field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/password-resets' \\\n  --header 'Accept: application/json' \\\n  --form 'lang=\"en\"' \\\n  --form 'data[type]=\"user_password_resets\"' \\\n  --form 'data[attributes][email]=\"john.doe@example.com\"'\n\n</code></pre>\n","urlObject":{"path":["password-resets"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"1c10c5c2-3ffc-4e45-a87f-bc2dc64ed222","name":"200 OK — Request password reset","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][email]","value":"dojeda@tolber.io","type":"text"}]},"url":"{{api_url}}/password-resets"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 19:55:43 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"6ac230f7-d34d-451d-9fa8-b68c94989fe5"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 52,\n        \"type\": \"user_password_resets\",\n        \"attributes\": {\n            \"email\": \"dojeda@tolber.io\",\n            \"token\": \"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP\",\n            \"expired_at\": \"2026-02-07 19:55:46\",\n            \"used_at\": null\n        },\n        \"meta\": {\n            \"is_expired\": false,\n            \"is_used\": false,\n            \"is_active\": true\n        }\n    }\n}"},{"id":"77911b5e-c912-44cc-a658-9e9115a48248","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][email]","value":"dojeda@tolber.com","type":"text"}]},"url":"{{api_url}}//password-resets"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:13:40 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The route api//password-resets could not be found.\"\n}"},{"id":"372eb714-3a7d-46fc-8053-b74775996714","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets1","type":"text"},{"key":"data[attributes][email]","value":"dojeda@tolber.com","type":"text"}]},"url":"{{api_url}}/password-resets"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:01:15 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"2c1160dd-937b-4edd-8c71-5cc7d50c1b19"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"56"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El valor seleccionado en data.type no es válido. (and 1 more error)\",\n    \"errors\": {\n        \"data.type\": [\n            \"El valor seleccionado en data.type no es válido.\"\n        ],\n        \"data.attributes.email\": [\n            \"The selected data.attributes.email is invalid.\"\n        ]\n    }\n}"},{"id":"c90963ce-2fec-42a8-aee3-fd0271be0001","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][email]","value":"dojeda@tolber.com","type":"text"}]},"url":"{{api_url}}/password-resets"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:09:25 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"a60b1e98-d907-476f-ad13-bd8656c4952a"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"f4d61b89-9c0b-46de-95bd-d1bfe6325a08"},{"name":"Check token","id":"0d17c0bb-6028-4ae4-b30d-53a838cabbb4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/password-resets/:token","description":"<p>Validates whether a password reset token is still valid and can be used to set a new password.</p>\n<hr />\n<h1 id=\"authentication\">Authentication</h1>\n<p>This endpoint does <strong>not</strong> require an <code>Authorization</code> header (public endpoint).</p>\n<hr />\n<h1 id=\"request\">Request</h1>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>Endpoint:</strong> <code>/api/password-resets/:token</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>token</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Password reset token to validate :contentReference[oaicite:5]{index=5}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--token-is-valid\">200 OK — Token is Valid</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 52,\n    \"type\": \"user_password_resets\",\n    \"attributes\": {\n      \"email\": \"john.doe@example.com\",\n      \"token\": \"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP\",\n      \"expired_at\": \"2026-02-07 19:55:46\",\n      \"used_at\": null\n    },\n    \"meta\": {\n      \"is_expired\": false,\n      \"is_used\": false,\n      \"is_active\": true\n    }\n  }\n}\n\n</code></pre>\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"404-not-found--invalid-or-expired-token\">404 Not Found — Invalid or Expired Token</h2>\n<p>Returned when the token does not exist, is invalid, or expired.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location &amp;#x27;{{api_url}}/password-resets/&lt;token&gt;&amp;#x27; \\\n  --header 'Accept: application/json'\n\n</code></pre>\n","urlObject":{"path":["password-resets",":token"],"host":["{{api_url}}"],"query":[],"variable":[{"type":"any","value":"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP","key":"token"}]}},"response":[{"id":"592eac78-76e8-41db-a00e-afe028a1f258","name":"200 OK — Check token","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/password-resets/:token","host":["{{api_url}}"],"path":["password-resets",":token"],"variable":[{"key":"token","value":"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:26:58 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"a297d6b6-0a01-43c0-88e8-b4d3bd438ebf"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 52,\n        \"type\": \"user_password_resets\",\n        \"attributes\": {\n            \"email\": \"dojeda@tolber.io\",\n            \"token\": \"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP\",\n            \"expired_at\": \"2026-02-07 19:55:46\",\n            \"used_at\": null\n        },\n        \"meta\": {\n            \"is_expired\": false,\n            \"is_used\": false,\n            \"is_active\": true\n        }\n    }\n}"},{"id":"abf2de82-1147-4a27-bbc7-d1be2886badd","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/password-resets/:token","host":["{{api_url}}"],"path":["password-resets",":token"],"variable":[{"key":"token","value":"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:50:54 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"ec614711-ab74-4b01-abdd-46cf3d26cedb"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"f1bae803-8f64-4898-b750-fe2105d153f5","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/password-resets/:token","host":["{{api_url}}"],"path":["password-resets",":token"],"variable":[{"key":"token","value":"80fzfGv1arcQuteesUS3CsGcZ3dMIDsMzoCu3JA8lnJfE1NPoaS3dyNp05CL9dHP"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:35:05 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"040f454f-a811-4c6c-8150-4a309747a541"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"0d17c0bb-6028-4ae4-b30d-53a838cabbb4"},{"name":"Reset password by token","id":"8fb20360-23f0-4127-a3b9-78dde8c511e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text","description":"<p>required | string</p>\n"},{"key":"data[attributes][password]","value":"Daniel.2022","type":"text","description":"<p>required | string | email</p>\n"}]},"url":"{{api_url}}/new-password/:token","description":"<p>Sets a new password using a valid password reset token.</p>\n<hr />\n<h1 id=\"authentication\">Authentication</h1>\n<p>This endpoint does <strong>not</strong> require an <code>Authorization</code> header (public endpoint).</p>\n<hr />\n<h1 id=\"request\">Request</h1>\n<p><strong>Method:</strong> <code>PATCH</code><br /><strong>Endpoint:</strong> <code>/api/new-password/:token</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<p><strong>Content-Type:</strong> <code>application/x-www-form-urlencoded</code> (urlencoded)</p>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>token</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Password reset token :contentReference[oaicite:6]{index=6}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-parameters-urlencoded\">Body Parameters (urlencoded)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code> :contentReference[oaicite:7]{index=7}</td>\n</tr>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Must be: <code>user_password_resets</code> :contentReference[oaicite:8]{index=8}</td>\n</tr>\n<tr>\n<td><code>data[attributes][password]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>New password to set :contentReference[oaicite:9]{index=9}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--password-updated\">200 OK — Password Updated</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 123,\n    \"type\": \"users\",\n    \"attributes\": {\n      \"name\": \"John\",\n      \"last_name\": \"Doe\",\n      \"avatar\": null,\n      \"email\": \"john.doe@example.com\",\n      \"country_id\": 2,\n      \"company_id\": 92,\n      \"user_type_id\": 1,\n      \"timezone\": \"America/Montevideo\",\n      \"position\": \"Admin\",\n      \"phone_number\": \"+598 9000 0000\",\n      \"birthday\": null,\n      \"gender\": null,\n      \"first_loggin_at\": \"2026-02-06 18:04:07\"\n    },\n    \"relationships\": {\n      \"country\": [],\n      \"company\": [],\n      \"user_type\": [],\n      \"permissions\": [],\n      \"roles\": []\n    },\n    \"links\": {\n      \"self\": \"https://api.example.com/api/users/123\"\n    }\n  }\n}\n\n</code></pre>\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required fields are missing or invalid.</p>\n<h3 id=\"example-response-422\">Example Response (422)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The company_id field is required. (and 1 more error)\",\n  \"errors\": {\n    \"company_id\": [\n      \"The company_id field is required.\"\n    ],\n    \"data.attributes.password\": [\n      \"The data.attributes.password field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request PATCH '{{api_url}}/change-password' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --data-urlencode 'lang=\"en\"' \\\n  --data-urlencode 'company_id=55' \\\n  --data-urlencode 'data[type]=\"user_password_resets\"' \\\n  --data-urlencode 'data[attributes][password]=\"NewStrongPassword123!\"'\n\n</code></pre>\n","urlObject":{"path":["new-password",":token"],"host":["{{api_url}}"],"query":[],"variable":[{"type":"any","value":"EuUjk1sVLzKgXQVJ2GmSeisp0iZnRX7aMP4c5RJi7Ys0WFYp4Ghx8vfd5Ly0FrdJ","key":"token"}]}},"response":[{"id":"53f3711e-cec6-40dd-80ef-36a81012c34c","name":"200 OK — Reset password by token","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][password]","value":"Daniel.2022","type":"text"}]},"url":{"raw":"{{api_url}}/new-password/:token","host":["{{api_url}}"],"path":["new-password",":token"],"variable":[{"key":"token","value":"EuUjk1sVLzKgXQVJ2GmSeisp0iZnRX7aMP4c5RJi7Ys0WFYp4Ghx8vfd5Ly0FrdJ"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:03:47 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"5b671b17-8c28-442a-993e-5662862639bd"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 18,\n        \"type\": \"users\",\n        \"attributes\": {\n            \"name\": \"Daniel\",\n            \"last_name\": \"Ojeda\",\n            \"avatar\": null,\n            \"email\": \"dojeda@tolber.io\",\n            \"country_id\": 2,\n            \"company_id\": 92,\n            \"user_type_id\": 1,\n            \"timezone\": \"America/Montevideo\",\n            \"position\": \"Admin\",\n            \"phone_number\": \"598 98877665\",\n            \"birthday\": null,\n            \"gender\": null,\n            \"first_loggin_at\": \"2026-02-06 18:04:07\"\n        },\n        \"relationships\": {\n            \"country\": [],\n            \"company\": [],\n            \"user_type\": [],\n            \"permissions\": [],\n            \"roles\": []\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/users/18\"\n        }\n    }\n}"},{"id":"29c48ff5-b0a8-4188-ae6b-6ee4bb25ab68","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][password]","value":"Daniel.2022","type":"text"}]},"url":{"raw":"{{api_url}}/new-password/:token","host":["{{api_url}}"],"path":["new-password",":token"],"variable":[{"key":"token","value":"L7YMTwjzKQ1CoW49JhMGxasghGEvIZsrWwvyhcYbUCfEdMPh1QAg3VdeaVEtpOkX"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:02:10 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"bed6196a-b62f-453f-8f7a-f4b0ee614f22"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"9cb313b0-628b-4851-838a-1e0d7bc72bc1","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][password]","value":"Daniel.2022","type":"text"}]},"url":{"raw":"{{api_url}}/new-password/:token","host":["{{api_url}}"],"path":["new-password",":token"],"variable":[{"key":"token","value":"L7YMTwjzKQ1CoW49JhMGxasghGEvIZsrWwvyhcYbUCfEdMPh1QAg3VdeaVEtpOkX"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 20:59:20 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"e554b1fb-dd46-4e79-b075-b88799f53446"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"8fb20360-23f0-4127-a3b9-78dde8c511e0"},{"name":"Change password","id":"be2760bc-a403-4701-8a4a-2457e32303f7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"company_id","value":"55","type":"text","description":"<p>required | integer</p>\n"},{"key":"data[type]","value":"user_password_resets","type":"text","description":"<p>required | string</p>\n"},{"key":"data[attributes][password]","value":"","type":"text","description":"<p>required | string</p>\n"}]},"url":"{{api_url}}/change-password","description":"<p>Changes the password for the currently authenticated user.</p>\n<hr />\n<h1 id=\"authentication\">Authentication</h1>\n<p>This endpoint <strong>requires</strong> a valid Bearer token:</p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<hr />\n<h1 id=\"request\">Request</h1>\n<p><strong>Method:</strong> <code>PATCH</code><br /><strong>Endpoint:</strong> <code>/api/change-password</code><br /><strong>Headers:</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer</code></p>\n</li>\n</ul>\n<p><strong>Content-Type:</strong> <code>application/x-www-form-urlencoded</code> (urlencoded)</p>\n<hr />\n<h2 id=\"body-parameters-urlencoded\">Body Parameters (urlencoded)</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code> :contentReference[oaicite:10]{index=10}</td>\n</tr>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company context for the operation :contentReference[oaicite:11]{index=11}</td>\n</tr>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Must be: <code>user_password_resets</code> :contentReference[oaicite:12]{index=12}</td>\n</tr>\n<tr>\n<td><code>data[attributes][password]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>New password to set :contentReference[oaicite:13]{index=13}</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--change-password\">200 OK — Change password</h2>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 123,\n    \"type\": \"users\",\n    \"attributes\": {\n      \"name\": \"John\",\n      \"last_name\": \"Doe\",\n      \"avatar\": null,\n      \"email\": \"john.doe@example.com\",\n      \"country_id\": 2,\n      \"company_id\": 92,\n      \"user_type_id\": 1,\n      \"timezone\": \"America/Montevideo\",\n      \"position\": \"Admin\",\n      \"phone_number\": \"+598 9000 0000\",\n      \"birthday\": null,\n      \"gender\": null,\n      \"first_loggin_at\": \"2026-02-06 18:04:07\"\n    },\n    \"relationships\": {\n      \"country\": [],\n      \"company\": [],\n      \"user_type\": [],\n      \"permissions\": [],\n      \"roles\": []\n    },\n    \"links\": {\n      \"self\": \"https://api.example.com/api/users/123\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized\">401 Unauthorized</h2>\n<p>Returned when the <code>Authorization</code> header is missing or the token is invalid.</p>\n<h3 id=\"example-response-401\">Example Response (401)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required fields are missing or invalid.</p>\n<h3 id=\"example-response-422\">Example Response (422)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The company_id field is required. (and 1 more error)\",\n  \"errors\": {\n    \"company_id\": [\n      \"The company_id field is required.\"\n    ],\n    \"data.attributes.password\": [\n      \"The data.attributes.password field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location --request PATCH '{{api_url}}/change-password' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --data-urlencode 'lang=\"en\"' \\\n  --data-urlencode 'company_id=55' \\\n  --data-urlencode 'data[type]=\"user_password_resets\"' \\\n  --data-urlencode 'data[attributes][password]=\"NewStrongPassword123!\"'\n\n</code></pre>\n","urlObject":{"path":["change-password"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"c5972714-7154-4565-adac-6d41babbe0dd","name":"200 OK — Change password","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][password]","value":"OGQ886B18wGi","type":"text"}]},"url":"{{api_url}}/change-password"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:32:01 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"33ccb6e1-59ee-4680-8e61-f1e98d030481"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 180,\n        \"type\": \"users\",\n        \"attributes\": {\n            \"name\": \"API\",\n            \"last_name\": \"Integration\",\n            \"avatar\": null,\n            \"email\": \"api.integration@tdtglobal.io\",\n            \"country_id\": 4,\n            \"company_id\": 55,\n            \"user_type_id\": 1,\n            \"timezone\": null,\n            \"position\": \"Admin\",\n            \"phone_number\": null,\n            \"birthday\": null,\n            \"gender\": null,\n            \"first_loggin_at\": \"2026-02-06 21:32:16\"\n        },\n        \"relationships\": {\n            \"country\": [],\n            \"company\": [],\n            \"user_type\": [],\n            \"permissions\": [],\n            \"roles\": []\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/users/180\"\n        }\n    }\n}"},{"id":"7240fa68-e35e-452a-ac06-5d209c7b8830","name":"401 Unauthorized — Access denied","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"57","type":"text"},{"key":"data[type]","value":"","type":"text"},{"key":"data[attributes][password]","value":"","type":"text"}]},"url":"{{api_url}}/change-password"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:41:51 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"4c2af6b6-4a28-42d4-93ef-79bf70708812"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"6b2a014d-2667-4399-bed8-4e7a33559204","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","type":"text"},{"key":"data[type]","value":"","type":"text"},{"key":"data[attributes][password]","value":"","type":"text"}]},"url":"{{api_url}}/change-password"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:39:58 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"a14a3475-4a50-4a12-9f0f-281f7986b427"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El campo data.type es obligatorio. (and 1 more error)\",\n    \"errors\": {\n        \"data.type\": [\n            \"El campo data.type es obligatorio.\"\n        ],\n        \"data.attributes.password\": [\n            \"El campo data.attributes.password es obligatorio.\"\n        ]\n    }\n}"},{"id":"ab5ffca0-06d0-4087-8e33-0e848ee7c78b","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","type":"text"},{"key":"data[type]","value":"user_password_resets","type":"text"},{"key":"data[attributes][password]","value":"","type":"text"}]},"url":"{{api_url}}/change-password"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:34:37 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"3110579c-fe86-41b0-8ccd-849b9ebdd390"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"},{"id":"e1574c29-1582-4c50-bff0-5c787569d08d","name":"404 Not Found — Route Not Found","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","type":"text","description":"required | integer"},{"key":"data[type]","value":"user_password_resets","type":"text","description":"required | string"},{"key":"data[attributes][password]","value":"","type":"text","description":"required | string"}]},"url":"{{api_url}}/change-password"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 06 Feb 2026 21:57:56 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The route api/change-password could not be found.\"\n}"}],"_postman_id":"be2760bc-a403-4701-8a4a-2457e32303f7"}],"id":"9394b4c7-d937-48ae-b25b-3c1ed92316d5","description":"<p>This folder contains the full password recovery and password update flow:</p>\n<ol>\n<li><strong>Request password reset</strong> — creates a reset record and issues a reset token for a given email.  </li>\n<li><strong>Check token</strong> — validates whether a reset token is still valid and active.  </li>\n<li><strong>Reset password by token</strong> — sets a new password using a valid reset token.  </li>\n<li><strong>Change password</strong> — changes the password for the currently authenticated user.</li>\n</ol>\n<hr />\n<h2 id=\"flow-overview\">Flow Overview</h2>\n<h3 id=\"a-forgot-password-public-flow\">A) Forgot Password (Public Flow)</h3>\n<ul>\n<li><p><strong>POST</strong> <code>/api/password-resets</code> → generates a reset token</p>\n</li>\n<li><p><strong>GET</strong> <code>/api/password-resets/:token</code> → validates the token</p>\n</li>\n<li><p><strong>PATCH</strong> <code>/api/new-password/:token</code> → sets a new password</p>\n</li>\n</ul>\n<h3 id=\"b-change-password-authenticated-flow\">B) Change Password (Authenticated Flow)</h3>\n<ul>\n<li><strong>PATCH</strong> <code>/api/change-password</code> → requires <code>Authorization: Bearer</code></li>\n</ul>\n<hr />\n<h2 id=\"common-conventions\">Common Conventions</h2>\n<ul>\n<li><p><strong>Base URL:</strong> <code>{{api_url}}</code></p>\n</li>\n<li><p><strong>Default header:</strong> <code>Accept: application/json</code></p>\n</li>\n<li><p>Some requests use <strong>form-data</strong> and others use <strong>x-www-form-urlencoded</strong> (see each endpoint).</p>\n</li>\n<li><p>Validation errors follow Laravel’s standard format:</p>\n<ul>\n<li><code>message</code> + <code>errors</code> object with field paths.</li>\n</ul>\n</li>\n<li><p>Standard status codes used in this folder:</p>\n<ul>\n<li><p><strong>200</strong> success</p>\n</li>\n<li><p><strong>401</strong> unauthorized (token missing/invalid) <em>(authenticated endpoint only)</em></p>\n</li>\n<li><p><strong>403</strong> access denied (permission restrictions) <em>(when applicable)</em></p>\n</li>\n<li><p><strong>422</strong> validation error</p>\n</li>\n<li><p><strong>404</strong> not found (invalid route or token not found/expired depending on endpoint behavior)</p>\n</li>\n<li><p><strong>500</strong> unexpected server error</p>\n</li>\n</ul>\n</li>\n</ul>\n<hr />\n<h2 id=\"security-notes\">Security Notes</h2>\n<ul>\n<li><p>Reset tokens are sensitive. Do not log or expose them in client-side logs.</p>\n</li>\n<li><p>Use HTTPS when calling these endpoints, especially when sending credentials or tokens.</p>\n</li>\n</ul>\n","_postman_id":"9394b4c7-d937-48ae-b25b-3c1ed92316d5"},{"name":"Media plan","item":[{"name":"Get media plan by id","id":"690e77e1-d925-41d6-a929-78123f510043","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"{{api_url}}/media-plan/:id?lang=pt&company_id=55","description":"<p>Retrieves the full details and results of a single <strong>Media Plan</strong> execution using its unique identifier (<code>id</code>).</p>\n<p>Use this endpoint when you already have a <code>media_plan_id</code> and need the complete output (including computed results, metadata, and related entities depending on the server configuration).</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> a valid Bearer token.</p>\n<p><strong>Header</strong></p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> GET<br /><strong>Endpoint:</strong> <code>/api/media-plan/:id</code></p>\n<p><strong>Example</strong></p>\n<ul>\n<li><code>GET {{api_url}}/media-plan/:id?lang=en&amp;company_id=55</code></li>\n</ul>\n<hr />\n<h2 id=\"request-headers\">Request Headers</h2>\n<ul>\n<li><code>Accept: application/json</code></li>\n</ul>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Media Plan identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the request.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>. Default depends on server configuration.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Note: <code>company_id</code> is required for this API contract. </p>\n</blockquote>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h2 id=\"200-ok--media-plan-retrieved\">200 OK — Media Plan Retrieved</h2>\n<p>Returned when the Media Plan exists and the authenticated user has access to it.</p>\n<p><strong>Example Response (200)</strong> <em>(generic values)</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 792,\n    \"type\": \"evaluation\",\n    \"attributes\": {\n      \"name\": \"Sample Media Plan Name\",\n      \"account_id\": 353,\n      \"company_id\": 55,\n      \"created_date\": \"2026-02-08\",\n      \"user_id\": 103,\n      \"token\": {\n        \"token\": \"792f5de5d3bcb5e76e4e7ae89313abd168042d8dfaed8ce483f92c70a54199aa...&lt;truncated&gt;\",\n        \"created_at\": \"2026-02-08 20:10:32\"\n      },\n      \"data\": {\n        \"goal\": \"{\\\"id\\\":2,\\\"name\\\":\\\"Brand Awareness\\\"}\",\n        \"title\": \"Sample Media Plan Title\",\n        \"weeks\": 4,\n        \"budget\": {\n          \"amount\": 102932.16,\n          \"iso_currency_code\": \"USD\"\n        },\n        \"start_date\": \"2025-03-01 00:00:00\",\n        \"end_date\": \"2025-03-31 00:00:00\",\n        \"gender\": \"3\",\n        \"age_range\": {\n          \"min_age\": \"18\",\n          \"max_age\": \"55\"\n        },\n        \"geo_type\": {\n          \"id\": 1,\n          \"name\": \"city\"\n        },\n        \"tags\": [\n          {\n            \"id\": \"001\",\n            \"code\": \"001\",\n            \"name\": \"Sample Location Name\",\n            \"country_code\": \"ZA\",\n            \"country_name\": \"South Africa\",\n            \"city_id\": 2627446,\n            \"city_name\": \"Johannesburg\",\n            \"region\": \"Gauteng\",\n            \"budget\": {\n              \"amount\": 11654.98,\n              \"iso_currency_code\": \"USD\"\n            },\n            \"period\": {\n              \"start_date\": \"2025-03-01 00:00:00\",\n              \"end_date\": \"2025-03-31 00:00:00\"\n            },\n            \"ots\": 169719,\n            \"cpm\": 2.73,\n            \"illumination\": \"yes\",\n            \"dimensions\": {\n              \"hight\": 59,\n              \"width\": 20\n            },\n            \"classifications\": {\n              \"size\": { \"id\": 1, \"name\": \"large\" },\n              \"material\": { \"id\": 1, \"name\": \"printed\" },\n              \"placeType\": { \"id\": 8, \"name\": \"Urban + Suburban\" },\n              \"mediaClass\": { \"id\": 2, \"name\": \"roadside\" }\n            }\n          }\n        ],\n        \"countries\": [\n          {\n            \"name\": \"South Africa\",\n            \"iso_code\": \"ZA\",\n            \"cities\": [\n              {\n                \"id\": 2627446,\n                \"name\": \"Johannesburg\",\n                \"assets\": 6,\n                \"coverage\": 81.06,\n                \"audience_cpm\": 4.06,\n                \"audience_ots\": 16626984,\n                \"total_population\": 1550000,\n                \"reached_population\": 916789,\n                \"average_frequency\": 21.15,\n                \"budget\": {\n                  \"amount\": 67580.31,\n                  \"iso_currency_code\": \"USD\"\n                },\n                \"effective_frequency\": [\n                  { \"name\": \"+1\", \"value\": 81.06 },\n                  { \"name\": \"+2\", \"value\": 79.2 }\n                ]\n              }\n            ],\n            \"all_locations\": {\n              \"assets\": 8,\n              \"coverage\": 68.42812939521801,\n              \"audience_cpm\": 4.6501133094039515,\n              \"audience_ots\": 22135409,\n              \"total_population\": 3050000,\n              \"reached_population\": 1459572,\n              \"average_frequency\": 17.67293888208324,\n              \"budget\": {\n                \"amount\": 102932.16,\n                \"iso_currency_code\": \"USD\"\n              },\n              \"effective_frequency\": [\n                { \"name\": \"+1\", \"value\": 68.42812939521801 },\n                { \"name\": \"+2\", \"value\": 66.65738396624472 }\n              ]\n            }\n          }\n        ],\n        \"behaviors\": [],\n        \"interests\": [],\n        \"languages\": [],\n        \"advertiser\": \"{\\\"advertiser\\\":{\\\"id\\\":353,\\\"name\\\":\\\"Sample Advertiser\\\"},\\\"brand\\\":{\\\"id\\\":317,\\\"name\\\":\\\"Sample Brand\\\"}}\",\n        \"socioeconomic_levels\": \"{\\\"min\\\":{\\\"id\\\":3,\\\"name\\\":\\\"medium\\\"},\\\"max\\\":{\\\"id\\\":7,\\\"name\\\":\\\"low_low\\\"}}\"\n      }\n    },\n    \"relationships\": {\n      \"account\": {\n        \"data\": { \"id\": 353, \"type\": \"accounts\" },\n        \"links\": { \"self\": \"https://api.example.com/api/accounts/353\" }\n      },\n      \"company\": {\n        \"data\": {\n          \"id\": 55,\n          \"type\": \"companies\",\n          \"name\": \"Sample Company\",\n          \"logo\": \"https://cdn.example.com/images/companies/company-55.jpg\",\n          \"profile\": { \"id\": 2, \"name\": \"Premium\" }\n        },\n        \"links\": { \"self\": \"https://api.example.com/api/companies/55\" }\n      },\n      \"user\": {\n        \"data\": { \"id\": 103, \"type\": \"users\" },\n        \"links\": { \"self\": \"https://api.example.com/api/users/103\" }\n      }\n    },\n    \"links\": {\n      \"self\": \"https://api.example.com/api/media-plan/792\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h2 id=\"401-unauthorized--missing-or-invalid-token\">401 Unauthorized — Missing or Invalid Token</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the Media Plan does not exist or is not available for the provided scope.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Media Plan not found.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location &amp;#x27;{{api_url}}/media-plan/&lt;id&gt;?company_id=&lt;company_id&gt;&amp;lang=en&amp;#x27; \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["media-plan",":id"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"pt"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"token","value":"352ca7efadf394b4c96506db589dde84f4e4f21782ef943d4aae1d66333807b78b7c18ec13fba22e4ceb50d01c73efce941"}],"variable":[{"type":"any","value":"792","key":"id"}]}},"response":[{"id":"c0369ddd-6906-47bf-9470-13547813af10","name":"200 OK —  Get media plan by id","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{api_url}}/media-plan/:id?lang=pt&company_id=55","host":["{{api_url}}"],"path":["media-plan",":id"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"token","value":"352ca7efadf394b4c96506db589dde84f4e4f21782ef943d4aae1d66333807b78b7c18ec13fba22e4ceb50d01c73efce941","description":"optional | string","disabled":true}],"variable":[{"key":"id","value":"792"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 15:35:36 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"9c5ce013-0987-4f25-95ba-04b4c6fb5954"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 792,\n        \"type\": \"evaluation\",\n        \"attributes\": {\n            \"name\": \"SA JHB Spring 2026 Final\",\n            \"account_id\": 353,\n            \"company_id\": 55,\n            \"created_date\": \"2026-02-08\",\n            \"user_id\": 103,\n            \"token\": {\n                \"token\": \"792f5de5d3bcb5e76e4e7ae89313abd168042d8dfaed8ce483f92c70a54199aab4af4f88669bbacfaa51f33cf4460af9caa\",\n                \"created_at\": \"2026-02-08 20:10:32\"\n            },\n            \"data\": {\n                \"goal\": \"{\\\"id\\\":2,\\\"name\\\":\\\"Branding / Brand Awareness\\\"}\",\n                \"tags\": [\n                    {\n                        \"id\": \"001\",\n                        \"cpm\": 2.73,\n                        \"ots\": 169719,\n                        \"code\": \"001\",\n                        \"name\": \"JOHANNESBURG CBD\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 11654.98,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"JOHANNESBURG CBD\",\n                        \"city_id\": 2627446,\n                        \"latitude\": \"-26.198256\",\n                        \"city_code\": 2627446,\n                        \"city_name\": \"Johannesburg\",\n                        \"longitude\": \"28.044678\",\n                        \"dimensions\": {\n                            \"hight\": 59,\n                            \"width\": 20\n                        },\n                        \"orientation\": \"NE\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 5091570,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 1,\n                                \"name\": \"large\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 2,\n                                \"name\": \"roadside\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"002\",\n                        \"cpm\": 2.74,\n                        \"ots\": 212579,\n                        \"code\": \"002\",\n                        \"name\": \"GHANDI SQUARE\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 14658.95,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"GHANDI SQUARE\",\n                        \"city_id\": 2627446,\n                        \"latitude\": \"-26.206317\",\n                        \"city_code\": 2627446,\n                        \"city_name\": \"Johannesburg\",\n                        \"longitude\": \"28.042741\",\n                        \"dimensions\": {\n                            \"hight\": 9,\n                            \"width\": 27\n                        },\n                        \"orientation\": \"S\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 6377370,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 1,\n                                \"name\": \"large\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 2,\n                                \"name\": \"roadside\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"003\",\n                        \"cpm\": 2.77,\n                        \"ots\": 35041,\n                        \"code\": \"003\",\n                        \"name\": \"Joburg CBD Park Station - Turn\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 2449.97,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"Joburg CBD Park Station - Turn\",\n                        \"city_id\": 2627446,\n                        \"latitude\": \"-26.197751\",\n                        \"city_code\": 2627446,\n                        \"city_name\": \"Johannesburg\",\n                        \"longitude\": \"28.042299\",\n                        \"dimensions\": {\n                            \"hight\": 2.5,\n                            \"width\": 6\n                        },\n                        \"orientation\": \"SW\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 1051230,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 2,\n                                \"name\": \"medium\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 3,\n                                \"name\": \"place based\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"004\",\n                        \"cpm\": 32.9,\n                        \"ots\": 31574,\n                        \"code\": \"004\",\n                        \"name\": \"PRK-074 JHB   CBD Park Station - Wanders\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 26180.61,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"CBD Park Station - Wanders\",\n                        \"city_id\": 2627446,\n                        \"latitude\": \"-26.198408\",\n                        \"city_code\": 2627446,\n                        \"city_name\": \"Johannesburg\",\n                        \"longitude\": \"28.043806\",\n                        \"dimensions\": {\n                            \"hight\": 2,\n                            \"width\": 5.5\n                        },\n                        \"orientation\": \"NE\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 947220,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 1,\n                                \"name\": \"large\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 2,\n                                \"name\": \"roadside\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"005\",\n                        \"cpm\": 16.75,\n                        \"ots\": 22430,\n                        \"code\": \"005\",\n                        \"name\": \"NM/MAP/INTHBP - Hanging Banners Package\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 9015.43,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"MAPONYA MALL SOWETOe\",\n                        \"city_id\": 2634183,\n                        \"latitude\": \"-26.258943\",\n                        \"city_code\": 2634183,\n                        \"city_name\": \"Soweto\",\n                        \"longitude\": \"27.901993\",\n                        \"dimensions\": {\n                            \"hight\": 2,\n                            \"width\": 6\n                        },\n                        \"orientation\": \"SE\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 672900,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 2,\n                                \"name\": \"medium\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 3,\n                                \"name\": \"place based\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"006\",\n                        \"cpm\": 4.36,\n                        \"ots\": 251621,\n                        \"code\": \"006\",\n                        \"name\": \"Billboard\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 26336.42,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"Soweto iconic\",\n                        \"city_id\": 2634183,\n                        \"latitude\": \"-26.237273\",\n                        \"city_code\": 2634183,\n                        \"city_name\": \"Soweto\",\n                        \"longitude\": \"27.901514\",\n                        \"dimensions\": {\n                            \"hight\": 8,\n                            \"width\": 37\n                        },\n                        \"orientation\": \"N\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 7548630,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 1,\n                                \"name\": \"large\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 2,\n                                \"name\": \"roadside\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"007\",\n                        \"cpm\": 0.96,\n                        \"ots\": 258816,\n                        \"code\": \"007\",\n                        \"name\": \"Park Station Entrance\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 6246.91,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"Park Station Entrance\",\n                        \"city_id\": 2627446,\n                        \"latitude\": \"-26.195686\",\n                        \"city_code\": 2627446,\n                        \"city_name\": \"Johannesburg\",\n                        \"longitude\": \"28.041821\",\n                        \"dimensions\": {\n                            \"hight\": 14,\n                            \"width\": 16\n                        },\n                        \"orientation\": \"N\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"yes\",\n                        \"ots_total_plan\": 7764480,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 1,\n                                \"name\": \"large\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 3,\n                                \"name\": \"place based\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    },\n                    {\n                        \"id\": \"008\",\n                        \"cpm\": 4.92,\n                        \"ots\": 51494,\n                        \"code\": \"008\",\n                        \"name\": \"Park Station Western Concourse 2\",\n                        \"unit\": \"m\",\n                        \"budget\": {\n                            \"amount\": 6388.89,\n                            \"iso_currency_code\": \"USD\"\n                        },\n                        \"period\": {\n                            \"end_date\": \"2025-03-31 00:00:00\",\n                            \"start_date\": \"2025-03-01 00:00:00\"\n                        },\n                        \"region\": \"Gauteng\",\n                        \"status\": 1,\n                        \"address\": \"Park Station Western Concourse 2\",\n                        \"city_id\": 2627446,\n                        \"latitude\": \"-26.198028\",\n                        \"city_code\": 2627446,\n                        \"city_name\": \"Johannesburg\",\n                        \"longitude\": \"28.042444\",\n                        \"dimensions\": {\n                            \"hight\": 3,\n                            \"width\": 12\n                        },\n                        \"orientation\": \"W\",\n                        \"region_code\": 4054,\n                        \"country_code\": \"ZA\",\n                        \"country_name\": \"South Africa\",\n                        \"illumination\": \"no\",\n                        \"ots_total_plan\": 1544820,\n                        \"classifications\": {\n                            \"size\": {\n                                \"id\": 2,\n                                \"name\": \"medium\"\n                            },\n                            \"material\": {\n                                \"id\": 1,\n                                \"name\": \"printed\"\n                            },\n                            \"placeType\": {\n                                \"id\": 8,\n                                \"name\": \"Urban + Suburban\"\n                            },\n                            \"mediaClass\": {\n                                \"id\": 3,\n                                \"name\": \"place based\"\n                            },\n                            \"id_classification\": 0,\n                            \"name_classification\": \"\"\n                        }\n                    }\n                ],\n                \"title\": \"SA JHB Spring 2026 Final\",\n                \"weeks\": 4,\n                \"budget\": {\n                    \"amount\": 102932.16,\n                    \"iso_currency_code\": \"USD\"\n                },\n                \"gender\": \"3\",\n                \"end_date\": \"2025-03-31 00:00:00\",\n                \"geo_type\": {\n                    \"id\": 1,\n                    \"name\": \"city\"\n                },\n                \"age_range\": {\n                    \"max_age\": \"55\",\n                    \"min_age\": \"18\"\n                },\n                \"behaviors\": [],\n                \"countries\": [\n                    {\n                        \"name\": \"South Africa\",\n                        \"cities\": [\n                            {\n                                \"id\": 2627446,\n                                \"name\": \"Johannesburg\",\n                                \"assets\": 6,\n                                \"budget\": {\n                                    \"amount\": 67580.31,\n                                    \"iso_currency_code\": \"USD\"\n                                },\n                                \"city_id\": 2627446,\n                                \"coverage\": 81.06,\n                                \"city_name\": \"Johannesburg\",\n                                \"region_id\": 4054,\n                                \"region_name\": \"Gauteng\",\n                                \"audience_cpm\": 4.06,\n                                \"audience_ots\": 16626984,\n                                \"total_population\": 1550000,\n                                \"average_frequency\": 21.15,\n                                \"reached_population\": 916789,\n                                \"audience_population\": 1131000,\n                                \"effective_frequency\": [\n                                    {\n                                        \"name\": \"+1\",\n                                        \"value\": 81.06\n                                    },\n                                    {\n                                        \"name\": \"+2\",\n                                        \"value\": 79.2\n                                    },\n                                    {\n                                        \"name\": \"+3\",\n                                        \"value\": 77.4\n                                    },\n                                    {\n                                        \"name\": \"+4\",\n                                        \"value\": 75.7\n                                    },\n                                    {\n                                        \"name\": \"+5\",\n                                        \"value\": 73.9\n                                    },\n                                    {\n                                        \"name\": \"+6\",\n                                        \"value\": 72.2\n                                    },\n                                    {\n                                        \"name\": \"+7\",\n                                        \"value\": 70.6\n                                    },\n                                    {\n                                        \"name\": \"+8\",\n                                        \"value\": 69\n                                    },\n                                    {\n                                        \"name\": \"+9\",\n                                        \"value\": 67.4\n                                    },\n                                    {\n                                        \"name\": \"+10\",\n                                        \"value\": 65.9\n                                    },\n                                    {\n                                        \"name\": \"+11\",\n                                        \"value\": 64.4\n                                    },\n                                    {\n                                        \"name\": \"+12\",\n                                        \"value\": 62.9\n                                    },\n                                    {\n                                        \"name\": \"+13\",\n                                        \"value\": 61.5\n                                    },\n                                    {\n                                        \"name\": \"+14\",\n                                        \"value\": 60.1\n                                    },\n                                    {\n                                        \"name\": \"+15\",\n                                        \"value\": 58.7\n                                    },\n                                    {\n                                        \"name\": \"+16\",\n                                        \"value\": 57.4\n                                    },\n                                    {\n                                        \"name\": \"+17\",\n                                        \"value\": 56.1\n                                    },\n                                    {\n                                        \"name\": \"+18\",\n                                        \"value\": 54.8\n                                    },\n                                    {\n                                        \"name\": \"+19\",\n                                        \"value\": 53.6\n                                    },\n                                    {\n                                        \"name\": \"+20\",\n                                        \"value\": 52.4\n                                    },\n                                    {\n                                        \"name\": \"+21\",\n                                        \"value\": 51.2\n                                    },\n                                    {\n                                        \"name\": \"+22\",\n                                        \"value\": 50\n                                    }\n                                ]\n                            },\n                            {\n                                \"id\": 2634183,\n                                \"name\": \"Soweto\",\n                                \"assets\": 2,\n                                \"budget\": {\n                                    \"amount\": 35351.85,\n                                    \"iso_currency_code\": \"USD\"\n                                },\n                                \"city_id\": 2634183,\n                                \"coverage\": 54.17,\n                                \"city_name\": \"Soweto\",\n                                \"region_id\": 4054,\n                                \"region_name\": \"Gauteng\",\n                                \"audience_cpm\": 6.42,\n                                \"audience_ots\": 5508425,\n                                \"total_population\": 1500000,\n                                \"average_frequency\": 11.8,\n                                \"reached_population\": 542783,\n                                \"audience_population\": 1002000,\n                                \"effective_frequency\": [\n                                    {\n                                        \"name\": \"+1\",\n                                        \"value\": 54.17\n                                    },\n                                    {\n                                        \"name\": \"+2\",\n                                        \"value\": 52.5\n                                    },\n                                    {\n                                        \"name\": \"+3\",\n                                        \"value\": 50.8\n                                    },\n                                    {\n                                        \"name\": \"+4\",\n                                        \"value\": 49.2\n                                    },\n                                    {\n                                        \"name\": \"+5\",\n                                        \"value\": 47.7\n                                    },\n                                    {\n                                        \"name\": \"+6\",\n                                        \"value\": 46.2\n                                    },\n                                    {\n                                        \"name\": \"+7\",\n                                        \"value\": 44.8\n                                    },\n                                    {\n                                        \"name\": \"+8\",\n                                        \"value\": 43.4\n                                    },\n                                    {\n                                        \"name\": \"+9\",\n                                        \"value\": 42\n                                    },\n                                    {\n                                        \"name\": \"+10\",\n                                        \"value\": 40.7\n                                    },\n                                    {\n                                        \"name\": \"+11\",\n                                        \"value\": 39.4\n                                    },\n                                    {\n                                        \"name\": \"+12\",\n                                        \"value\": 38.2\n                                    },\n                                    {\n                                        \"name\": \"+13\",\n                                        \"value\": 37\n                                    },\n                                    {\n                                        \"name\": \"+14\",\n                                        \"value\": 35.8\n                                    },\n                                    {\n                                        \"name\": \"+15\",\n                                        \"value\": 34.7\n                                    },\n                                    {\n                                        \"name\": \"+16\",\n                                        \"value\": 33.6\n                                    },\n                                    {\n                                        \"name\": \"+17\",\n                                        \"value\": 32.6\n                                    },\n                                    {\n                                        \"name\": \"+18\",\n                                        \"value\": 31.6\n                                    },\n                                    {\n                                        \"name\": \"+19\",\n                                        \"value\": 30.6\n                                    },\n                                    {\n                                        \"name\": \"+20\",\n                                        \"value\": 29.6\n                                    },\n                                    {\n                                        \"name\": \"+21\",\n                                        \"value\": 28.7\n                                    },\n                                    {\n                                        \"name\": \"+22\",\n                                        \"value\": 27.8\n                                    }\n                                ]\n                            }\n                        ],\n                        \"iso_code\": \"ZA\",\n                        \"all_locations\": {\n                            \"TRP\": 1209.3261486169715,\n                            \"assets\": 8,\n                            \"budget\": {\n                                \"amount\": 102932.16,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"coverage\": 68.42812939521801,\n                            \"audience_cpm\": 4.6501133094039515,\n                            \"audience_ots\": 22135409,\n                            \"total_population\": 3050000,\n                            \"average_frequency\": 17.67293888208324,\n                            \"reached_population\": 1459572,\n                            \"audience_population\": 2133000,\n                            \"effective_frequency\": [\n                                {\n                                    \"name\": \"+1\",\n                                    \"value\": 68.42812939521801\n                                },\n                                {\n                                    \"name\": \"+2\",\n                                    \"value\": 66.65738396624472\n                                },\n                                {\n                                    \"name\": \"+3\",\n                                    \"value\": 64.9043600562588\n                                },\n                                {\n                                    \"name\": \"+4\",\n                                    \"value\": 63.251336146272855\n                                },\n                                {\n                                    \"name\": \"+5\",\n                                    \"value\": 61.59226441631505\n                                },\n                                {\n                                    \"name\": \"+6\",\n                                    \"value\": 59.986216596343176\n                                },\n                                {\n                                    \"name\": \"+7\",\n                                    \"value\": 58.48016877637131\n                                },\n                                {\n                                    \"name\": \"+8\",\n                                    \"value\": 56.97412095639944\n                                },\n                                {\n                                    \"name\": \"+9\",\n                                    \"value\": 55.46807313642757\n                                },\n                                {\n                                    \"name\": \"+10\",\n                                    \"value\": 54.062025316455696\n                                },\n                                {\n                                    \"name\": \"+11\",\n                                    \"value\": 52.65597749648383\n                                },\n                                {\n                                    \"name\": \"+12\",\n                                    \"value\": 51.29690576652602\n                                },\n                                {\n                                    \"name\": \"+13\",\n                                    \"value\": 49.99085794655415\n                                },\n                                {\n                                    \"name\": \"+14\",\n                                    \"value\": 48.68481012658228\n                                },\n                                {\n                                    \"name\": \"+15\",\n                                    \"value\": 47.425738396624475\n                                },\n                                {\n                                    \"name\": \"+16\",\n                                    \"value\": 46.2196905766526\n                                },\n                                {\n                                    \"name\": \"+17\",\n                                    \"value\": 45.060618846694794\n                                },\n                                {\n                                    \"name\": \"+18\",\n                                    \"value\": 43.90154711673699\n                                },\n                                {\n                                    \"name\": \"+19\",\n                                    \"value\": 42.79549929676512\n                                },\n                                {\n                                    \"name\": \"+20\",\n                                    \"value\": 41.68945147679325\n                                },\n                                {\n                                    \"name\": \"+21\",\n                                    \"value\": 40.630379746835445\n                                },\n                                {\n                                    \"name\": \"+22\",\n                                    \"value\": 39.57130801687764\n                                }\n                            ]\n                        }\n                    }\n                ],\n                \"interests\": [],\n                \"languages\": [],\n                \"advertiser\": \"{\\\"advertiser\\\":{\\\"id\\\":353,\\\"name\\\":\\\"inDrive\\\"},\\\"brand\\\":{\\\"id\\\":317,\\\"name\\\":\\\"inDrive\\\"}}\",\n                \"start_date\": \"2025-03-01 00:00:00\",\n                \"socioeconomic_levels\": \"{\\\"min\\\":{\\\"id\\\":3,\\\"name\\\":\\\"medium\\\"},\\\"max\\\":{\\\"id\\\":7,\\\"name\\\":\\\"low_low\\\"}}\"\n            }\n        },\n        \"relationships\": {\n            \"account\": {\n                \"data\": {\n                    \"id\": 353,\n                    \"type\": \"accounts\"\n                },\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/accounts/792\"\n                }\n            },\n            \"company\": {\n                \"data\": {\n                    \"id\": 55,\n                    \"type\": \"companies\",\n                    \"name\": \"inDrive\",\n                    \"logo\": \"https://metrics-tdtglobal.s3.amazonaws.com/images/companies/system-company-55-681280c993ce5.jpg\",\n                    \"profile\": {\n                        \"id\": 2,\n                        \"name\": \"Premium\"\n                    }\n                },\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/companies/792\"\n                }\n            },\n            \"user\": {\n                \"data\": {\n                    \"id\": 103,\n                    \"type\": \"users\"\n                },\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/users/792\"\n                }\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/media-plan/792\"\n        }\n    }\n}"},{"id":"c37178f7-f1b4-416f-a526-3188b9cc996c","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{api_url}}/media-plan/:id?lang=pt&company_id=55","host":["{{api_url}}"],"path":["media-plan",":id"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"token","value":"352ca7efadf394b4c96506db589dde84f4e4f21782ef943d4aae1d66333807b78b7c18ec13fba22e4ceb50d01c73efce941","description":"optional | string","disabled":true}],"variable":[{"key":"id","value":"792"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 16:05:05 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"99831b0e-72d5-4d94-b645-3d1f22080d5c"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Unauthenticated.\"\n}"},{"id":"aab1ce48-4166-4781-8500-8993bc76eff0","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{api_url}}/media-plan/:id?lang=pt&company_id=55","host":["{{api_url}}"],"path":["media-plan",":id"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"token","value":"352ca7efadf394b4c96506db589dde84f4e4f21782ef943d4aae1d66333807b78b7c18ec13fba22e4ceb50d01c73efce941","description":"optional | string","disabled":true}],"variable":[{"key":"id","value":"790"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 15:47:52 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"9007fc27-3bee-4871-af70-aa20efb84859"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Media Plan not found.\"\n}"},{"id":"2e34fe7e-19bc-4783-8f1c-df097b555157","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"{{api_url}}/media-plan/:id?lang=pt&company_id=55","host":["{{api_url}}"],"path":["media-plan",":id"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"token","value":"352ca7efadf394b4c96506db589dde84f4e4f21782ef943d4aae1d66333807b78b7c18ec13fba22e4ceb50d01c73efce941","description":"optional | string","disabled":true}],"variable":[{"key":"id","value":"792"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 15:52:22 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"690e77e1-d925-41d6-a929-78123f510043"},{"name":"Get media plan paginated","id":"61421510-13ed-400e-8c12-203232c77fd9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{api_url}}/media-plans/paginated?lang=en&company_id=55&include[]=company&include[]=user&include[]=account&page[number]=1&page[size]=1","description":"<p>Retrieves a paginated list of Media Plan evaluations. Use this endpoint to build history views, dashboards, or to browse/filter previously executed Media Plans.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> a valid Bearer token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>Endpoint:</strong> <code>/api/media-plan</code></p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the request.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Page number (default: <code>1</code>).</td>\n</tr>\n<tr>\n<td><code>per_page</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Items per page (default depends on server).</td>\n</tr>\n<tr>\n<td><code>search</code></td>\n<td>No</td>\n<td>string</td>\n<td>Free-text search (name/title or similar).</td>\n</tr>\n<tr>\n<td><code>sort</code></td>\n<td>No</td>\n<td>string</td>\n<td>Sort field (example: <code>created_at</code>).</td>\n</tr>\n<tr>\n<td><code>order</code></td>\n<td>No</td>\n<td>string</td>\n<td>Sort direction: <code>asc</code> or <code>desc</code>.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Note: The available filter/sort parameters may vary by implementation. If your API exposes different query params (e.g., <code>limit</code>, <code>offset</code>, <code>q</code>), reflect them here to match your collection. </p>\n</blockquote>\n<hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--media-plans-retrieved-paginated\">200 OK — Media Plans Retrieved (Paginated)</h2>\n<p>Returned when the request is valid and the authenticated user has access to the requested company scope.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Sample data only. IDs, names, emails, URLs, and tokens are generic. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 792,\n      \"type\": \"evaluation\",\n      \"attributes\": {\n        \"name\": \"Sample Media Plan Name\",\n        \"account_id\": 353,\n        \"company_id\": 55,\n        \"created_date\": \"2026-02-08\",\n        \"user_id\": 103,\n        \"token\": {\n          \"token\": \"792f5de5d3bcb5e76e4e7ae89313abd168042d8d...&lt;truncated&gt;\",\n          \"created_at\": \"2026-02-08 20:10:32\"\n        },\n        \"data\": {\n          \"goal\": \"{\\\"id\\\":2,\\\"name\\\":\\\"Brand Awareness\\\"}\",\n          \"title\": \"Sample Media Plan Title\",\n          \"weeks\": 4,\n          \"budget\": {\n            \"amount\": 102932.16,\n            \"iso_currency_code\": \"USD\"\n          },\n          \"start_date\": \"2025-03-01 00:00:00\",\n          \"end_date\": \"2025-03-31 00:00:00\",\n          \"gender\": \"3\",\n          \"geo_type\": {\n            \"id\": 1,\n            \"name\": \"city\"\n          },\n          \"age_range\": {\n            \"min_age\": \"18\",\n            \"max_age\": \"55\"\n          },\n          \"behaviors\": [],\n          \"interests\": [],\n          \"languages\": [],\n          \"advertiser\": \"{\\\"advertiser\\\":{\\\"id\\\":353,\\\"name\\\":\\\"Sample Advertiser\\\"},\\\"brand\\\":{\\\"id\\\":317,\\\"name\\\":\\\"Sample Brand\\\"}}\",\n          \"socioeconomic_levels\": \"{\\\"min\\\":{\\\"id\\\":3,\\\"name\\\":\\\"medium\\\"},\\\"max\\\":{\\\"id\\\":7,\\\"name\\\":\\\"low_low\\\"}}\",\n          \"tags\": [\n            {\n              \"id\": \"001\",\n              \"code\": \"001\",\n              \"name\": \"Sample Location 001\",\n              \"country_code\": \"ZA\",\n              \"country_name\": \"South Africa\",\n              \"city_id\": 2627446,\n              \"city_name\": \"Johannesburg\",\n              \"region\": \"Gauteng\",\n              \"budget\": {\n                \"amount\": 11654.98,\n                \"iso_currency_code\": \"USD\"\n              },\n              \"period\": {\n                \"start_date\": \"2025-03-01 00:00:00\",\n                \"end_date\": \"2025-03-31 00:00:00\"\n              },\n              \"ots\": 169719,\n              \"cpm\": 2.73,\n              \"illumination\": \"yes\",\n              \"dimensions\": {\n                \"hight\": 59,\n                \"width\": 20\n              },\n              \"classifications\": {\n                \"size\": { \"id\": 1, \"name\": \"large\" },\n                \"material\": { \"id\": 1, \"name\": \"printed\" },\n                \"placeType\": { \"id\": 8, \"name\": \"Urban + Suburban\" },\n                \"mediaClass\": { \"id\": 2, \"name\": \"roadside\" },\n                \"id_classification\": 0,\n                \"name_classification\": \"\"\n              }\n            }\n          ],\n          \"countries\": [\n            {\n              \"name\": \"South Africa\",\n              \"iso_code\": \"ZA\",\n              \"cities\": [\n                {\n                  \"id\": 2627446,\n                  \"name\": \"Johannesburg\",\n                  \"assets\": 6,\n                  \"coverage\": 81.06,\n                  \"audience_cpm\": 4.06,\n                  \"audience_ots\": 16626984,\n                  \"total_population\": 1550000,\n                  \"reached_population\": 916789,\n                  \"audience_population\": 1131000,\n                  \"average_frequency\": 21.15,\n                  \"budget\": {\n                    \"amount\": 67580.31,\n                    \"iso_currency_code\": \"USD\"\n                  },\n                  \"effective_frequency\": [\n                    { \"name\": \"+1\", \"value\": 81.06 },\n                    { \"name\": \"+2\", \"value\": 79.2 }\n                  ]\n                }\n              ],\n              \"all_locations\": {\n                \"TRP\": 1209.3261486169715,\n                \"assets\": 8,\n                \"coverage\": 68.42812939521801,\n                \"audience_cpm\": 4.6501133094039515,\n                \"audience_ots\": 22135409,\n                \"total_population\": 3050000,\n                \"reached_population\": 1459572,\n                \"audience_population\": 2133000,\n                \"average_frequency\": 17.67293888208324,\n                \"budget\": {\n                  \"amount\": 102932.16,\n                  \"iso_currency_code\": \"USD\"\n                },\n                \"effective_frequency\": [\n                  { \"name\": \"+1\", \"value\": 68.42812939521801 },\n                  { \"name\": \"+2\", \"value\": 66.65738396624472 }\n                ]\n              }\n            }\n          ]\n        }\n      },\n      \"relationships\": {\n        \"account\": {\n          \"data\": { \"id\": 353, \"type\": \"accounts\" },\n          \"links\": { \"self\": \"https://api.example.com/api/accounts/353\" }\n        },\n        \"company\": {\n          \"data\": {\n            \"id\": 55,\n            \"type\": \"companies\",\n            \"name\": \"Sample Company\",\n            \"logo\": \"https://cdn.example.com/images/companies/company-55.jpg\",\n            \"profile\": { \"id\": 2, \"name\": \"Premium\" }\n          },\n          \"links\": { \"self\": \"https://api.example.com/api/companies/55\" }\n        },\n        \"user\": {\n          \"data\": { \"id\": 103, \"type\": \"users\" },\n          \"links\": { \"self\": \"https://api.example.com/api/users/103\" }\n        }\n      },\n      \"links\": {\n        \"self\": \"https://api.example.com/api/media-plan/792\"\n      }\n    }\n  ],\n  \"links\": {\n    \"first\": \"https://api.example.com/api/media-plan/paginated?page=1\",\n    \"last\": \"https://api.example.com/api/media-plan/paginated?page=91\",\n    \"prev\": null,\n    \"next\": \"https://api.example.com/api/media-plan/paginated?page=2\"\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"total_items\": 91,\n    \"per_page\": 1,\n    \"total_pages\": 91\n  },\n  \"included\": [\n    {\n      \"id\": 55,\n      \"type\": \"companies\",\n      \"attributes\": {\n        \"name\": \"Sample Company\",\n        \"country_id\": 4,\n        \"address\": \"\",\n        \"tax_identification\": null,\n        \"phone_number\": null,\n        \"timezone\": null,\n        \"updated_at\": \"2025-04-30T19:58:01.000000Z\",\n        \"logo\": \"https://cdn.example.com/images/companies/company-55.jpg\",\n        \"profile\": { \"id\": 2, \"name\": \"Premium\" }\n      },\n      \"relationships\": {\n        \"country\": {\n          \"links\": { \"self\": \"https://api.example.com/api/countries/4\" }\n        },\n        \"logo\": {\n          \"data\": { \"id\": 21277, \"type\": \"images\" }\n        }\n      },\n      \"links\": {\n        \"self\": \"https://api.example.com/api/companies/55\"\n      }\n    },\n    {\n      \"id\": 103,\n      \"type\": \"users\",\n      \"attributes\": {\n        \"name\": \"Sample\",\n        \"last_name\": \"User\",\n        \"avatar\": null,\n        \"email\": \"user@example.com\",\n        \"country_id\": 4,\n        \"company_id\": 55,\n        \"user_type_id\": 1,\n        \"timezone\": null,\n        \"position\": \"Admin\",\n        \"phone_number\": null,\n        \"birthday\": null,\n        \"gender\": null,\n        \"first_loggin_at\": \"2026-02-09 16:20:19\"\n      },\n      \"relationships\": {\n        \"country\": [],\n        \"company\": [],\n        \"user_type\": [],\n        \"permissions\": [],\n        \"roles\": []\n      },\n      \"links\": {\n        \"self\": \"https://api.example.com/api/users/103\"\n      }\n    }\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h2 id=\"401-unauthorized--missing-or-invalid-token\">401 Unauthorized — Missing or Invalid Token</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"Token expired\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<h3 id=\"example-response-404\">Example Response (404)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"The route api/media-plans/paginated could not be found.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<h3 id=\"example-response-500\">Example Response (500)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/media-plan?company_id=55&amp;page=1&amp;per_page=10' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["media-plans","paginated"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string [en, es, pt]</p>\n","type":"text/plain"},"key":"lang","value":"en"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[name]","value":"Plan de prueba Daniel"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[id][]","value":"1"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[account][]","value":"66"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[user][]","value":""},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[company][]","value":""},{"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"include[]","value":"company"},{"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"include[]","value":"user"},{"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"include[]","value":"account"},{"disabled":true,"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"sort[]","value":"name"},{"disabled":true,"key":"sort[]","value":"-createdAt"},{"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"page[number]","value":"1"},{"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"page[size]","value":"1"}],"variable":[]}},"response":[{"id":"0856ff31-5a56-4c29-9c53-9f8d7ae23dd4","name":"200 OK — Get media plan paginated","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/media-plan/paginated?lang=en&company_id=55&include[]=company&include[]=user&include[]=account&page[number]=1&page[size]=1","host":["{{api_url}}"],"path":["media-plan","paginated"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"Plan de prueba Daniel","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[account][]","value":"66","description":"optional | array | integer","disabled":true},{"key":"filter[user][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"filter[company][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"include[]","value":"company","description":"optional | array | string"},{"key":"include[]","value":"user","description":"optional | array | string"},{"key":"include[]","value":"account","description":"optional | array | string"},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer"},{"key":"page[size]","value":"1","description":"optional | integer"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 16:20:12 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"1c6378a7-a06d-43e6-bbc1-e3f707f4be9b"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 792,\n            \"type\": \"evaluation\",\n            \"attributes\": {\n                \"name\": \"SA JHB Spring 2026 Final\",\n                \"account_id\": 353,\n                \"company_id\": 55,\n                \"created_date\": \"2026-02-08\",\n                \"user_id\": 103,\n                \"token\": {\n                    \"token\": \"792f5de5d3bcb5e76e4e7ae89313abd168042d8dfaed8ce483f92c70a54199aab4af4f88669bbacfaa51f33cf4460af9caa\",\n                    \"created_at\": \"2026-02-08 20:10:32\"\n                },\n                \"data\": {\n                    \"goal\": \"{\\\"id\\\":2,\\\"name\\\":\\\"Branding / Brand Awareness\\\"}\",\n                    \"tags\": [\n                        {\n                            \"id\": \"001\",\n                            \"cpm\": 2.73,\n                            \"ots\": 169719,\n                            \"code\": \"001\",\n                            \"name\": \"JOHANNESBURG CBD\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 11654.98,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"JOHANNESBURG CBD\",\n                            \"city_id\": 2627446,\n                            \"latitude\": \"-26.198256\",\n                            \"city_code\": 2627446,\n                            \"city_name\": \"Johannesburg\",\n                            \"longitude\": \"28.044678\",\n                            \"dimensions\": {\n                                \"hight\": 59,\n                                \"width\": 20\n                            },\n                            \"orientation\": \"NE\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 5091570,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 1,\n                                    \"name\": \"large\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 2,\n                                    \"name\": \"roadside\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"002\",\n                            \"cpm\": 2.74,\n                            \"ots\": 212579,\n                            \"code\": \"002\",\n                            \"name\": \"GHANDI SQUARE\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 14658.95,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"GHANDI SQUARE\",\n                            \"city_id\": 2627446,\n                            \"latitude\": \"-26.206317\",\n                            \"city_code\": 2627446,\n                            \"city_name\": \"Johannesburg\",\n                            \"longitude\": \"28.042741\",\n                            \"dimensions\": {\n                                \"hight\": 9,\n                                \"width\": 27\n                            },\n                            \"orientation\": \"S\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 6377370,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 1,\n                                    \"name\": \"large\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 2,\n                                    \"name\": \"roadside\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"003\",\n                            \"cpm\": 2.77,\n                            \"ots\": 35041,\n                            \"code\": \"003\",\n                            \"name\": \"Joburg CBD Park Station - Turn\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 2449.97,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"Joburg CBD Park Station - Turn\",\n                            \"city_id\": 2627446,\n                            \"latitude\": \"-26.197751\",\n                            \"city_code\": 2627446,\n                            \"city_name\": \"Johannesburg\",\n                            \"longitude\": \"28.042299\",\n                            \"dimensions\": {\n                                \"hight\": 2.5,\n                                \"width\": 6\n                            },\n                            \"orientation\": \"SW\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 1051230,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 2,\n                                    \"name\": \"medium\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 3,\n                                    \"name\": \"place based\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"004\",\n                            \"cpm\": 32.9,\n                            \"ots\": 31574,\n                            \"code\": \"004\",\n                            \"name\": \"PRK-074 JHB   CBD Park Station - Wanders\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 26180.61,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"CBD Park Station - Wanders\",\n                            \"city_id\": 2627446,\n                            \"latitude\": \"-26.198408\",\n                            \"city_code\": 2627446,\n                            \"city_name\": \"Johannesburg\",\n                            \"longitude\": \"28.043806\",\n                            \"dimensions\": {\n                                \"hight\": 2,\n                                \"width\": 5.5\n                            },\n                            \"orientation\": \"NE\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 947220,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 1,\n                                    \"name\": \"large\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 2,\n                                    \"name\": \"roadside\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"005\",\n                            \"cpm\": 16.75,\n                            \"ots\": 22430,\n                            \"code\": \"005\",\n                            \"name\": \"NM/MAP/INTHBP - Hanging Banners Package\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 9015.43,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"MAPONYA MALL SOWETOe\",\n                            \"city_id\": 2634183,\n                            \"latitude\": \"-26.258943\",\n                            \"city_code\": 2634183,\n                            \"city_name\": \"Soweto\",\n                            \"longitude\": \"27.901993\",\n                            \"dimensions\": {\n                                \"hight\": 2,\n                                \"width\": 6\n                            },\n                            \"orientation\": \"SE\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 672900,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 2,\n                                    \"name\": \"medium\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 3,\n                                    \"name\": \"place based\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"006\",\n                            \"cpm\": 4.36,\n                            \"ots\": 251621,\n                            \"code\": \"006\",\n                            \"name\": \"Billboard\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 26336.42,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"Soweto iconic\",\n                            \"city_id\": 2634183,\n                            \"latitude\": \"-26.237273\",\n                            \"city_code\": 2634183,\n                            \"city_name\": \"Soweto\",\n                            \"longitude\": \"27.901514\",\n                            \"dimensions\": {\n                                \"hight\": 8,\n                                \"width\": 37\n                            },\n                            \"orientation\": \"N\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 7548630,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 1,\n                                    \"name\": \"large\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 2,\n                                    \"name\": \"roadside\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"007\",\n                            \"cpm\": 0.96,\n                            \"ots\": 258816,\n                            \"code\": \"007\",\n                            \"name\": \"Park Station Entrance\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 6246.91,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"Park Station Entrance\",\n                            \"city_id\": 2627446,\n                            \"latitude\": \"-26.195686\",\n                            \"city_code\": 2627446,\n                            \"city_name\": \"Johannesburg\",\n                            \"longitude\": \"28.041821\",\n                            \"dimensions\": {\n                                \"hight\": 14,\n                                \"width\": 16\n                            },\n                            \"orientation\": \"N\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"yes\",\n                            \"ots_total_plan\": 7764480,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 1,\n                                    \"name\": \"large\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 3,\n                                    \"name\": \"place based\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        },\n                        {\n                            \"id\": \"008\",\n                            \"cpm\": 4.92,\n                            \"ots\": 51494,\n                            \"code\": \"008\",\n                            \"name\": \"Park Station Western Concourse 2\",\n                            \"unit\": \"m\",\n                            \"budget\": {\n                                \"amount\": 6388.89,\n                                \"iso_currency_code\": \"USD\"\n                            },\n                            \"period\": {\n                                \"end_date\": \"2025-03-31 00:00:00\",\n                                \"start_date\": \"2025-03-01 00:00:00\"\n                            },\n                            \"region\": \"Gauteng\",\n                            \"status\": 1,\n                            \"address\": \"Park Station Western Concourse 2\",\n                            \"city_id\": 2627446,\n                            \"latitude\": \"-26.198028\",\n                            \"city_code\": 2627446,\n                            \"city_name\": \"Johannesburg\",\n                            \"longitude\": \"28.042444\",\n                            \"dimensions\": {\n                                \"hight\": 3,\n                                \"width\": 12\n                            },\n                            \"orientation\": \"W\",\n                            \"region_code\": 4054,\n                            \"country_code\": \"ZA\",\n                            \"country_name\": \"South Africa\",\n                            \"illumination\": \"no\",\n                            \"ots_total_plan\": 1544820,\n                            \"classifications\": {\n                                \"size\": {\n                                    \"id\": 2,\n                                    \"name\": \"medium\"\n                                },\n                                \"material\": {\n                                    \"id\": 1,\n                                    \"name\": \"printed\"\n                                },\n                                \"placeType\": {\n                                    \"id\": 8,\n                                    \"name\": \"Urban + Suburban\"\n                                },\n                                \"mediaClass\": {\n                                    \"id\": 3,\n                                    \"name\": \"place based\"\n                                },\n                                \"id_classification\": 0,\n                                \"name_classification\": \"\"\n                            }\n                        }\n                    ],\n                    \"title\": \"SA JHB Spring 2026 Final\",\n                    \"weeks\": 4,\n                    \"budget\": {\n                        \"amount\": 102932.16,\n                        \"iso_currency_code\": \"USD\"\n                    },\n                    \"gender\": \"3\",\n                    \"end_date\": \"2025-03-31 00:00:00\",\n                    \"geo_type\": {\n                        \"id\": 1,\n                        \"name\": \"city\"\n                    },\n                    \"age_range\": {\n                        \"max_age\": \"55\",\n                        \"min_age\": \"18\"\n                    },\n                    \"behaviors\": [],\n                    \"countries\": [\n                        {\n                            \"name\": \"South Africa\",\n                            \"cities\": [\n                                {\n                                    \"id\": 2627446,\n                                    \"name\": \"Johannesburg\",\n                                    \"assets\": 6,\n                                    \"budget\": {\n                                        \"amount\": 67580.31,\n                                        \"iso_currency_code\": \"USD\"\n                                    },\n                                    \"city_id\": 2627446,\n                                    \"coverage\": 81.06,\n                                    \"city_name\": \"Johannesburg\",\n                                    \"region_id\": 4054,\n                                    \"region_name\": \"Gauteng\",\n                                    \"audience_cpm\": 4.06,\n                                    \"audience_ots\": 16626984,\n                                    \"total_population\": 1550000,\n                                    \"average_frequency\": 21.15,\n                                    \"reached_population\": 916789,\n                                    \"audience_population\": 1131000,\n                                    \"effective_frequency\": [\n                                        {\n                                            \"name\": \"+1\",\n                                            \"value\": 81.06\n                                        },\n                                        {\n                                            \"name\": \"+2\",\n                                            \"value\": 79.2\n                                        },\n                                        {\n                                            \"name\": \"+3\",\n                                            \"value\": 77.4\n                                        },\n                                        {\n                                            \"name\": \"+4\",\n                                            \"value\": 75.7\n                                        },\n                                        {\n                                            \"name\": \"+5\",\n                                            \"value\": 73.9\n                                        },\n                                        {\n                                            \"name\": \"+6\",\n                                            \"value\": 72.2\n                                        },\n                                        {\n                                            \"name\": \"+7\",\n                                            \"value\": 70.6\n                                        },\n                                        {\n                                            \"name\": \"+8\",\n                                            \"value\": 69\n                                        },\n                                        {\n                                            \"name\": \"+9\",\n                                            \"value\": 67.4\n                                        },\n                                        {\n                                            \"name\": \"+10\",\n                                            \"value\": 65.9\n                                        },\n                                        {\n                                            \"name\": \"+11\",\n                                            \"value\": 64.4\n                                        },\n                                        {\n                                            \"name\": \"+12\",\n                                            \"value\": 62.9\n                                        },\n                                        {\n                                            \"name\": \"+13\",\n                                            \"value\": 61.5\n                                        },\n                                        {\n                                            \"name\": \"+14\",\n                                            \"value\": 60.1\n                                        },\n                                        {\n                                            \"name\": \"+15\",\n                                            \"value\": 58.7\n                                        },\n                                        {\n                                            \"name\": \"+16\",\n                                            \"value\": 57.4\n                                        },\n                                        {\n                                            \"name\": \"+17\",\n                                            \"value\": 56.1\n                                        },\n                                        {\n                                            \"name\": \"+18\",\n                                            \"value\": 54.8\n                                        },\n                                        {\n                                            \"name\": \"+19\",\n                                            \"value\": 53.6\n                                        },\n                                        {\n                                            \"name\": \"+20\",\n                                            \"value\": 52.4\n                                        },\n                                        {\n                                            \"name\": \"+21\",\n                                            \"value\": 51.2\n                                        },\n                                        {\n                                            \"name\": \"+22\",\n                                            \"value\": 50\n                                        }\n                                    ]\n                                },\n                                {\n                                    \"id\": 2634183,\n                                    \"name\": \"Soweto\",\n                                    \"assets\": 2,\n                                    \"budget\": {\n                                        \"amount\": 35351.85,\n                                        \"iso_currency_code\": \"USD\"\n                                    },\n                                    \"city_id\": 2634183,\n                                    \"coverage\": 54.17,\n                                    \"city_name\": \"Soweto\",\n                                    \"region_id\": 4054,\n                                    \"region_name\": \"Gauteng\",\n                                    \"audience_cpm\": 6.42,\n                                    \"audience_ots\": 5508425,\n                                    \"total_population\": 1500000,\n                                    \"average_frequency\": 11.8,\n                                    \"reached_population\": 542783,\n                                    \"audience_population\": 1002000,\n                                    \"effective_frequency\": [\n                                        {\n                                            \"name\": \"+1\",\n                                            \"value\": 54.17\n                                        },\n                                        {\n                                            \"name\": \"+2\",\n                                            \"value\": 52.5\n                                        },\n                                        {\n                                            \"name\": \"+3\",\n                                            \"value\": 50.8\n                                        },\n                                        {\n                                            \"name\": \"+4\",\n                                            \"value\": 49.2\n                                        },\n                                        {\n                                            \"name\": \"+5\",\n                                            \"value\": 47.7\n                                        },\n                                        {\n                                            \"name\": \"+6\",\n                                            \"value\": 46.2\n                                        },\n                                        {\n                                            \"name\": \"+7\",\n                                            \"value\": 44.8\n                                        },\n                                        {\n                                            \"name\": \"+8\",\n                                            \"value\": 43.4\n                                        },\n                                        {\n                                            \"name\": \"+9\",\n                                            \"value\": 42\n                                        },\n                                        {\n                                            \"name\": \"+10\",\n                                            \"value\": 40.7\n                                        },\n                                        {\n                                            \"name\": \"+11\",\n                                            \"value\": 39.4\n                                        },\n                                        {\n                                            \"name\": \"+12\",\n                                            \"value\": 38.2\n                                        },\n                                        {\n                                            \"name\": \"+13\",\n                                            \"value\": 37\n                                        },\n                                        {\n                                            \"name\": \"+14\",\n                                            \"value\": 35.8\n                                        },\n                                        {\n                                            \"name\": \"+15\",\n                                            \"value\": 34.7\n                                        },\n                                        {\n                                            \"name\": \"+16\",\n                                            \"value\": 33.6\n                                        },\n                                        {\n                                            \"name\": \"+17\",\n                                            \"value\": 32.6\n                                        },\n                                        {\n                                            \"name\": \"+18\",\n                                            \"value\": 31.6\n                                        },\n                                        {\n                                            \"name\": \"+19\",\n                                            \"value\": 30.6\n                                        },\n                                        {\n                                            \"name\": \"+20\",\n                                            \"value\": 29.6\n                                        },\n                                        {\n                                            \"name\": \"+21\",\n                                            \"value\": 28.7\n                                        },\n                                        {\n                                            \"name\": \"+22\",\n                                            \"value\": 27.8\n                                        }\n                                    ]\n                                }\n                            ],\n                            \"iso_code\": \"ZA\",\n                            \"all_locations\": {\n                                \"TRP\": 1209.3261486169715,\n                                \"assets\": 8,\n                                \"budget\": {\n                                    \"amount\": 102932.16,\n                                    \"iso_currency_code\": \"USD\"\n                                },\n                                \"coverage\": 68.42812939521801,\n                                \"audience_cpm\": 4.6501133094039515,\n                                \"audience_ots\": 22135409,\n                                \"total_population\": 3050000,\n                                \"average_frequency\": 17.67293888208324,\n                                \"reached_population\": 1459572,\n                                \"audience_population\": 2133000,\n                                \"effective_frequency\": [\n                                    {\n                                        \"name\": \"+1\",\n                                        \"value\": 68.42812939521801\n                                    },\n                                    {\n                                        \"name\": \"+2\",\n                                        \"value\": 66.65738396624472\n                                    },\n                                    {\n                                        \"name\": \"+3\",\n                                        \"value\": 64.9043600562588\n                                    },\n                                    {\n                                        \"name\": \"+4\",\n                                        \"value\": 63.251336146272855\n                                    },\n                                    {\n                                        \"name\": \"+5\",\n                                        \"value\": 61.59226441631505\n                                    },\n                                    {\n                                        \"name\": \"+6\",\n                                        \"value\": 59.986216596343176\n                                    },\n                                    {\n                                        \"name\": \"+7\",\n                                        \"value\": 58.48016877637131\n                                    },\n                                    {\n                                        \"name\": \"+8\",\n                                        \"value\": 56.97412095639944\n                                    },\n                                    {\n                                        \"name\": \"+9\",\n                                        \"value\": 55.46807313642757\n                                    },\n                                    {\n                                        \"name\": \"+10\",\n                                        \"value\": 54.062025316455696\n                                    },\n                                    {\n                                        \"name\": \"+11\",\n                                        \"value\": 52.65597749648383\n                                    },\n                                    {\n                                        \"name\": \"+12\",\n                                        \"value\": 51.29690576652602\n                                    },\n                                    {\n                                        \"name\": \"+13\",\n                                        \"value\": 49.99085794655415\n                                    },\n                                    {\n                                        \"name\": \"+14\",\n                                        \"value\": 48.68481012658228\n                                    },\n                                    {\n                                        \"name\": \"+15\",\n                                        \"value\": 47.425738396624475\n                                    },\n                                    {\n                                        \"name\": \"+16\",\n                                        \"value\": 46.2196905766526\n                                    },\n                                    {\n                                        \"name\": \"+17\",\n                                        \"value\": 45.060618846694794\n                                    },\n                                    {\n                                        \"name\": \"+18\",\n                                        \"value\": 43.90154711673699\n                                    },\n                                    {\n                                        \"name\": \"+19\",\n                                        \"value\": 42.79549929676512\n                                    },\n                                    {\n                                        \"name\": \"+20\",\n                                        \"value\": 41.68945147679325\n                                    },\n                                    {\n                                        \"name\": \"+21\",\n                                        \"value\": 40.630379746835445\n                                    },\n                                    {\n                                        \"name\": \"+22\",\n                                        \"value\": 39.57130801687764\n                                    }\n                                ]\n                            }\n                        }\n                    ],\n                    \"interests\": [],\n                    \"languages\": [],\n                    \"advertiser\": \"{\\\"advertiser\\\":{\\\"id\\\":353,\\\"name\\\":\\\"inDrive\\\"},\\\"brand\\\":{\\\"id\\\":317,\\\"name\\\":\\\"inDrive\\\"}}\",\n                    \"start_date\": \"2025-03-01 00:00:00\",\n                    \"socioeconomic_levels\": \"{\\\"min\\\":{\\\"id\\\":3,\\\"name\\\":\\\"medium\\\"},\\\"max\\\":{\\\"id\\\":7,\\\"name\\\":\\\"low_low\\\"}}\"\n                }\n            },\n            \"relationships\": {\n                \"account\": {\n                    \"data\": {\n                        \"id\": 353,\n                        \"type\": \"accounts\"\n                    },\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/accounts/792\"\n                    }\n                },\n                \"company\": {\n                    \"data\": {\n                        \"id\": 55,\n                        \"type\": \"companies\",\n                        \"name\": \"inDrive\",\n                        \"logo\": \"https://metrics-tdtglobal.s3.amazonaws.com/images/companies/system-company-55-681280c993ce5.jpg\",\n                        \"profile\": {\n                            \"id\": 2,\n                            \"name\": \"Premium\"\n                        }\n                    },\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/companies/792\"\n                    }\n                },\n                \"user\": {\n                    \"data\": {\n                        \"id\": 103,\n                        \"type\": \"users\"\n                    },\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/users/792\"\n                    }\n                }\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/media-plan/792\"\n            }\n        }\n    ],\n    \"links\": {\n        \"first\": \"http://localhost/api-evaluator/public/api/media-plan/paginated?page=1\",\n        \"last\": \"http://localhost/api-evaluator/public/api/media-plan/paginated?page=91\",\n        \"prev\": null,\n        \"next\": \"http://localhost/api-evaluator/public/api/media-plan/paginated?page=2\"\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"total_items\": 91,\n        \"per_page\": 1,\n        \"total_pages\": 91\n    },\n    \"included\": [\n        {\n            \"id\": 55,\n            \"type\": \"companies\",\n            \"attributes\": {\n                \"name\": \"inDrive\",\n                \"country_id\": 4,\n                \"address\": \"\",\n                \"tax_identification\": null,\n                \"phone_number\": null,\n                \"timezone\": null,\n                \"updated_at\": \"2025-04-30T19:58:01.000000Z\",\n                \"logo\": \"https://metrics-tdtglobal.s3.amazonaws.com/images/companies/system-company-55-681280c993ce5.jpg\",\n                \"profile\": {\n                    \"id\": 2,\n                    \"name\": \"Premium\"\n                }\n            },\n            \"relationships\": {\n                \"country\": {\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/countries/4\"\n                    }\n                },\n                \"logo\": {\n                    \"data\": {\n                        \"id\": 21277,\n                        \"type\": \"images\"\n                    }\n                }\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/companies/55\"\n            }\n        },\n        {\n            \"id\": 103,\n            \"type\": \"users\",\n            \"attributes\": {\n                \"name\": \"Anar\",\n                \"last_name\": \"Yussupova\",\n                \"avatar\": null,\n                \"email\": \"anar.yussupova@indriver.com\",\n                \"country_id\": 4,\n                \"company_id\": 55,\n                \"user_type_id\": 1,\n                \"timezone\": null,\n                \"position\": \"Admin\",\n                \"phone_number\": null,\n                \"birthday\": null,\n                \"gender\": null,\n                \"first_loggin_at\": \"2026-02-09 16:20:19\"\n            },\n            \"relationships\": {\n                \"country\": [],\n                \"company\": [],\n                \"user_type\": [],\n                \"permissions\": [],\n                \"roles\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/users/103\"\n            }\n        }\n    ]\n}"},{"id":"139ea306-69e6-4018-8d64-dff78b52c04a","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/media-plan/paginated?lang=en&company_id=55&include[]=company&include[]=user&include[]=account&page[number]=1&page[size]=1","host":["{{api_url}}"],"path":["media-plan","paginated"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"Plan de prueba Daniel","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[account][]","value":"66","description":"optional | array | integer","disabled":true},{"key":"filter[user][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"filter[company][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"include[]","value":"company","description":"optional | array | string"},{"key":"include[]","value":"user","description":"optional | array | string"},{"key":"include[]","value":"account","description":"optional | array | string"},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer"},{"key":"page[size]","value":"1","description":"optional | integer"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 16:39:29 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Token expired\"\n}"},{"id":"ea0b5415-6a8e-4375-87df-881cad566e81","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/media-plans/paginated?lang=en&company_id=55&include[]=company&include[]=user&include[]=account&page[number]=1&page[size]=1","host":["{{api_url}}"],"path":["media-plans","paginated"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"Plan de prueba Daniel","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[account][]","value":"66","description":"optional | array | integer","disabled":true},{"key":"filter[user][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"filter[company][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"include[]","value":"company","description":"optional | array | string"},{"key":"include[]","value":"user","description":"optional | array | string"},{"key":"include[]","value":"account","description":"optional | array | string"},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer"},{"key":"page[size]","value":"1","description":"optional | integer"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 16:29:16 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The route api/media-plans/paginated could not be found.\"\n}"},{"id":"92bfec18-52b7-49a6-b5fa-38a8797b4fef","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/media-plan/paginated?lang=en&company_id=55&include[]=company&include[]=user&include[]=account&page[number]=1&page[size]=1","host":["{{api_url}}"],"path":["media-plan","paginated"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"Plan de prueba Daniel","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[account][]","value":"66","description":"optional | array | integer","disabled":true},{"key":"filter[user][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"filter[company][]","value":"","description":"optional | array | integer","type":"text","disabled":true},{"key":"include[]","value":"company","description":"optional | array | string"},{"key":"include[]","value":"user","description":"optional | array | string"},{"key":"include[]","value":"account","description":"optional | array | string"},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer"},{"key":"page[size]","value":"1","description":"optional | integer"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 16:33:58 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"61421510-13ed-400e-8c12-203232c77fd9"},{"name":"Execute media plan","id":"305e4458-4df0-45d4-b41b-e9e3ce8eaa65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","type":"text","description":"<p>optional | string | es,en,pt</p>\n"},{"key":"company_id","value":"55","description":"<p>required | integer</p>\n","type":"text","disabled":true},{"key":"file","type":"file","description":"<p>required | file</p>\n","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/danie/Downloads/TDT Global - Template media plan v1.5 - Public (1).xlsx"],"src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"},{"key":"parameter_id[]","value":"47","description":"<p>optional | array | integer</p>\n","type":"text","disabled":true},{"key":"parameter_id[]","value":"50","description":"<p>optional | array | integer</p>\n","type":"text","disabled":true},{"key":"parameter_id[]","value":"957","description":"<p>optional | array | integer</p>\n","type":"text","disabled":true},{"key":"parameter_id[]","value":"44332","description":"<p>optional | array | integer</p>\n","type":"text","disabled":true},{"key":"parameter_id[]","value":"50176","description":"<p>optional| array | integer</p>\n","type":"text","disabled":true},{"key":"parameter_id[]","value":"50873","description":"<p>optional| array | integer</p>\n","type":"text","disabled":true},{"key":"parameters[]","value":"{\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agricultura\",\"id\":6003840140052},{\"name\":\"Aviación\",\"id\":6002963523717}]}","description":"<p>optional | array | json</p>\n","type":"text","uuid":"d139ac2f-369b-442e-9f88-444bb635d3b5"},{"key":"advertiser","value":"{\"advertiser\":{\"id\":319,\"name\":\"Gatorade QA\",\"logo\":\"https://metrics-tdtglobal.s3.amazonaws.com/images/accounts/system-account-319-678fa1e580b6a.jpg\"},\"brand\":{\"id\":275,\"name\":\"Gatorade QA\"}}","description":"<p>required | json</p>\n","type":"text"},{"key":"title","value":"Plan prueba","description":"<p>required | string</p>\n","type":"text"},{"key":"goal","value":"{\"id\":1,\"name\":\"Lanzamiento de producto\"}","description":"<p>required | json</p>\n","type":"text"},{"key":"gender","value":"3","description":"<p>required | integer[1=MALE,2= FEMALE,3=BOTH]</p>\n","type":"text"},{"key":"socioeconomic_levels","value":"{\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}","description":"<p>required | json</p>\n","type":"text"},{"key":"age_min","value":"18","description":"<p>required | integer</p>\n","type":"text"},{"key":"age_max","value":"65","description":"<p>required | integer</p>\n","type":"text"},{"key":"geo_type","value":"3","description":"<p>required | integer [1=City,3=Regions]</p>\n","type":"text","uuid":"cdf07d52-c5d8-4d2f-9c47-c905cbf34594"}]},"url":"{{api_url}}/media-plan","description":"<p>Executes a Media Plan evaluation based on the input campaign configuration and returns a newly created evaluation record (including results and a generated token, depending on the company profile and execution mode).</p>\n<p>Use this endpoint to <strong>run</strong> a Media Plan (single or multi-market) and obtain the evaluation output that can later be retrieved by ID.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> a valid Bearer token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> POST<br /><strong>Endpoint:</strong> <code>/api/media-plan</code><br /><strong>Content-Type:</strong> <code>multipart/form-data</code> (form-data)</p>\n<h3 id=\"headers\">Headers</h3>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<blockquote>\n<p>Sent as query string (e.g., <code>?company_id=55&amp;lang=en</code>) when applicable. </p>\n</blockquote>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the execution.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>. Default: <code>es</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"body-parameters-form-data\">Body Parameters (form-data)</h2>\n<blockquote>\n<p><strong>Important:</strong> This endpoint uses <strong>multipart/form-data</strong> (not raw JSON).<br />Complex values are sent as <strong>JSON strings</strong> in form-data fields. </p>\n</blockquote>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>. (If you also send query <code>lang</code>, query takes precedence depending on implementation.)</td>\n</tr>\n<tr>\n<td><code>file</code></td>\n<td>Yes</td>\n<td>file</td>\n<td>Media Plan Excel template (.xlsx).</td>\n</tr>\n<tr>\n<td><code>parameters[]</code></td>\n<td>No</td>\n<td>string (JSON)</td>\n<td>Audience parameters array. Example: interests, behaviors, languages, etc. Sent as JSON string.</td>\n</tr>\n<tr>\n<td><code>advertiser</code></td>\n<td>Yes</td>\n<td>string (JSON)</td>\n<td>Advertiser + brand object. Sent as JSON string.</td>\n</tr>\n<tr>\n<td><code>title</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Media Plan title/name.</td>\n</tr>\n<tr>\n<td><code>goal</code></td>\n<td>Yes</td>\n<td>string (JSON)</td>\n<td>Campaign objective. Sent as JSON string.</td>\n</tr>\n<tr>\n<td><code>gender</code></td>\n<td>Yes</td>\n<td>string / integer</td>\n<td>Target gender segment (implementation-specific). Example: <code>3</code>.</td>\n</tr>\n<tr>\n<td><code>socioeconomic_levels</code></td>\n<td>Yes</td>\n<td>string (JSON)</td>\n<td>Socioeconomic range. Sent as JSON string.</td>\n</tr>\n<tr>\n<td><code>age_min</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Minimum age.</td>\n</tr>\n<tr>\n<td><code>age_max</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Maximum age.</td>\n</tr>\n<tr>\n<td><code>geo_type</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Geo scope type (implementation-specific). Example: <code>3</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--media-plan-executed\">200 OK — Media Plan Executed</h2>\n<p>Returned when the evaluation was executed successfully.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<p>Sample data only. IDs, names, emails, URLs, and tokens are generic.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id_evaluation\": 805\n  },\n  \"message\": \"Your file was saved successfully. We are processing the information.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access Denied</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"The route api/media-plans could not be found.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required parameters are missing or invalid (body fields and/or <code>company_id</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"El campo file es obligatorio. (and 8 more errors)\",\n    \"errors\": {\n        \"file\": [\n            \"El campo file es obligatorio.\"\n        ],\n        \"title\": [\n            \"El campo title es obligatorio.\"\n        ],\n        \"advertiser\": [\n            \"El campo advertiser es obligatorio.\"\n        ],\n        \"goal\": [\n            \"El campo goal es obligatorio.\"\n        ],\n        \"socioeconomic_levels\": [\n            \"El campo socioeconomic levels es obligatorio.\"\n        ],\n        \"gender\": [\n            \"El campo gender es obligatorio.\"\n        ],\n        \"age_min\": [\n            \"El campo age min es obligatorio.\"\n        ],\n        \"age_max\": [\n            \"El campo age max es obligatorio.\"\n        ],\n        \"geo_type\": [\n            \"El campo geo type es obligatorio.\"\n        ]\n    }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/media-plan' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --form 'lang=en' \\\n  --form 'file=@\"/path/to/MediaPlanTemplate.xlsx\"' \\\n  --form 'parameters[]={\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agriculture\",\"id\":6003840140052},{\"name\":\"Aviation\",\"id\":6002963523717}]}' \\\n  --form 'advertiser={\"advertiser\":{\"id\":319,\"name\":\"Sample Advertiser\",\"logo\":\"https://cdn.example.com/images/accounts/account-319.jpg\"},\"brand\":{\"id\":275,\"name\":\"Sample Brand\"}}' \\\n  --form 'title=Sample Media Plan Title' \\\n  --form 'goal={\"id\":1,\"name\":\"Product Launch\"}' \\\n  --form 'gender=3' \\\n  --form 'socioeconomic_levels={\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}' \\\n  --form 'age_min=18' \\\n  --form 'age_max=65' \\\n  --form 'geo_type=3'\n\n</code></pre>\n","urlObject":{"path":["media-plan"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"61b0b3f0-7a95-42ae-a65b-9f386b339fbc","name":"200 OK — Execute media plan","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/danie/Downloads/TDT Global - Template media plan v1.5 - Public (1).xlsx"],"src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"},{"key":"parameter_id[]","value":"47","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"957","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"44332","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50176","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50873","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameters[]","value":"{\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agricultura\",\"id\":6003840140052},{\"name\":\"Aviación\",\"id\":6002963523717}]}","description":"optional | array | json","type":"text","uuid":"d139ac2f-369b-442e-9f88-444bb635d3b5"},{"key":"advertiser","value":"{\"advertiser\":{\"id\":319,\"name\":\"Gatorade QA\",\"logo\":\"https://metrics-tdtglobal.s3.amazonaws.com/images/accounts/system-account-319-678fa1e580b6a.jpg\"},\"brand\":{\"id\":275,\"name\":\"Gatorade QA\"}}","description":"required | json","type":"text"},{"key":"title","value":"Plan prueba","description":"required | string","type":"text"},{"key":"goal","value":"{\"id\":1,\"name\":\"Lanzamiento de producto\"}","description":"required | json","type":"text"},{"key":"gender","value":"3","description":"required | integer[1=MALE,2= FEMALE,3=BOTH]","type":"text"},{"key":"socioeconomic_levels","value":"{\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}","description":"required | json","type":"text"},{"key":"age_min","value":"18","description":"required | integer","type":"text"},{"key":"age_max","value":"65","description":"required | integer","type":"text"},{"key":"geo_type","value":"3","description":"required | integer [1=City,3=Regions]","type":"text","uuid":"cdf07d52-c5d8-4d2f-9c47-c905cbf34594"}]},"url":"{{api_url}}/media-plan"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 16:57:03 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"a4bebc0c-bf2b-4dbc-aeb0-b143f54bad9c"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"60"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id_evaluation\": 805\n    },\n    \"message\": \"Su archivo ha sido guardado con éxito, estamos procesando la información.\"\n}"},{"id":"6ab38c2d-81ab-46dd-a53d-e77b9d260c7e","name":"401 Unauthorized — Access denied","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text","disabled":true},{"key":"file","type":"file","description":"required | file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/danie/Downloads/TDT Global - Template media plan v1.5 - Public (1).xlsx"],"src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"},{"key":"parameter_id[]","value":"47","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"957","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"44332","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50176","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50873","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameters[]","value":"{\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agricultura\",\"id\":6003840140052},{\"name\":\"Aviación\",\"id\":6002963523717}]}","description":"optional | array | json","type":"text","uuid":"d139ac2f-369b-442e-9f88-444bb635d3b5"},{"key":"advertiser","value":"{\"advertiser\":{\"id\":319,\"name\":\"Gatorade QA\",\"logo\":\"https://metrics-tdtglobal.s3.amazonaws.com/images/accounts/system-account-319-678fa1e580b6a.jpg\"},\"brand\":{\"id\":275,\"name\":\"Gatorade QA\"}}","description":"required | json","type":"text"},{"key":"title","value":"Plan prueba","description":"required | string","type":"text"},{"key":"goal","value":"{\"id\":1,\"name\":\"Lanzamiento de producto\"}","description":"required | json","type":"text"},{"key":"gender","value":"3","description":"required | integer[1=MALE,2= FEMALE,3=BOTH]","type":"text"},{"key":"socioeconomic_levels","value":"{\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}","description":"required | json","type":"text"},{"key":"age_min","value":"18","description":"required | integer","type":"text"},{"key":"age_max","value":"65","description":"required | integer","type":"text"},{"key":"geo_type","value":"3","description":"required | integer [1=City,3=Regions]","type":"text","uuid":"cdf07d52-c5d8-4d2f-9c47-c905cbf34594"}]},"url":"{{api_url}}/media-plan"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 17:42:04 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"ccaaad35-72eb-48de-97e3-2e4ae36e753f"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"187cb6b9-dd7d-452a-808a-176296d127b8","name":"404 Not Found — Route Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/danie/Downloads/TDT Global - Template media plan v1.5 - Public (1).xlsx"],"src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"},{"key":"parameter_id[]","value":"47","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"957","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"44332","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50176","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50873","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameters[]","value":"{\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agricultura\",\"id\":6003840140052},{\"name\":\"Aviación\",\"id\":6002963523717}]}","description":"optional | array | json","type":"text","uuid":"d139ac2f-369b-442e-9f88-444bb635d3b5"},{"key":"advertiser","value":"{\"advertiser\":{\"id\":319,\"name\":\"Gatorade QA\",\"logo\":\"https://metrics-tdtglobal.s3.amazonaws.com/images/accounts/system-account-319-678fa1e580b6a.jpg\"},\"brand\":{\"id\":275,\"name\":\"Gatorade QA\"}}","description":"required | json","type":"text"},{"key":"title","value":"Plan prueba","description":"required | string","type":"text"},{"key":"goal","value":"{\"id\":1,\"name\":\"Lanzamiento de producto\"}","description":"required | json","type":"text"},{"key":"gender","value":"3","description":"required | integer[1=MALE,2= FEMALE,3=BOTH]","type":"text"},{"key":"socioeconomic_levels","value":"{\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}","description":"required | json","type":"text"},{"key":"age_min","value":"18","description":"required | integer","type":"text"},{"key":"age_max","value":"65","description":"required | integer","type":"text"},{"key":"geo_type","value":"3","description":"required | integer [1=City,3=Regions]","type":"text","uuid":"cdf07d52-c5d8-4d2f-9c47-c905cbf34594"}]},"url":"{{api_url}}/media-plans"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 17:40:48 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The route api/media-plans could not be found.\"\n}"},{"id":"f0da82a9-ac5d-4912-8d5c-88184f83421e","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/danie/Downloads/TDT Global - Template media plan v1.5 - Public (1).xlsx"],"src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx","disabled":true},{"key":"parameter_id[]","value":"47","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"957","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"44332","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50176","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50873","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameters[]","value":"{\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agricultura\",\"id\":6003840140052},{\"name\":\"Aviación\",\"id\":6002963523717}]}","description":"optional | array | json","type":"text","uuid":"d139ac2f-369b-442e-9f88-444bb635d3b5"},{"key":"advertiser","value":"{\"advertiser\":{\"id\":319,\"name\":\"Gatorade QA\",\"logo\":\"https://metrics-tdtglobal.s3.amazonaws.com/images/accounts/system-account-319-678fa1e580b6a.jpg\"},\"brand\":{\"id\":275,\"name\":\"Gatorade QA\"}}","description":"required | json","type":"text","disabled":true},{"key":"title","value":"Plan prueba","description":"required | string","type":"text","disabled":true},{"key":"goal","value":"{\"id\":1,\"name\":\"Lanzamiento de producto\"}","description":"required | json","type":"text","disabled":true},{"key":"gender","value":"3","description":"required | integer[1=MALE,2= FEMALE,3=BOTH]","type":"text","disabled":true},{"key":"socioeconomic_levels","value":"{\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}","description":"required | json","type":"text","disabled":true},{"key":"age_min","value":"18","description":"required | integer","type":"text","disabled":true},{"key":"age_max","value":"65","description":"required | integer","type":"text","disabled":true},{"key":"geo_type","value":"3","description":"required | integer [1=City,3=Regions]","type":"text","uuid":"cdf07d52-c5d8-4d2f-9c47-c905cbf34594","disabled":true}]},"url":"{{api_url}}/media-plan"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 17:37:33 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"204c682e-f9aa-4854-986c-5d4c6cf2b6e1"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El campo file es obligatorio. (and 8 more errors)\",\n    \"errors\": {\n        \"file\": [\n            \"El campo file es obligatorio.\"\n        ],\n        \"title\": [\n            \"El campo title es obligatorio.\"\n        ],\n        \"advertiser\": [\n            \"El campo advertiser es obligatorio.\"\n        ],\n        \"goal\": [\n            \"El campo goal es obligatorio.\"\n        ],\n        \"socioeconomic_levels\": [\n            \"El campo socioeconomic levels es obligatorio.\"\n        ],\n        \"gender\": [\n            \"El campo gender es obligatorio.\"\n        ],\n        \"age_min\": [\n            \"El campo age min es obligatorio.\"\n        ],\n        \"age_max\": [\n            \"El campo age max es obligatorio.\"\n        ],\n        \"geo_type\": [\n            \"El campo geo type es obligatorio.\"\n        ]\n    }\n}"},{"id":"049874b9-297b-43eb-b417-bbc22a11ddf9","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/danie/Downloads/TDT Global - Template media plan v1.5 - Public (1).xlsx"],"src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"},{"key":"parameter_id[]","value":"47","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"957","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"44332","description":"optional | array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50176","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameter_id[]","value":"50873","description":"optional| array | integer","type":"text","disabled":true},{"key":"parameters[]","value":"{\"types\":{\"id\":7,\"name\":\"Interests\"},\"interests\":[{\"name\":\"Agricultura\",\"id\":6003840140052},{\"name\":\"Aviación\",\"id\":6002963523717}]}","description":"optional | array | json","type":"text","uuid":"d139ac2f-369b-442e-9f88-444bb635d3b5"},{"key":"advertiser","value":"{\"advertiser\":{\"id\":319,\"name\":\"Gatorade QA\",\"logo\":\"https://metrics-tdtglobal.s3.amazonaws.com/images/accounts/system-account-319-678fa1e580b6a.jpg\"},\"brand\":{\"id\":275,\"name\":\"Gatorade QA\"}}","description":"required | json","type":"text"},{"key":"title","value":"Plan prueba","description":"required | string","type":"text"},{"key":"goal","value":"{\"id\":1,\"name\":\"Lanzamiento de producto\"}","description":"required | json","type":"text"},{"key":"gender","value":"3","description":"required | integer[1=MALE,2= FEMALE,3=BOTH]","type":"text"},{"key":"socioeconomic_levels","value":"{\"min\":{\"id\":1,\"name\":\"high\"},\"max\":{\"id\":2,\"name\":\"medium_high\"}}","description":"required | json","type":"text"},{"key":"age_min","value":"18","description":"required | integer","type":"text"},{"key":"age_max","value":"65","description":"required | integer","type":"text"},{"key":"geo_type","value":"3","description":"required | integer [1=City,3=Regions]","type":"text","uuid":"cdf07d52-c5d8-4d2f-9c47-c905cbf34594"}]},"url":"{{api_url}}/media-plan"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 17:39:26 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"305e4458-4df0-45d4-b41b-e9e3ce8eaa65"},{"name":"Validate media plan excel","id":"27b0a787-35e3-4f91-a4eb-02a32edf6d34","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"en\n","type":"text","description":"<p>optional | string | es,en,pt</p>\n"},{"key":"company_id","value":"55","description":"<p>required | integer</p>\n","type":"text"},{"key":"file","type":"file","description":"<p>required | integer</p>\n","src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"}]},"url":"{{api_url}}/media-plan-validate","description":"<p>Validates a Media Plan Excel file before execution. This endpoint checks the uploaded file format and structure (template/version, required sheets/columns, and basic data rules) to ensure it can be processed successfully.</p>\n<p>Use this endpoint to <strong>pre-validate</strong> the Excel input and prevent execution failures.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> a valid Bearer token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>Endpoint:</strong> <code>/api/media-plan/validate-excel</code></p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<p><strong>Content-Type</strong></p>\n<ul>\n<li><code>multipart/form-data</code></li>\n</ul>\n<hr />\n<h2 id=\"form-data-parameters\">Form Data Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>file</code></td>\n<td>Yes</td>\n<td>file</td>\n<td>Excel file to validate (expected: <code>.xlsx</code>).</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Tip: Use the official Media Plan Excel template version required by your API. </p>\n</blockquote>\n<hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--file-validated\">200 OK — File Validated</h2>\n<p>Returned when the evaluation was executed successfully.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>&lt;p &gt;Sample data only. IDs, names, emails, URLs, and tokens are generic.&lt;/p&gt; </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id_evaluation\": 805\n  },\n  \"message\": \"Your file was saved successfully. We are processing the information.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access Denied</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when the request is missing required fields or the uploaded file is not valid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The file field is required.\",\n  \"errors\": {\n    \"file\": [\n      \"The file field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs while validating the file.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/media-plan/validate-excel' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --form 'lang=en' \\\n  --form 'file=@\"/path/to/MediaPlanTemplate.xlsx\"'\n\n</code></pre>\n","urlObject":{"path":["media-plan-validate"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"a4ac944e-766a-483c-81aa-e705ee3c563d","name":"200 OK — Validate media plan excel","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es\n","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | integer","src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"}]},"url":"{{api_url}}/media-plan-validate"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 17:54:57 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"4e1092bc-c94f-47f0-8bef-03ad5978b051"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"60"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"type\": \"excel_data_success\",\n    \"data\": {\n        \"number_of_elements\": 5,\n        \"estimated_evaluation_time\": 49\n    },\n    \"message\": \"Su archivo ha sido guardado con éxito, estamos procesando la información.\"\n}"},{"id":"fa263aae-587b-449f-8af1-4fbda2ac5198","name":"401 Unauthorized — Access denied","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es\n","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | integer","src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"}]},"url":"{{api_url}}/media-plan-validate"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 17:54:29 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"97d41a4c-f18e-4094-ac8b-5f5fab2ae01a"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"3effe28d-8575-4a87-978b-41206decf7ac","name":"404 Not Found — Route Not Found","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"en\n","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | integer","src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"}]},"url":"{{api_url}}/media-plan-validates"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:17:29 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"7ab64c32-a43a-43cc-937f-8bf4bbe12750","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"en\n","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | integer","value":null}]},"url":"{{api_url}}/media-plan-validate"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:06:34 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"6f31d97f-6726-49da-9d06-b85e0306c9b2"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"The file is required.\",\n    \"errors\": {\n        \"file\": [\n            \"The file is required.\"\n        ]\n    }\n}"},{"id":"1cf4aba1-9e1b-4455-b9c5-1e723a4db787","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"en\n","type":"text","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"file","type":"file","description":"required | integer","src":"/C:/Users/danie/Downloads/Media plan template v1.5.1 - Example TDT Media Tech.xlsx"}]},"url":"{{api_url}}/media-plan-validate"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:15:24 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"27b0a787-35e3-4f91-a4eb-02a32edf6d34"}],"id":"d32ff48e-de15-4201-9c4b-de1721025f50","description":"<p>Media Plan is a feature that evaluates <strong>OOH (Out-Of-Home)</strong> media campaigns across one or multiple markets. It helps validate inputs, run the evaluation process, and retrieve results for reporting or further decision-making.</p>\n<p>This folder includes <strong>four endpoints</strong> that cover the complete workflow:</p>\n<hr />\n<h2 id=\"overview-endpoints\">Overview (Endpoints)</h2>\n<h3 id=\"1-get-a-media-plan-by-id\">1) Get a Media Plan by ID</h3>\n<p><strong>GET — Get media plan by id</strong><br />Retrieves the full details and results of a single Media Plan execution using its unique identifier.</p>\n<p><strong>Use when:</strong> you already have a <code>media_plan_id</code> and need the complete output.</p>\n<hr />\n<h3 id=\"2-list-media-plans-paginated\">2) List Media Plans (Paginated)</h3>\n<p><strong>GET — Get media plan paginated</strong><br />Returns a paginated list of Media Plans, usually for dashboards, history views, or filtering/searching.</p>\n<p><strong>Use when:</strong> you need browsing, filtering, or listing executions over time.</p>\n<hr />\n<h3 id=\"3-execute-a-media-plan\">3) Execute a Media Plan</h3>\n<p><strong>POST — Execute media plan</strong><br />Runs the Media Plan evaluation based on the provided inputs (campaign, market(s), dates, parameters, etc.). Produces a new execution/result that can be retrieved later.</p>\n<p><strong>Use when:</strong> you want to generate a new evaluation run.</p>\n<hr />\n<h3 id=\"4-validate-media-plan-excel\">4) Validate Media Plan Excel</h3>\n<p><strong>POST — Validate media plan excel</strong><br />Validates the structure and required fields of an uploaded Excel file used as input for Media Plan execution. This is a pre-check to avoid failures during execution.</p>\n<p><strong>Use when:</strong> the client is submitting campaign inputs via Excel and you want to validate before executing.</p>\n<hr />\n<h2 id=\"typical-workflow\">Typical Workflow</h2>\n<ol>\n<li><strong>Validate Excel</strong> (optional, if using Excel input)  </li>\n<li><strong>Execute Media Plan</strong>  </li>\n<li><strong>Get Media Plan by ID</strong> (fetch final results)  </li>\n<li><strong>Get Media Plan paginated</strong> (history / monitoring / listing)</li>\n</ol>\n<hr />\n<h2 id=\"common-conventions\">Common Conventions</h2>\n<ul>\n<li><p><strong>Base URL:</strong> <code>{{api_url}}</code></p>\n</li>\n<li><p><strong>Default header:</strong> <code>Accept: application/json</code></p>\n</li>\n<li><p>If the API is protected, include:</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n</li>\n</ul>\n<hr />\n<h2 id=\"status-codes-standard\">Status Codes (Standard)</h2>\n<p>These endpoints typically use:</p>\n<ul>\n<li><p><strong>200</strong> success</p>\n</li>\n<li><p><strong>401</strong> unauthorized (missing/invalid token)</p>\n</li>\n<li><p><strong>404</strong> not found (resource not available)</p>\n</li>\n<li><p><strong>422</strong> validation error (missing/invalid fields)</p>\n</li>\n<li><p><strong>500</strong> unexpected server error</p>\n</li>\n</ul>\n","_postman_id":"d32ff48e-de15-4201-9c4b-de1721025f50"},{"name":"Campaign objectives","item":[{"name":"Get all objectives","id":"8036eeb6-88c8-4f28-a843-1ee28f6d0981","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/campaign-objective?lang=en&company_id=50","description":"<p>Returns the full catalog of available campaign objectives (goals) that can be used in Media Plan and other evaluation workflows.</p>\n<p>Use when: you need to populate a dropdown/select in a client app or validate that a provided objective ID is supported.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> a valid Bearer token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>Endpoint:</strong> <code>/api/campaign-objectives</code></p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<p>None.</p>\n<hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--objectives-list\">200 OK — Objectives List</h2>\n<p>Returned when the catalog is retrieved successfully.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Sample values only. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"Product Launch\"\n    },\n    {\n      \"id\": 2,\n      \"name\": \"Branding / Brand Awareness\"\n    }\n  ]\n}\n\n</code></pre>\n<h2 id=\"response-fields\"><strong>Response Fields</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data</code></td>\n<td>array</td>\n<td>List of available objectives.</td>\n</tr>\n<tr>\n<td><code>data[].id</code></td>\n<td>integer</td>\n<td>Objective identifier. Use this value in requests that require an objective/goal ID.</td>\n</tr>\n<tr>\n<td><code>data[].name</code></td>\n<td>string</td>\n<td>Human-readable objective name.</td>\n</tr>\n</tbody>\n</table>\n</div><h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access Denied</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/campaign-objectives' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["campaign-objective"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string [en, es, pt]</p>\n","type":"text/plain"},"key":"lang","value":"en"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"50"}],"variable":[]}},"response":[{"id":"bc7e1dbb-8a14-4cc2-9e16-0dd75b962525","name":"200 OK — Get all objectives","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/campaign-objective?lang=es&company_id=55","host":["{{api_url}}"],"path":["campaign-objective"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"tarea","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"order","description":"optional | array | string","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:29:09 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"270eb06e-f4db-4fb8-8805-310b9c7a4359"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"type\": \"campaign_objectives\",\n            \"attributes\": {\n                \"name\": \"Lanzamiento de producto\"\n            },\n            \"relationships\": [],\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/campaign-objective/1\"\n            }\n        },\n        {\n            \"id\": 2,\n            \"type\": \"campaign_objectives\",\n            \"attributes\": {\n                \"name\": \"Branding / Conciencia de Marca\"\n            },\n            \"relationships\": [],\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/campaign-objective/2\"\n            }\n        },\n        {\n            \"id\": 3,\n            \"type\": \"campaign_objectives\",\n            \"attributes\": {\n                \"name\": \"Promoción / Oferta / Descuento\"\n            },\n            \"relationships\": [],\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/campaign-objective/3\"\n            }\n        },\n        {\n            \"id\": 4,\n            \"type\": \"campaign_objectives\",\n            \"attributes\": {\n                \"name\": \"Push\"\n            },\n            \"relationships\": [],\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/campaign-objective/4\"\n            }\n        }\n    ]\n}"},{"id":"a6a1d281-30a5-4cb5-aa2f-670d2400a36d","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/campaign-objective?lang=es&company_id=51","host":["{{api_url}}"],"path":["campaign-objective"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"51","description":"required | integer"},{"key":"filter[name]","value":"tarea","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"order","description":"optional | array | string","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:35:05 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"d7b7a828-3476-4e67-9b45-34eecfbcce21"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"401f0b03-b3f0-4d98-8d0e-fab3b62c9c9d","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/campaign-objectives?lang=es&company_id=51","host":["{{api_url}}"],"path":["campaign-objectives"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"51","description":"required | integer"},{"key":"filter[name]","value":"tarea","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"order","description":"optional | array | string","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:35:44 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"dafaa9b9-30f2-411e-bdc9-07f624bdb04c","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/campaign-objective?lang=es&company_id=55","host":["{{api_url}}"],"path":["campaign-objective"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"tarea","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"order","description":"optional | array | string","disabled":true}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:36:33 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"8036eeb6-88c8-4f28-a843-1ee28f6d0981"}],"id":"ce208151-f888-41ac-abf6-ee355fdb6278","description":"<p>Campaign Objectives provides the list of available campaign goals used by the platform (e.g., Branding / Awareness, Product Launch, etc.).<br />These objectives are typically used to build or validate Media Plan inputs and to ensure requests use supported goal identifiers.</p>\n<p>This folder contains a single endpoint:</p>\n<ul>\n<li><strong>GET — Get all objectives</strong>: returns the full catalog of campaign objectives available for selection.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"6b10bdc2-3dfe-4ec3-a707-4424eba448e0","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"50d99760-3c14-4dc5-b600-57e3fb239204","type":"text/javascript","exec":[""]}}],"_postman_id":"ce208151-f888-41ac-abf6-ee355fdb6278"},{"name":"Audience interests","item":[{"name":"Get audience interests","id":"e165cdbf-39ea-437a-9ea6-7dd14c17b381","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/interest?lang=en&q=Restaurant&limit=20&company_id=50","description":"<p>Returns a searchable list of audience interests that can be used to define or refine the target audience for evaluations and Media Plans.</p>\n<p>Use when:</p>\n<ul>\n<li><p>you need to build an autocomplete/search field for interests</p>\n</li>\n<li><p>you need to fetch interests available for a specific company context</p>\n</li>\n</ul>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> a valid Bearer token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>Endpoint:</strong> <code>/api/interest</code></p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>. Default: <code>en</code>.</td>\n</tr>\n<tr>\n<td><code>q</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Search term used to filter interests (autocomplete).</td>\n</tr>\n<tr>\n<td><code>limit</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Max number of results to return. Default: <code>20</code>.</td>\n</tr>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope available interests.</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-request-url\">Example Request URL</h3>\n<p><code>/api/interest?lang=en&amp;q=Restaurant&amp;limit=20&amp;company_id=55</code></p>\n<hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--interests-list\">200 OK — Interests List</h2>\n<p>Returned when the list is retrieved successfully.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Sample values only. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"6003436950375\",\n      \"name\": \"Restaurants\",\n      \"audience_size_lower_bound\": 730478154,\n      \"audience_size_upper_bound\": 859042310,\n      \"path\": [\n        \"Interests\",\n        \"Food and drink\",\n        \"Restaurants\"\n      ],\n      \"description\": \"\",\n      \"topic\": \"Food and drink\"\n    },\n    {\n      \"id\": \"6003372667195\",\n      \"name\": \"Fast food restaurants\",\n      \"audience_size_lower_bound\": 169866686,\n      \"audience_size_upper_bound\": 199763223,\n      \"path\": [\n        \"Interests\",\n        \"Food and drink\",\n        \"Restaurants\",\n        \"Fast food restaurants\"\n      ],\n      \"description\": \"\",\n      \"topic\": \"Food and drink\"\n    }\n  ]\n}\n\n</code></pre>\n<h2 id=\"response-fields\"><strong>Response Fields</strong></h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data</code></td>\n<td>array</td>\n<td>List of interests matching the search query.</td>\n</tr>\n<tr>\n<td><code>data[].id</code></td>\n<td>string</td>\n<td>Interest identifier (use this ID in audience parameters).</td>\n</tr>\n<tr>\n<td><code>data[].name</code></td>\n<td>string</td>\n<td>Human-readable interest name.</td>\n</tr>\n<tr>\n<td><code>data[].audience_size_lower_bound</code></td>\n<td>integer</td>\n<td>Lower bound estimate of audience size for this interest.</td>\n</tr>\n<tr>\n<td><code>data[].audience_size_upper_bound</code></td>\n<td>integer</td>\n<td>Upper bound estimate of audience size for this interest.</td>\n</tr>\n<tr>\n<td><code>data[].path</code></td>\n<td>array[string]</td>\n<td>Hierarchical taxonomy path for the interest.</td>\n</tr>\n<tr>\n<td><code>data[].description</code></td>\n<td>string</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data[].topic</code></td>\n<td>string</td>\n<td>null</td>\n</tr>\n<tr>\n<td><code>data[].disambiguation_category</code></td>\n<td>string</td>\n<td>null</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access Denied</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required query parameters are missing or invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"The q field is required. (and 1 more error)\",\n  \"errors\": {\n    \"q\": [\n      \"The q field is required.\"\n    ],\n    \"company_id\": [\n      \"The company id field is required.\"\n    ]\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/interest?lang=en&amp;q=Restaurant&amp;limit=20&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["interest"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string [en, es, pt]</p>\n","type":"text/plain"},"key":"lang","value":"en"},{"description":{"content":"<p>required | string</p>\n","type":"text/plain"},"key":"q","value":"Restaurant"},{"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"limit","value":"20"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"50"}],"variable":[]}},"response":[{"id":"614959d6-11c8-41e4-be72-984c7691a10c","name":"200 OK — Get audience interests","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/interest?lang=en&q=Restaurant&limit=20&company_id=55","host":["{{api_url}}"],"path":["interest"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"q","value":"Restaurant","description":"required | string"},{"key":"limit","value":"20","description":"optional | string"},{"key":"company_id","value":"55","description":"required | integer"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:49:56 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"0aa1cf84-0955-4187-93f3-cdd712ce4672"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"6003436950375\",\n            \"name\": \"Restaurants\",\n            \"audience_size_lower_bound\": 730478154,\n            \"audience_size_upper_bound\": 859042310,\n            \"path\": [\n                \"Interests\",\n                \"Food and drink\",\n                \"Restaurants\"\n            ],\n            \"description\": \"\",\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003372667195\",\n            \"name\": \"Fast food restaurants\",\n            \"audience_size_lower_bound\": 169866686,\n            \"audience_size_upper_bound\": 199763223,\n            \"path\": [\n                \"Interests\",\n                \"Food and drink\",\n                \"Restaurants\",\n                \"Fast food restaurants\"\n            ],\n            \"description\": \"\",\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003398056603\",\n            \"name\": \"Fast casual restaurants\",\n            \"audience_size_lower_bound\": 127329706,\n            \"audience_size_upper_bound\": 149739735,\n            \"path\": [\n                \"Interests\",\n                \"Food and drink\",\n                \"Restaurants\",\n                \"Fast casual restaurants\"\n            ],\n            \"description\": null,\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003154014549\",\n            \"name\": \"Quick (restaurant)\",\n            \"audience_size_lower_bound\": 88669540,\n            \"audience_size_upper_bound\": 104275380,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Quick (restaurant)\"\n            ],\n            \"description\": null,\n            \"topic\": \"Business and industry\"\n        },\n        {\n            \"id\": \"6003252403167\",\n            \"name\": \"Subway (restaurant)\",\n            \"audience_size_lower_bound\": 54826530,\n            \"audience_size_upper_bound\": 64476000,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Subway (restaurant)\"\n            ],\n            \"description\": null,\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003399693543\",\n            \"name\": \"White Castle (restaurant)\",\n            \"audience_size_lower_bound\": 15111785,\n            \"audience_size_upper_bound\": 17771460,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"White Castle (restaurant)\"\n            ],\n            \"description\": null,\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003451978387\",\n            \"name\": \"Types of restaurant\",\n            \"audience_size_lower_bound\": 11397380,\n            \"audience_size_upper_bound\": 13403320,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Types of restaurant\"\n            ],\n            \"description\": null,\n            \"topic\": \"Hobbies and activities\"\n        },\n        {\n            \"id\": \"6007289763066\",\n            \"name\": \"List of fast food restaurant chains\",\n            \"audience_size_lower_bound\": 2605442,\n            \"audience_size_upper_bound\": 3064000,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"List of fast food restaurant chains\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Local Business\",\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003209775430\",\n            \"name\": \"Restaurant management\",\n            \"audience_size_lower_bound\": 2564488,\n            \"audience_size_upper_bound\": 3015838,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Restaurant management\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Concentration or Major\",\n            \"topic\": \"Business and industry\"\n        },\n        {\n            \"id\": \"6787836449986\",\n            \"name\": \"Casual dining restaurants\",\n            \"audience_size_lower_bound\": 850340,\n            \"audience_size_upper_bound\": 1000000,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Casual dining restaurants\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Restaurant\"\n        },\n        {\n            \"id\": \"6003096481532\",\n            \"name\": \"A&W Restaurants\",\n            \"audience_size_lower_bound\": 1799328,\n            \"audience_size_upper_bound\": 2116010,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"A&W Restaurants\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Local Business\",\n            \"topic\": \"Business and industry\"\n        },\n        {\n            \"id\": \"6791684440085\",\n            \"name\": \"Food media and content\",\n            \"audience_size_lower_bound\": 850340,\n            \"audience_size_upper_bound\": 1000000,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Food media and content\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Magazine\"\n        },\n        {\n            \"id\": \"6003379601245\",\n            \"name\": \"Chinese restaurant\",\n            \"audience_size_lower_bound\": 1091530,\n            \"audience_size_upper_bound\": 1283640,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Chinese restaurant\"\n            ],\n            \"description\": null,\n            \"topic\": \"Hobbies and activities\"\n        },\n        {\n            \"id\": \"6003719320862\",\n            \"name\": \"BJ's Restaurant and Brewhouse\",\n            \"audience_size_lower_bound\": 992993,\n            \"audience_size_upper_bound\": 1167760,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"BJ's Restaurant and Brewhouse\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"American Restaurant\",\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6819483565627\",\n            \"name\": \"Pizza Restaurants\",\n            \"audience_size_lower_bound\": 850340,\n            \"audience_size_upper_bound\": 1000000,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Pizza Restaurants\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Restaurant\"\n        },\n        {\n            \"id\": \"604424693042631\",\n            \"name\": \"Barbecue restaurant\",\n            \"audience_size_lower_bound\": 684770,\n            \"audience_size_upper_bound\": 805290,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Barbecue restaurant\"\n            ],\n            \"description\": null\n        },\n        {\n            \"id\": \"6005130299209\",\n            \"name\": \"The World's 50 Best Restaurants\",\n            \"audience_size_lower_bound\": 663596,\n            \"audience_size_upper_bound\": 780390,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"The World's 50 Best Restaurants\"\n            ],\n            \"description\": null,\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003119127468\",\n            \"name\": \"Fried chicken restaurant\",\n            \"audience_size_lower_bound\": 438511,\n            \"audience_size_upper_bound\": 515690,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Fried chicken restaurant\"\n            ],\n            \"description\": null,\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6003940655066\",\n            \"name\": \"Ruby Tuesday (restaurant)\",\n            \"audience_size_lower_bound\": 415714,\n            \"audience_size_upper_bound\": 488880,\n            \"path\": [\n                \"Interests\",\n                \"Additional interests\",\n                \"Ruby Tuesday (restaurant)\"\n            ],\n            \"description\": null,\n            \"disambiguation_category\": \"Restaurant\",\n            \"topic\": \"Food and drink\"\n        },\n        {\n            \"id\": \"6002964239317\",\n            \"name\": \"Mexican cuisine\",\n            \"audience_size_lower_bound\": 102614047,\n            \"audience_size_upper_bound\": 120674120,\n            \"path\": [\n                \"Interests\",\n                \"Food and drink\",\n                \"Cuisine\",\n                \"Mexican cuisine\"\n            ],\n            \"description\": \"\",\n            \"topic\": \"Food and drink\"\n        }\n    ]\n}"},{"id":"7e0898b0-6a7a-45d0-8855-f716fcb5c5a9","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/interest?lang=en&q=Restaurant&limit=20&company_id=56","host":["{{api_url}}"],"path":["interest"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"q","value":"Restaurant","description":"required | string"},{"key":"limit","value":"20","description":"optional | string"},{"key":"company_id","value":"56","description":"required | integer"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:58:08 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"11795805-c2fd-4f51-a23a-d6be54b767b2"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"8cb78984-553f-4d24-997f-65e6904480b7","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/interests?lang=en&q=Restaurant&limit=20&company_id=50","host":["{{api_url}}"],"path":["interests"],"query":[{"key":"lang","value":"en","description":"optional | string [en, es, pt]"},{"key":"q","value":"Restaurant"},{"key":"limit","value":"20"},{"key":"company_id","value":"50"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 20:25:38 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"42bc70ce-b293-484b-889a-cc1dede88ab4","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/interest?lang=en&q=Restaurant&limit=20&company_id=55","host":["{{api_url}}"],"path":["interest"],"query":[{"key":"lang","value":"en","description":"optional | string | es,en,pt"},{"key":"q","value":"Restaurant","description":"required | string"},{"key":"limit","value":"20","description":"optional | string"},{"key":"company_id","value":"55","description":"required | integer"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 18:48:04 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"e165cdbf-39ea-437a-9ea6-7dd14c17b381"}],"id":"3429cd87-c239-4fe9-82c1-d8eba88e4d87","description":"<p>Audience Interests provides the catalog of interest categories that can be used to define or refine a target audience for evaluations and Media Plans (e.g., “Agriculture”, “Aviation”, etc.).</p>\n<p>These interests are typically referenced in request payloads/parameters (by <code>id</code> and <code>name</code>) when building audience filters.</p>\n<p>This folder contains a single endpoint:</p>\n<ul>\n<li><strong>GET — Get audience interests</strong>: returns the full list of supported audience interests available for selection.</li>\n</ul>\n","_postman_id":"3429cd87-c239-4fe9-82c1-d8eba88e4d87"},{"name":"Orientation","item":[{"name":"Get orientation","id":"a97b6c92-ba19-439b-bcda-16ea08249de9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/asset/orientation?longitude=-58.49550645394661&latitude=-34.543177346959695&height=1&width=2&company_id=55","description":"<p>This endpoint calculates the <strong>recommended asset orientation</strong> (e.g., <code>N</code>, <code>NE</code>, <code>E</code>, <code>SE</code>, <code>S</code>, <code>SW</code>, <code>W</code>, <code>NW</code>) based on a <strong>geographic point</strong> and the <strong>asset physical dimensions</strong>. It is typically used when the client only has coordinates + size and needs the most suitable orientation for visualization/analysis workflows (e.g., street view framing or viewing-area calculations).</p>\n<p><strong>Use when:</strong></p>\n<ul>\n<li><p>You have an asset location (<code>latitude</code>, <code>longitude</code>) and dimensions (<code>height</code>, <code>width</code>)</p>\n</li>\n<li><p>You need the most likely <strong>orientation</strong> to be used later in <code>Get viewing area street view</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"endpoint\">Endpoint</h3>\n<p><code>GET {{api_url}}/asset/orientation</code></p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>longitude</code></td>\n<td>Yes</td>\n<td>float</td>\n<td>Asset longitude (decimal degrees).</td>\n</tr>\n<tr>\n<td><code>latitude</code></td>\n<td>Yes</td>\n<td>float</td>\n<td>Asset latitude (decimal degrees).</td>\n</tr>\n<tr>\n<td><code>height</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Asset height (units depend on your catalog; typically meters).</td>\n</tr>\n<tr>\n<td><code>width</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Asset width (units depend on your catalog; typically meters).</td>\n</tr>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the request.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code> <em>(if protected)</em></p>\n</li>\n</ul>\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--interests-list\">200 OK — Interests List</h2>\n<p>Returned when the list is retrieved successfully.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Sample values only. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"latitude\": -34.543177346959695,\n    \"longitude\": -58.49550645394661,\n    \"width\": 2,\n    \"height\": 1,\n    \"media_area\": 2,\n    \"visual_range\": 30.604026845637584,\n    \"media_orientation\": \"NW/SE\",\n    \"main_road\": {\n        \"id\": 226508742,\n        \"name\": \"Blas Parera\",\n        \"type\": \"tertiary\",\n        \"lanes\": \"2\",\n        \"road_orientation\": \"SE/NW\",\n        \"road_coordinates\": [\n            [\n                -58.4951828,\n                -34.5437532\n            ],\n            [\n                -58.4952722,\n                -34.5436936\n            ],\n            [\n                -58.4958515,\n                -34.5428717\n            ],\n            [\n                -58.4965352,\n                -34.5419766\n            ],\n            [\n                -58.4972007,\n                -34.5411972\n            ],\n            [\n                -58.4972773,\n                -34.5411117\n            ]\n        ]\n    }\n}\n\n</code></pre>\n<hr />\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access Denied</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/asset/orientation?longitude=-58.49550645394661&amp;latitude=-34.543177346959695&amp;height=1&amp;width=2&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["asset","orientation"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>required | float</p>\n","type":"text/plain"},"key":"longitude","value":"-58.49550645394661"},{"description":{"content":"<p>required | float</p>\n","type":"text/plain"},"key":"latitude","value":"-34.543177346959695"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"height","value":"1"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"width","value":"2"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"}],"variable":[]}},"response":[{"id":"30d07dfa-743a-4a37-9232-43ed50f8122c","name":"200 OK — Get orientation","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/asset/orientation?longitude=-58.49550645394661&latitude=-34.543177346959695&height=1&width=2&company_id=55","host":["{{api_url}}"],"path":["asset","orientation"],"query":[{"key":"longitude","value":"-58.49550645394661"},{"key":"latitude","value":"-34.543177346959695"},{"key":"height","value":"1"},{"key":"width","value":"2"},{"key":"company_id","value":"55"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:47:07 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"3e6a4cb5-a7ac-4bf1-8411-0922c44a3913"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"latitude\": -34.543177346959695,\n    \"longitude\": -58.49550645394661,\n    \"width\": 2,\n    \"height\": 1,\n    \"media_area\": 2,\n    \"visual_range\": 30.604026845637584,\n    \"media_orientation\": \"NW/SE\",\n    \"main_road\": {\n        \"id\": 226508742,\n        \"name\": \"Blas Parera\",\n        \"type\": \"tertiary\",\n        \"lanes\": \"2\",\n        \"road_orientation\": \"SE/NW\",\n        \"road_coordinates\": [\n            [\n                -58.4951828,\n                -34.5437532\n            ],\n            [\n                -58.4952722,\n                -34.5436936\n            ],\n            [\n                -58.4958515,\n                -34.5428717\n            ],\n            [\n                -58.4965352,\n                -34.5419766\n            ],\n            [\n                -58.4972007,\n                -34.5411972\n            ],\n            [\n                -58.4972773,\n                -34.5411117\n            ]\n        ]\n    }\n}"},{"id":"4b2a67b9-c9f0-4c09-82e1-a1b7d120db26","name":"401 Unauthorized — Invalid Credentials","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/asset/orientation?longitude=-58.49550645394661&latitude=-34.543177346959695&height=1&width=2&company_id=50","host":["{{api_url}}"],"path":["asset","orientation"],"query":[{"key":"longitude","value":"-58.49550645394661"},{"key":"latitude","value":"-34.543177346959695"},{"key":"height","value":"1"},{"key":"width","value":"2"},{"key":"company_id","value":"50"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:48:19 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"7c707ad9-1412-4fa5-96ab-805aabd81f0c"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"2d999a2b-42a2-416d-83a6-5710e659f7f9","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/assets/orientation?longitude=-58.49550645394661&latitude=-34.543177346959695&height=1&width=2&company_id=55","host":["{{api_url}}"],"path":["assets","orientation"],"query":[{"key":"longitude","value":"-58.49550645394661"},{"key":"latitude","value":"-34.543177346959695"},{"key":"height","value":"1"},{"key":"width","value":"2"},{"key":"company_id","value":"55"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:49:24 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"a1aa33f0-b39f-4b11-b5e8-4712b2b46c81","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/asset/orientation?longitude=-58.49550645394661&latitude=-34.543177346959695&height=1&width=2&company_id=55","host":["{{api_url}}"],"path":["asset","orientation"],"query":[{"key":"longitude","value":"-58.49550645394661"},{"key":"latitude","value":"-34.543177346959695"},{"key":"height","value":"1"},{"key":"width","value":"2"},{"key":"company_id","value":"55"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:50:16 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"a97b6c92-ba19-439b-bcda-16ea08249de9"},{"name":"Get viewing area street view","id":"e2368e0a-6716-4141-ba5a-906151e50b12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{api_url}}/asset/viewing-area-street-view?orientation=SE&visual_range=31&latitude=-34.900336&longitude=-56.160214&lang=en&company_id=55","description":"<p>Returns <strong>street-level viewing information</strong> for an asset using its <strong>orientation</strong>, <strong>visual range</strong>, and <strong>coordinates</strong>. This helps estimate or validate the viewing corridor/area from a street view perspective.<br /><strong>Use when:</strong> you want to calculate or validate the visible area/range of an asset for planning or QA.</p>\n<p><strong>Typical inputs:</strong> <code>orientation</code>, <code>visual_range</code>, <code>latitude</code>, <code>longitude</code>, <code>lang</code>, <code>company_id</code>.</p>\n<hr />\n<h3 id=\"endpoint\"><strong>Endpoint</strong></h3>\n<p><code>GET {{api_url}}/asset/viewing-area-street-view</code></p>\n<hr />\n<h3 id=\"description\"><strong>Description</strong></h3>\n<p>Returns an estimated <strong>street-view viewing area</strong> (visibility footprint) based on:</p>\n<ul>\n<li><p>A known asset <strong>orientation</strong></p>\n</li>\n<li><p>A <strong>visual range</strong> value (distance/radius used by your model)</p>\n</li>\n<li><p>Coordinates (latitude/longitude)</p>\n</li>\n</ul>\n<p>This is useful for <strong>map rendering</strong>, <strong>visibility simulation</strong>, and downstream planning calculations.</p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>orientation</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Asset orientation (e.g., <code>N</code>, <code>NE</code>, <code>E</code>, <code>SE</code>, <code>S</code>, <code>SW</code>, <code>W</code>, <code>NW</code>).</td>\n</tr>\n<tr>\n<td><code>visual_range</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Visibility range used by the model (implementation-specific unit).</td>\n</tr>\n<tr>\n<td><code>latitude</code></td>\n<td>Yes</td>\n<td>float</td>\n<td>Latitude in decimal degrees.</td>\n</tr>\n<tr>\n<td><code>longitude</code></td>\n<td>Yes</td>\n<td>float</td>\n<td>Longitude in decimal degrees.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>en</code>, <code>es</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the request.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"headers\">Headers</h3>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code> (if required)</p>\n</li>\n</ul>\n<hr />\n<h1 id=\"successful-response\">Successful Response</h1>\n<h2 id=\"200-ok--interests-list\">200 OK — Interests List</h2>\n<p>Returned when the list is retrieved successfully.</p>\n<h3 id=\"example-response-200\">Example Response (200)</h3>\n<blockquote>\n<p>Sample values only. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"location\": {\n        \"coordinates\": {\n            \"latitude\": -34.900336,\n            \"longitude\": -56.160214\n        }\n    },\n    \"visibility\": {\n        \"street_view_link\": \"https://www.google.com/maps/@?api=1&amp;map_action=pano&amp;viewpoint=-34.900473839447905,-56.160045933552965&amp;heading=315&amp;pitch=0&amp;fov=60\",\n        \"viewing_area\": {\n            \"type\": \"Feature\",\n            \"geometry\": {\n                \"type\": \"Polygon\",\n                \"coordinates\": [\n                    [\n                        [\n                            -56.160214,\n                            -34.900336\n                        ],\n                        [\n                            -56.15991994497278,\n                            -34.900196761130964\n                        ],\n                        [\n                            -56.159906267270884,\n                            -34.90021831022241\n                        ],\n                        [\n                            -56.159894931600874,\n                            -34.90024075500411\n                        ],\n                        [\n                            -56.15988602423404,\n                            -34.90026392465775\n                        ],\n                        [\n                            -56.15987961296082,\n                            -34.90028764284826\n                        ],\n                        [\n                            -56.15987574657488,\n                            -34.900311729065905\n                        ],\n                        [\n                            -56.15987445450175,\n                            -34.900336\n                        ],\n                        [\n                            -56.15987574657488,\n                            -34.9003602709341\n                        ],\n                        [\n                            -56.15987961296082,\n                            -34.900384357151744\n                        ],\n                        [\n                            -56.15988602423404,\n                            -34.900408075342256\n                        ],\n                        [\n                            -56.159894931600874,\n                            -34.90043124499589\n                        ],\n                        [\n                            -56.159906267270884,\n                            -34.9004536897776\n                        ],\n                        [\n                            -56.15991994497278,\n                            -34.90047523886904\n                        ],\n                        [\n                            -56.15993586061098,\n                            -34.90049572826861\n                        ],\n                        [\n                            -56.15995389305788,\n                            -34.90051500203961\n                        ],\n                        [\n                            -56.15997390507567,\n                            -34.90053291349701\n                        ],\n                        [\n                            -56.1599957443608,\n                            -34.90054932632379\n                        ],\n                        [\n                            -56.160019244703136,\n                            -34.90056411560844\n                        ],\n                        [\n                            -56.16004422725088,\n                            -34.900577168795564\n                        ],\n                        [\n                            -56.16007050187175,\n                            -34.90058838654254\n                        ],\n                        [\n                            -56.160097868600026,\n                            -34.900597683475524\n                        ],\n                        [\n                            -56.16012611915838,\n                            -34.900604988839255\n                        ],\n                        [\n                            -56.160155038542996,\n                            -34.9006102470355\n                        ],\n                        [\n                            -56.16018440665991,\n                            -34.90061341804621\n                        ],\n                        [\n                            -56.160214,\n                            -34.90061447773808\n                        ],\n                        [\n                            -56.1602435933401,\n                            -34.90061341804621\n                        ],\n                        [\n                            -56.16027296145701,\n                            -34.9006102470355\n                        ],\n                        [\n                            -56.16030188084163,\n                            -34.900604988839255\n                        ],\n                        [\n                            -56.16033013139998,\n                            -34.900597683475524\n                        ],\n                        [\n                            -56.160357498128256,\n                            -34.90058838654254\n                        ],\n                        [\n                            -56.16038377274913,\n                            -34.900577168795564\n                        ],\n                        [\n                            -56.160214,\n                            -34.900336\n                        ]\n                    ]\n                ]\n            },\n            \"properties\": {\n                \"center\": [\n                    -56.160214,\n                    -34.900336\n                ],\n                \"orientation\": \"SE\",\n                \"visual_range\": {\n                    \"value\": 31,\n                    \"unit\": \"m\"\n                }\n            }\n        }\n    }\n}\n\n</code></pre>\n<hr />\n<h1 id=\"error-responses\">Error Responses</h1>\n<h2 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access Denied</h2>\n<p>Returned when the request does not include a valid Bearer token.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h2>\n<p>Returned when the route is incorrect or not available.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h2>\n<p>Returned when an unexpected server error occurs.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h1 id=\"curl-example\">cURL Example</h1>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/asset/viewing-area-street-view?orientation=SE&amp;visual_range=31&amp;latitude=-34.900336&amp;longitude=-56.160214&amp;lang=en&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["asset","viewing-area-street-view"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>required | string</p>\n","type":"text/plain"},"key":"orientation","value":"SE"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"visual_range","value":"31"},{"description":{"content":"<p>required | float</p>\n","type":"text/plain"},"key":"latitude","value":"-34.900336"},{"description":{"content":"<p>required | float</p>\n","type":"text/plain"},"key":"longitude","value":"-56.160214"},{"description":{"content":"<p>optional | string [en, es, pt]</p>\n","type":"text/plain"},"key":"lang","value":"en"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"}],"variable":[]}},"response":[{"id":"03ee920b-40ca-4488-b6ed-3263b88337c2","name":"200 OK — Get viewing area street view","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api_url}}/asset/viewing-area-street-view?orientation=SE&visual_range=31&latitude=-34.900336&longitude=-56.160214&lang=en&company_id=55","host":["{{api_url}}"],"path":["asset","viewing-area-street-view"],"query":[{"key":"orientation","value":"SE"},{"key":"visual_range","value":"31"},{"key":"latitude","value":"-34.900336"},{"key":"longitude","value":"-56.160214"},{"key":"lang","value":"en"},{"key":"company_id","value":"55"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:59:48 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"b19b03ff-967b-4b1e-98e9-23e37acbd9c9"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"57"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"location\": {\n        \"coordinates\": {\n            \"latitude\": -34.900336,\n            \"longitude\": -56.160214\n        }\n    },\n    \"visibility\": {\n        \"street_view_link\": \"https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=-34.900473839447905,-56.160045933552965&heading=315&pitch=0&fov=60\",\n        \"viewing_area\": {\n            \"type\": \"Feature\",\n            \"geometry\": {\n                \"type\": \"Polygon\",\n                \"coordinates\": [\n                    [\n                        [\n                            -56.160214,\n                            -34.900336\n                        ],\n                        [\n                            -56.15991994497278,\n                            -34.900196761130964\n                        ],\n                        [\n                            -56.159906267270884,\n                            -34.90021831022241\n                        ],\n                        [\n                            -56.159894931600874,\n                            -34.90024075500411\n                        ],\n                        [\n                            -56.15988602423404,\n                            -34.90026392465775\n                        ],\n                        [\n                            -56.15987961296082,\n                            -34.90028764284826\n                        ],\n                        [\n                            -56.15987574657488,\n                            -34.900311729065905\n                        ],\n                        [\n                            -56.15987445450175,\n                            -34.900336\n                        ],\n                        [\n                            -56.15987574657488,\n                            -34.9003602709341\n                        ],\n                        [\n                            -56.15987961296082,\n                            -34.900384357151744\n                        ],\n                        [\n                            -56.15988602423404,\n                            -34.900408075342256\n                        ],\n                        [\n                            -56.159894931600874,\n                            -34.90043124499589\n                        ],\n                        [\n                            -56.159906267270884,\n                            -34.9004536897776\n                        ],\n                        [\n                            -56.15991994497278,\n                            -34.90047523886904\n                        ],\n                        [\n                            -56.15993586061098,\n                            -34.90049572826861\n                        ],\n                        [\n                            -56.15995389305788,\n                            -34.90051500203961\n                        ],\n                        [\n                            -56.15997390507567,\n                            -34.90053291349701\n                        ],\n                        [\n                            -56.1599957443608,\n                            -34.90054932632379\n                        ],\n                        [\n                            -56.160019244703136,\n                            -34.90056411560844\n                        ],\n                        [\n                            -56.16004422725088,\n                            -34.900577168795564\n                        ],\n                        [\n                            -56.16007050187175,\n                            -34.90058838654254\n                        ],\n                        [\n                            -56.160097868600026,\n                            -34.900597683475524\n                        ],\n                        [\n                            -56.16012611915838,\n                            -34.900604988839255\n                        ],\n                        [\n                            -56.160155038542996,\n                            -34.9006102470355\n                        ],\n                        [\n                            -56.16018440665991,\n                            -34.90061341804621\n                        ],\n                        [\n                            -56.160214,\n                            -34.90061447773808\n                        ],\n                        [\n                            -56.1602435933401,\n                            -34.90061341804621\n                        ],\n                        [\n                            -56.16027296145701,\n                            -34.9006102470355\n                        ],\n                        [\n                            -56.16030188084163,\n                            -34.900604988839255\n                        ],\n                        [\n                            -56.16033013139998,\n                            -34.900597683475524\n                        ],\n                        [\n                            -56.160357498128256,\n                            -34.90058838654254\n                        ],\n                        [\n                            -56.16038377274913,\n                            -34.900577168795564\n                        ],\n                        [\n                            -56.160214,\n                            -34.900336\n                        ]\n                    ]\n                ]\n            },\n            \"properties\": {\n                \"center\": [\n                    -56.160214,\n                    -34.900336\n                ],\n                \"orientation\": \"SE\",\n                \"visual_range\": {\n                    \"value\": 31,\n                    \"unit\": \"m\"\n                }\n            }\n        }\n    }\n}"},{"id":"a5241231-ca22-49ad-a279-3dead8232448","name":"401 Unauthorized — Invalid Credentials","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api_url}}/asset/viewing-area-street-view?orientation=SE&visual_range=31&latitude=-34.900336&longitude=-56.160214&lang=en&company_id=50","host":["{{api_url}}"],"path":["asset","viewing-area-street-view"],"query":[{"key":"orientation","value":"SE"},{"key":"visual_range","value":"31"},{"key":"latitude","value":"-34.900336"},{"key":"longitude","value":"-56.160214"},{"key":"lang","value":"en"},{"key":"company_id","value":"50"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:59:19 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"3f3d3a00-1892-4170-9680-65b722fe22f5"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"958d8b71-dd40-4382-820a-543264a7f178","name":"404 Not Found — Resource Not Found","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api_url}}/asset/viewing-area-street-view?orientation=SE&visual_range=31&latitude=-34.900336&longitude=-56.160214&lang=en&company_id=55","host":["{{api_url}}"],"path":["asset","viewing-area-street-view"],"query":[{"key":"orientation","value":"SE"},{"key":"visual_range","value":"31"},{"key":"latitude","value":"-34.900336"},{"key":"longitude","value":"-56.160214"},{"key":"lang","value":"en"},{"key":"company_id","value":"55"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:56:52 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"db0ae3cb-cc11-4580-bbfe-1fd26970e7b5","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{api_url}}/asset/viewing-area-street-view?orientation=SE&visual_range=31&latitude=-34.900336&longitude=-56.160214&lang=en&company_id=55","host":["{{api_url}}"],"path":["asset","viewing-area-street-view"],"query":[{"key":"orientation","value":"SE"},{"key":"visual_range","value":"31"},{"key":"latitude","value":"-34.900336"},{"key":"longitude","value":"-56.160214"},{"key":"lang","value":"en"},{"key":"company_id","value":"55"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Fri, 20 Feb 2026 13:50:50 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"e2368e0a-6716-4141-ba5a-906151e50b12"}],"id":"b4f1548b-838a-457a-a1f0-ed45a9c08ca8","description":"<p><strong>Observations</strong> provides helper endpoints used to <strong>enrich OOH asset data</strong> with field-ready context derived from coordinates and viewing conditions. These endpoints are typically used during <strong>asset validation, planning, and reporting</strong> to standardize orientation and to estimate how an asset is perceived from street level.</p>\n<p>This folder includes two endpoints that support the workflow:</p>\n<hr />\n<h2 id=\"overview-endpoints\">Overview (Endpoints)</h2>\n<h3 id=\"1-get-orientation\">1) Get Orientation</h3>\n<p><strong>GET — Get orientation</strong><br /><code>{{api_url}}/asset/orientation</code></p>\n<p>Returns the <strong>recommended orientation</strong> for an asset based on its <strong>latitude/longitude</strong> and the asset’s <strong>physical dimensions</strong> (height/width).<br /><strong>Use when:</strong> you have coordinates and need to determine/normalize the asset facing direction (e.g., for mapping, inventory validation, or media plan inputs).</p>\n<p><strong>Typical inputs:</strong> <code>latitude</code>, <code>longitude</code>, <code>height</code>, <code>width</code>, <code>company_id</code>.</p>\n<hr />\n<h3 id=\"2-get-viewing-area-street-view\">2) Get Viewing Area (Street View)</h3>\n<p><strong>GET — Get viewing area street view</strong><br /><code>{{api_url}}/asset/viewing-area-street-view</code></p>\n<p>Returns <strong>street-level viewing information</strong> for an asset using its <strong>orientation</strong>, <strong>visual range</strong>, and <strong>coordinates</strong>. This helps estimate or validate the viewing corridor/area from a street view perspective.<br /><strong>Use when:</strong> you want to calculate or validate the visible area/range of an asset for planning or QA.</p>\n<p><strong>Typical inputs:</strong> <code>orientation</code>, <code>visual_range</code>, <code>latitude</code>, <code>longitude</code>, <code>lang</code>, <code>company_id</code>.</p>\n<hr />\n<h2 id=\"typical-workflow\">Typical Workflow</h2>\n<ol>\n<li><p><strong>Get orientation</strong> from coordinates and dimensions</p>\n</li>\n<li><p><strong>Get viewing area street view</strong> using the orientation + visual parameters</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"common-conventions\">Common Conventions</h2>\n<ul>\n<li><p>Base URL: <code>{{api_url}}</code></p>\n</li>\n<li><p>Default header: <code>Accept: application/json</code></p>\n</li>\n<li><p>If protected, include: <code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"status-codes-standard\">Status Codes (Standard)</h2>\n<p>These endpoints typically use:</p>\n<ul>\n<li><p><strong>200</strong> success</p>\n</li>\n<li><p><strong>401</strong> unauthorized (missing/invalid token)</p>\n</li>\n<li><p><strong>404</strong> not found (resource/route not available)</p>\n</li>\n<li><p><strong>500</strong> unexpected server error</p>\n</li>\n</ul>\n","_postman_id":"b4f1548b-838a-457a-a1f0-ed45a9c08ca8"}],"id":"c1d238af-b767-407b-ad06-8280cdbc3f6a","_postman_id":"c1d238af-b767-407b-ad06-8280cdbc3f6a","description":""},{"name":"Advertisers","item":[{"name":"Advertisers categories","item":[{"name":"Get all account categories","id":"a14bd499-c3fe-41fc-a2ab-84f4b9cc1233","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/account-categories?lang=pt&company_id=56&filter[name]=&sort[]=name&sort[]=level","description":"<p>Retrieves the complete list of <strong>Advertiser / Account Categories</strong> available for the given company scope.<br />Supports optional <strong>filtering</strong> (by name or by specific IDs) and <strong>sorting</strong>.<br />Use this endpoint to populate dropdowns, caches, and selector components.</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires a valid Bearer Token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> GET<br /><strong>Endpoint:</strong> <code>{{api_url}}/account-categories</code></p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the catalog.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>filter[name]</code></td>\n<td>No</td>\n<td>string</td>\n<td>Filter categories by name (partial match).</td>\n</tr>\n<tr>\n<td><code>filter[id][]</code></td>\n<td>No</td>\n<td>array</td>\n<td>integer</td>\n</tr>\n<tr>\n<td><code>sort[]</code></td>\n<td>No</td>\n<td>array</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-url\"><strong>Example URL</strong></h2>\n<p><code>{{api_url}}/account-categories?lang=pt&amp;company_id=55&amp;filter[name]=&amp;sort[]=name&amp;sort[]=level</code></p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--account-categories-retrieved\">200 OK — Account Categories Retrieved</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 12,\n      \"type\": \"account_categories\",\n      \"attributes\": {\n        \"level\": 1,\n        \"external_id\": \"21000\",\n        \"name\": \"Agropecuária\"\n      },\n      \"relationships\": {\n        \"accounts\": []\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/account-categories/12\"\n      }\n    },\n    {\n      \"id\": 13,\n      \"type\": \"account_categories\",\n      \"attributes\": {\n        \"level\": 1,\n        \"external_id\": \"21100\",\n        \"name\": \"Alimentos\"\n      },\n      \"relationships\": {\n        \"accounts\": []\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/account-categories/13\"\n      }\n    }\n  ],\n  \"links\": {\n    \"self\": \"http://localhost/api-evaluator/public/api/account-categories\"\n  },\n  \"included\": []\n}\n\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing or invalid.</p>\n<p><strong>Example Response (401)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<p><strong>Example Response (404)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<p><strong>Example Response (500)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"curl-example\">cURL Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/account-categories?lang=pt&amp;company_id=55&amp;sort[]=name&amp;sort[]=level' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["account-categories"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"pt"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"56"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[name]","value":""},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[id][]","value":"1"},{"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"sort[]","value":"name"},{"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"sort[]","value":"level"},{"disabled":true,"key":"sort[]","value":"createdAt"}],"variable":[]}},"response":[{"id":"84043512-7b6d-419a-8374-ca4f1b102888","name":"200 OK — Get all account categories","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories?lang=pt&company_id=55&filter[name]=&sort[]=name&sort[]=level","host":["{{api_url}}"],"path":["account-categories"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string"},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string"},{"key":"sort[]","value":"level","description":"optional | array | string"},{"key":"sort[]","value":"createdAt","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 20:51:35 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"b5fa9a3f-eaa7-4621-b626-f630677c5da7"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 12,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21000\",\n                \"name\": \"Agropecuária\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/12\"\n            }\n        },\n        {\n            \"id\": 13,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21100\",\n                \"name\": \"Alimentos\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/13\"\n            }\n        },\n        {\n            \"id\": 14,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21200\",\n                \"name\": \"Apostas e Loterias\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/14\"\n            }\n        },\n        {\n            \"id\": 1,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"10000\",\n                \"name\": \"Artes e Entretenimento\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/1\"\n            }\n        },\n        {\n            \"id\": 15,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21300\",\n                \"name\": \"Automotivo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/15\"\n            }\n        },\n        {\n            \"id\": 16,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21400\",\n                \"name\": \"Bebidas\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/16\"\n            }\n        },\n        {\n            \"id\": 17,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21500\",\n                \"name\": \"Campanhas Cívicas e Governamentais\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/17\"\n            }\n        },\n        {\n            \"id\": 18,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21600\",\n                \"name\": \"Comércio e Turismo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/18\"\n            }\n        },\n        {\n            \"id\": 4,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"13000\",\n                \"name\": \"Comer e Beber\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/4\"\n            }\n        },\n        {\n            \"id\": 3,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"12000\",\n                \"name\": \"Comunidade e Governo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/3\"\n            }\n        },\n        {\n            \"id\": 19,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21700\",\n                \"name\": \"Diversão e Entretenimento\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/19\"\n            }\n        },\n        {\n            \"id\": 20,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21800\",\n                \"name\": \"Educação\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/20\"\n            }\n        },\n        {\n            \"id\": 30,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22800\",\n                \"name\": \"Escritório e Papelaria\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/30\"\n            }\n        },\n        {\n            \"id\": 9,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"18000\",\n                \"name\": \"Esportes e Lazer\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/9\"\n            }\n        },\n        {\n            \"id\": 5,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"14000\",\n                \"name\": \"Evento\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/5\"\n            }\n        },\n        {\n            \"id\": 21,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21900\",\n                \"name\": \"Farmacêutico\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/21\"\n            }\n        },\n        {\n            \"id\": 22,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22000\",\n                \"name\": \"Financeiro e Seguros\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/22\"\n            }\n        },\n        {\n            \"id\": 23,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22100\",\n                \"name\": \"Higiene Doméstica\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/23\"\n            }\n        },\n        {\n            \"id\": 24,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22200\",\n                \"name\": \"Higiene Pessoal e Beleza\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/24\"\n            }\n        },\n        {\n            \"id\": 26,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22400\",\n                \"name\": \"Indústria e Construção\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/26\"\n            }\n        },\n        {\n            \"id\": 11,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"20000\",\n                \"name\": \"Instituição Educacional\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/11\"\n            }\n        },\n        {\n            \"id\": 27,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22500\",\n                \"name\": \"Internet\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/27\"\n            }\n        },\n        {\n            \"id\": 25,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22300\",\n                \"name\": \"Lar, Eletrodomésticos e Gás Doméstico\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/25\"\n            }\n        },\n        {\n            \"id\": 28,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22600\",\n                \"name\": \"Mídia e Conteúdo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/28\"\n            }\n        },\n        {\n            \"id\": 7,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"16000\",\n                \"name\": \"Monumentos e Ao Ar Livre\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/7\"\n            }\n        },\n        {\n            \"id\": 29,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"22700\",\n                \"name\": \"Móveis e Decoração\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/29\"\n            }\n        },\n        {\n            \"id\": 31,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"23000\",\n                \"name\": \"Saúde e Esportes\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/31\"\n            }\n        },\n        {\n            \"id\": 6,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"15000\",\n                \"name\": \"Saúde e Medicina\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/6\"\n            }\n        },\n        {\n            \"id\": 32,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"23100\",\n                \"name\": \"Serviços\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/32\"\n            }\n        },\n        {\n            \"id\": 2,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"11000\",\n                \"name\": \"Serviços Profissionais e Empresariais\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/2\"\n            }\n        },\n        {\n            \"id\": 33,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"23200\",\n                \"name\": \"Tecnologia\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/33\"\n            }\n        },\n        {\n            \"id\": 34,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"23300\",\n                \"name\": \"Telecomunicações\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/34\"\n            }\n        },\n        {\n            \"id\": 8,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"17000\",\n                \"name\": \"Varejo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/8\"\n            }\n        },\n        {\n            \"id\": 35,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"23400\",\n                \"name\": \"Vestuário e Acessórios\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/35\"\n            }\n        },\n        {\n            \"id\": 10,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"19000\",\n                \"name\": \"Viagens e Transporte\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n            }\n        }\n    ],\n    \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/account-categories\"\n    },\n    \"included\": []\n}"},{"id":"da32173a-85f6-4fd2-9f8e-8f03364ad894","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories?lang=pt&company_id=56&filter[name]=&sort[]=name&sort[]=level","host":["{{api_url}}"],"path":["account-categories"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"56","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string"},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string"},{"key":"sort[]","value":"level","description":"optional | array | string"},{"key":"sort[]","value":"createdAt","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 20:52:59 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"95d73291-ada7-4235-b8da-05a08d17b522"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"c85be95a-fce3-4fa8-be2f-df8135afd3d1","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/accounts-categories?lang=pt&company_id=56&filter[name]=&sort[]=name&sort[]=level","host":["{{api_url}}"],"path":["accounts-categories"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"56","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string"},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string"},{"key":"sort[]","value":"level","description":"optional | array | string"},{"key":"sort[]","value":"createdAt","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 20:53:49 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"410f6993-3eea-438f-b420-1b836c029f0d","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories?lang=pt&company_id=56&filter[name]=&sort[]=name&sort[]=level","host":["{{api_url}}"],"path":["account-categories"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"56","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string"},{"key":"filter[id][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string"},{"key":"sort[]","value":"level","description":"optional | array | string"},{"key":"sort[]","value":"createdAt","disabled":true}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 20:56:22 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"a14bd499-c3fe-41fc-a2ab-84f4b9cc1233"},{"name":"Get account categories paginated","id":"e81b6e88-1175-4269-b34a-b2c91776c4e7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/account-categories/paginated?lang=pt&company_id=55","description":"<p>Returns a <strong>paginated</strong> list of <strong>Account Categories</strong> (Advertiser/Industry taxonomy) scoped by <code>company_id</code>.<br />Supports optional <strong>filtering</strong> and <strong>sorting</strong>, and includes pagination metadata for UI lists, tables, and search screens.</p>\n<p>Use when: you need to <strong>browse</strong> categories with pagination (dashboards, admin screens, typeahead + paging, etc.).</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires a valid Bearer Token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> GET<br /><strong>Endpoint:</strong> <code>{{api_url}}/account-categories/paginated</code></p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the catalog.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>page</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Page number (default: <code>1</code>).</td>\n</tr>\n<tr>\n<td><code>per_page</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Items per page (default depends on server config).</td>\n</tr>\n<tr>\n<td><code>filter[name]</code></td>\n<td>No</td>\n<td>string</td>\n<td>Filter categories by name (partial match).</td>\n</tr>\n<tr>\n<td><code>filter[id][]</code></td>\n<td>No</td>\n<td>array</td>\n<td>integer</td>\n</tr>\n<tr>\n<td><code>sort[]</code></td>\n<td>No</td>\n<td>array</td>\n<td>string</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-url\"><strong>Example URL</strong></h2>\n<p><code>{{api_url}}/account-categories/paginated?lang=pt&amp;company_id=55&amp;page=1&amp;per_page=25&amp;filter[name]=food&amp;sort[]=name&amp;sort[]=level</code></p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--account-categories-retrieved-paginated\">200 OK — Account Categories Retrieved (Paginated)</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Response shape</strong></p>\n<ul>\n<li><p><code>data</code>: array of <code>account_categories</code></p>\n</li>\n<li><p><code>links</code>: pagination links (<code>first</code>, <code>last</code>, <code>prev</code>, <code>next</code>)</p>\n</li>\n<li><p><code>meta</code>: pagination metadata (<code>current_page</code>, <code>per_page</code>, <code>total_pages</code>, <code>total_items</code>)</p>\n</li>\n<li><p><code>included</code>: optional related resources (often empty)</p>\n</li>\n</ul>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 12,\n      \"type\": \"account_categories\",\n      \"attributes\": {\n        \"level\": 1,\n        \"external_id\": \"21000\",\n        \"name\": \"Agropecuária\"\n      },\n      \"relationships\": {\n        \"accounts\": []\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/account-categories/12\"\n      }\n    }\n  ],\n  \"links\": {\n    \"first\": \"http://localhost/api-evaluator/public/api/account-categories/paginated?page=1\",\n    \"last\": \"http://localhost/api-evaluator/public/api/account-categories/paginated?page=10\",\n    \"prev\": null,\n    \"next\": \"http://localhost/api-evaluator/public/api/account-categories/paginated?page=2\"\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"total_items\": 250,\n    \"per_page\": 25,\n    \"total_pages\": 10\n  },\n  \"included\": []\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing or invalid.</p>\n<p><strong>Example Response (401)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<p>StartFragment</p>\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<p><strong>Example Response (404)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<p><strong>Example Response (500)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"curl-example\">cURL Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/account-categories/paginated?lang=pt&amp;company_id=55&amp;page=1&amp;per_page=25&amp;sort[]=name&amp;sort[]=level' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["account-categories","paginated"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"pt"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[name]","value":""},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[id][]","value":""},{"disabled":true,"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"sort[]","value":"name"},{"disabled":true,"key":"sort[]","value":"createdAt"},{"disabled":true,"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"page[number]","value":"1"},{"disabled":true,"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"page[size]","value":"1"}],"variable":[]}},"response":[{"id":"d77cd531-f404-4c0e-a600-ead953f194f5","name":"200 OK — Get account categories paginated","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories/paginated?lang=pt&company_id=55","host":["{{api_url}}"],"path":["account-categories","paginated"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","type":"text","disabled":true},{"key":"sort[]","value":"createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer","disabled":true},{"key":"page[size]","value":"1","description":"optional | integer","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:09:49 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"9b3f1458-917a-465e-8d73-cfacbe3f14e7"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"10000\",\n                \"name\": \"Artes e Entretenimento\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/1\"\n            }\n        },\n        {\n            \"id\": 2,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"11000\",\n                \"name\": \"Serviços Profissionais e Empresariais\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/2\"\n            }\n        },\n        {\n            \"id\": 3,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"12000\",\n                \"name\": \"Comunidade e Governo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/3\"\n            }\n        },\n        {\n            \"id\": 4,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"13000\",\n                \"name\": \"Comer e Beber\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/4\"\n            }\n        },\n        {\n            \"id\": 5,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"14000\",\n                \"name\": \"Evento\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/5\"\n            }\n        },\n        {\n            \"id\": 6,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"15000\",\n                \"name\": \"Saúde e Medicina\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/6\"\n            }\n        },\n        {\n            \"id\": 7,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"16000\",\n                \"name\": \"Monumentos e Ao Ar Livre\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/7\"\n            }\n        },\n        {\n            \"id\": 8,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"17000\",\n                \"name\": \"Varejo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/8\"\n            }\n        },\n        {\n            \"id\": 9,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"18000\",\n                \"name\": \"Esportes e Lazer\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/9\"\n            }\n        },\n        {\n            \"id\": 10,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"19000\",\n                \"name\": \"Viagens e Transporte\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n            }\n        },\n        {\n            \"id\": 11,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"20000\",\n                \"name\": \"Instituição Educacional\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/11\"\n            }\n        },\n        {\n            \"id\": 12,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21000\",\n                \"name\": \"Agropecuária\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/12\"\n            }\n        },\n        {\n            \"id\": 13,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21100\",\n                \"name\": \"Alimentos\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/13\"\n            }\n        },\n        {\n            \"id\": 14,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21200\",\n                \"name\": \"Apostas e Loterias\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/14\"\n            }\n        },\n        {\n            \"id\": 15,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"21300\",\n                \"name\": \"Automotivo\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/15\"\n            }\n        }\n    ],\n    \"links\": {\n        \"first\": \"http://localhost/api-evaluator/public/api/account-categories/paginated?page=1\",\n        \"last\": \"http://localhost/api-evaluator/public/api/account-categories/paginated?page=3\",\n        \"prev\": null,\n        \"next\": \"http://localhost/api-evaluator/public/api/account-categories/paginated?page=2\",\n        \"self\": \"http://localhost/api-evaluator/public/api/account-categories\"\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"total_items\": 35,\n        \"per_page\": 15,\n        \"total_pages\": 3\n    },\n    \"included\": []\n}"},{"id":"8e847277-efb0-4afa-875b-01e3467fbd94","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/accounts-categories/paginated?lang=pt&company_id=47","host":["{{api_url}}"],"path":["accounts-categories","paginated"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","type":"text","disabled":true},{"key":"sort[]","value":"createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer","disabled":true},{"key":"page[size]","value":"1","description":"optional | integer","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:08:00 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"ef94505e-114d-4a64-9bc7-b5e79d53b70d"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"a45b5768-ec7c-4095-9787-167bb50a410a","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories/paginated?lang=pt&company_id=55","host":["{{api_url}}"],"path":["account-categories","paginated"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","type":"text","disabled":true},{"key":"sort[]","value":"createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer","disabled":true},{"key":"page[size]","value":"1","description":"optional | integer","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:08:57 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"8569c314-d3b5-4446-8622-49e1352ac9e4","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories/paginated?lang=pt&company_id=47","host":["{{api_url}}"],"path":["account-categories","paginated"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[name]","value":"","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","type":"text","disabled":true},{"key":"sort[]","value":"createdAt","disabled":true},{"key":"page[number]","value":"1","description":"optional | integer","disabled":true},{"key":"page[size]","value":"1","description":"optional | integer","disabled":true}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:04:43 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"e81b6e88-1175-4269-b34a-b2c91776c4e7"},{"name":"Get account category by id","id":"1b4583de-930f-4b2b-aae9-c10a92661636","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/account-categories/:accountType?lang=es&company_id=47","description":"<p>Retrieves the <strong>details of a single Account Category</strong> by its unique identifier.</p>\n<p>Use when: you already have an <code>account_category_id</code> and need to display or validate the category info (level, external_id, name, etc.).</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint requires a valid Bearer Token.</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> GET<br /><strong>Endpoint:</strong> <code>{{api_url}}/account-categories/:id</code></p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Accept: application/json</code></p>\n</li>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"path-parameters\">Path Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Account Category identifier.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"query-parameters\">Query Parameters</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes*</td>\n<td>integer</td>\n<td>Company identifier used to scope access (if required by your API).</td>\n</tr>\n</tbody>\n</table>\n</div><p>*If your implementation <strong>does not</strong> require <code>company_id</code> for this endpoint, remove it from Postman. Many setups keep it for consistent scoping/authorization.</p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--account-category-retrieved\">200 OK — Account Category Retrieved</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 12,\n    \"type\": \"account_categories\",\n    \"attributes\": {\n      \"level\": 1,\n      \"external_id\": \"21000\",\n      \"name\": \"Agropecuária\"\n    },\n    \"relationships\": {\n      \"accounts\": []\n    },\n    \"links\": {\n      \"self\": \"http://localhost/api-evaluator/public/api/account-categories/12\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing or invalid.</p>\n<p><strong>Example Response (401)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the category ID does not exist or the route is incorrect.</p>\n<p><strong>Example Response (404)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<p><strong>Example Response (500)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"curl-example\">cURL Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/account-categories/12?lang=pt&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["account-categories",":accountType"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"es"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"47"}],"variable":[{"id":"849596f1-c2a0-445b-b030-813b20cc584f","type":"any","value":"1","key":"accountType"}]}},"response":[{"id":"fead294e-92c2-44de-b9cd-90475a7ee035","name":"200 OK — Get account category by id","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories/:accountType?lang=es&company_id=55","host":["{{api_url}}"],"path":["account-categories",":accountType"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"}],"variable":[{"key":"accountType","value":"12"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:19:45 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"f09e352c-a3e6-482c-b44b-efcba45d3453"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 12,\n        \"type\": \"account_categories\",\n        \"attributes\": {\n            \"level\": 1,\n            \"external_id\": \"21000\",\n            \"name\": \"Agropecuaria\"\n        },\n        \"relationships\": {\n            \"accounts\": []\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/account-categories/12\"\n        }\n    }\n}"},{"id":"7c8f437e-10da-41b7-9019-e51de4f90c18","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories/:accountType?lang=es&company_id=47","host":["{{api_url}}"],"path":["account-categories",":accountType"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"}],"variable":[{"key":"accountType","value":"12"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:19:13 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"75e3810c-89df-4704-b58f-3e00da2f02b4"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"ffe8f4c2-a77c-4efc-8c27-8f0d2f1609e2","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/accounts-categories/:accountType?lang=es&company_id=55","host":["{{api_url}}"],"path":["accounts-categories",":accountType"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"}],"variable":[{"key":"accountType","value":"12"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:24:18 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"78fa796e-0f09-4d84-8b11-1f572bc38361","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account-categories/:accountType?lang=es&company_id=55","host":["{{api_url}}"],"path":["account-categories",":accountType"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"}],"variable":[{"key":"accountType","value":"12"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:25:13 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"1b4583de-930f-4b2b-aae9-c10a92661636"}],"id":"04305cc2-433f-40af-937b-83dce95a45af","description":"<p>Advertisers Categories define the <strong>classification catalog</strong> used to group Advertisers (Accounts) (e.g., industry/category groupings). These categories are commonly used to power <strong>filters, dropdowns, reporting segments, and advertiser setup flows</strong>.</p>\n<p>This folder includes <strong>three read-only endpoints</strong> that cover the full “browse + find + detail” workflow.</p>\n<hr />\n<h2 id=\"overview-endpoints\">Overview (Endpoints)</h2>\n<h3 id=\"1-get-all-account-categories\">1) Get All Account Categories</h3>\n<p><strong>GET — Get all account categories</strong>  </p>\n<p>Returns the full list of available advertiser/account categories (unpaginated).<br /><strong>Use when:</strong> you need the complete catalog for dropdowns, caches, or small datasets.</p>\n<hr />\n<h3 id=\"2-list-account-categories-paginated\">2) List Account Categories (Paginated)</h3>\n<p><strong>GET — Get account categories paginated</strong>  </p>\n<p>Returns a paginated list of categories, usually for admin panels, search, or large catalogs.<br /><strong>Use when:</strong> you need browsing, listing, or pagination support.</p>\n<hr />\n<h3 id=\"3-get-account-category-by-id\">3) Get Account Category by ID</h3>\n<p><strong>GET — Get account category by id</strong>  </p>\n<p>Retrieves the details of a single category by its unique identifier.<br /><strong>Use when:</strong> you already have a <code>category_id</code> and need its full details.</p>\n<hr />\n<h2 id=\"typical-workflow\">Typical Workflow</h2>\n<ol>\n<li><p>Fetch list (unpaginated) for dropdowns <strong>or</strong> fetch paginated for browsing/search</p>\n</li>\n<li><p>Retrieve a category by ID when you need to display or validate a specific category</p>\n</li>\n</ol>\n<hr />\n<h2 id=\"common-conventions\">Common Conventions</h2>\n<p><strong>Base URL:</strong> <code>{{api_url}}</code><br /><strong>Default header:</strong> <code>Accept: application/json</code>  </p>\n<p>If the endpoint is protected, include:<br /><code>Authorization: Bearer {{token}}</code></p>\n<hr />\n<h2 id=\"status-codes-standard\">Status Codes (Standard)</h2>\n<p>These endpoints typically use:</p>\n<ul>\n<li><p><strong>200</strong> success</p>\n</li>\n<li><p><strong>401</strong> unauthorized (missing/invalid token)</p>\n</li>\n<li><p><strong>404</strong> not found (resource not available)</p>\n</li>\n<li><p><strong>422</strong> validation error (missing/invalid fields)</p>\n</li>\n<li><p><strong>500</strong> unexpected server error</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"8e7d6843-a65f-41b8-8a40-f93d154a685b","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"833c98cf-4651-4724-9639-719e73d4c70d","type":"text/javascript","exec":[""]}}],"_postman_id":"04305cc2-433f-40af-937b-83dce95a45af"},{"name":"Advertisers","item":[{"name":"Get all advertiser","id":"3829fd35-fc6c-4555-9473-978c34814c3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/account?lang=es&company_id=55&sort[]=-createdAt&include[]=brand","description":"<p>Returns the complete list of advertisers available for the authenticated context (typically scoped by <code>company_id</code> / permissions).<br />Use when: you need to populate dropdowns/selectors or fetch the full advertiser catalog (non-paginated).</p>\n<hr />\n<h2 id=\"authentication\">Authentication</h2>\n<p>This endpoint <strong>requires</strong> an access token.</p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> GET<br /><strong>Endpoint:</strong> <code>{{api_url}}/advertisers</code></p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the results.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>filter[text]</code></td>\n<td>No</td>\n<td>string</td>\n<td>Free-text search filter (e.g., advertiser/brand name).</td>\n</tr>\n<tr>\n<td><code>filter[id][]</code></td>\n<td>No</td>\n<td>array</td>\n<td>integer</td>\n</tr>\n<tr>\n<td><code>filter[type][]</code></td>\n<td>No</td>\n<td>array</td>\n<td>integer</td>\n</tr>\n<tr>\n<td><code>filter[disabled]</code></td>\n<td>No</td>\n<td>string</td>\n<td>Filter disabled status (e.g., <code>true</code> / <code>false</code>).</td>\n</tr>\n<tr>\n<td><code>filter[category][]</code></td>\n<td>No</td>\n<td>array</td>\n<td>integer</td>\n</tr>\n<tr>\n<td><code>filter[company]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Filter by related company ID (if applicable).</td>\n</tr>\n<tr>\n<td><code>filter[brand][]</code></td>\n<td>No</td>\n<td>array</td>\n<td>integer</td>\n</tr>\n<tr>\n<td><code>sort[]</code></td>\n<td>No</td>\n<td>array</td>\n<td>string</td>\n</tr>\n<tr>\n<td><code>include[]</code></td>\n<td>No</td>\n<td>string</td>\n<td>Include related resources. Allowed values in this collection: <code>country</code>, <code>type</code>, <code>logo</code>, <code>category</code>, <code>checkDisable</code>, <code>checkDelete</code>, <code>brand</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-all-advertiser\">200 OK — Get all advertiser</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 353,\n      \"type\": \"accounts\",\n      \"attributes\": {\n        \"name\": \"inDrive\",\n        \"account_type_id\": 1,\n        \"account_category_id\": 10,\n        \"disabled\": false,\n        \"company_id\": 55,\n        \"country_id\": null,\n        \"website\": null,\n        \"linkedin\": null,\n        \"parent\": null,\n        \"operator_code\": null\n      },\n      \"meta\": {\n        \"can_be_disabled\": null,\n        \"can_be_deleted\": null\n      },\n      \"relationships\": {\n        \"type\": {\n          \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n          }\n        },\n        \"logo\": [],\n        \"category\": {\n          \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n          }\n        },\n        \"brand\": {\n          \"data\": [\n            {\n              \"id\": 317,\n              \"name\": \"inDrive\",\n              \"type\": \"brands\"\n            }\n          ]\n        }\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n      }\n    }\n  ],\n  \"links\": {\n    \"self\": \"http://localhost/api-evaluator/public/api/accounts\"\n  },\n  \"included\": [\n    {\n      \"id\": 317,\n      \"type\": \"brands\",\n      \"attributes\": {\n        \"name\": \"inDrive\",\n        \"account_id\": 353\n      }\n    }\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing or invalid.</p>\n<p><strong>Example Response (401)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<p><strong>Example Response (404)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<p><strong>Example Response (500)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"curl-example\">cURL Example</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/account?lang=es&amp;company_id=55&amp;sort[]=-createdAt&amp;include[]=brand' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["account"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"es"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[text]","value":"uruguay"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[id][]","value":""},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[type][]","value":"1"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[disabled]","value":"true"},{"disabled":true,"key":"filter[category][]","value":"8"},{"disabled":true,"key":"filter[company]","value":"47"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[brand][]","value":"54"},{"disabled":true,"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"sort[]","value":"name"},{"description":{"content":"<p>optional | array | string</p>\n","type":"text/plain"},"key":"sort[]","value":"-createdAt"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"country"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"type"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"logo"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"category"},{"disabled":true,"key":"include[]","value":"checkDisable"},{"disabled":true,"key":"include[]","value":"checkDelete"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"brand"}],"variable":[]}},"response":[{"id":"33b248d6-5c1b-4d1c-9246-c4d397ccb4e8","name":"200 OK — Get all advertiser","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/accounts?lang=es&company_id=55&sort[]=-createdAt&include[]=brand","host":["{{api_url}}"],"path":["accounts"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string","disabled":true},{"key":"filter[category][]","value":"8","disabled":true},{"key":"filter[company]","value":"47","disabled":true},{"key":"filter[brand][]","value":"54","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","description":"optional | array | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string","disabled":true},{"key":"include[]","value":"logo","description":"optional | string","disabled":true},{"key":"include[]","value":"category","description":"optional | string","disabled":true},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","type":"text","disabled":true},{"key":"include[]","value":"brand","description":"optional | string"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:39:54 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"f82c6e89-e85b-4517-bd9b-73fe448f0bab"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 353,\n            \"type\": \"accounts\",\n            \"attributes\": {\n                \"name\": \"inDrive\",\n                \"account_type_id\": 1,\n                \"account_category_id\": 10,\n                \"disabled\": false,\n                \"company_id\": 55,\n                \"country_id\": null,\n                \"website\": null,\n                \"linkedin\": null,\n                \"parent\": null,\n                \"operator_code\": null\n            },\n            \"meta\": {\n                \"can_be_disabled\": null,\n                \"can_be_deleted\": null\n            },\n            \"relationships\": {\n                \"type\": {\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n                    }\n                },\n                \"logo\": [],\n                \"category\": {\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n                    }\n                },\n                \"brand\": {\n                    \"data\": [\n                        {\n                            \"id\": 317,\n                            \"name\": \"inDrive\",\n                            \"type\": \"brands\"\n                        }\n                    ]\n                }\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n            }\n        }\n    ],\n    \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/accounts\"\n    },\n    \"included\": [\n        {\n            \"id\": 317,\n            \"type\": \"brands\",\n            \"attributes\": {\n                \"name\": \"inDrive\",\n                \"account_id\": 353\n            }\n        }\n    ]\n}"},{"id":"1e22fa29-9a6d-4db4-b383-117257fbb6fb","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/accounts?lang=es&company_id=47&sort[]=-createdAt&include[]=brand","host":["{{api_url}}"],"path":["accounts"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string","disabled":true},{"key":"filter[category][]","value":"8","disabled":true},{"key":"filter[company]","value":"47","disabled":true},{"key":"filter[brand][]","value":"54","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","description":"optional | array | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string","disabled":true},{"key":"include[]","value":"logo","description":"optional | string","disabled":true},{"key":"include[]","value":"category","description":"optional | string","disabled":true},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","type":"text","disabled":true},{"key":"include[]","value":"brand","description":"optional | string"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:37:34 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"db78e48e-8936-418e-a738-e0abf610ce16"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"8e4b00d1-413a-455f-bdda-796affc10017","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/account?lang=es&company_id=47&sort[]=-createdAt&include[]=brand","host":["{{api_url}}"],"path":["account"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"1","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string","disabled":true},{"key":"filter[category][]","value":"8","disabled":true},{"key":"filter[company]","value":"47","disabled":true},{"key":"filter[brand][]","value":"54","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","description":"optional | array | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string","disabled":true},{"key":"include[]","value":"logo","description":"optional | string","disabled":true},{"key":"include[]","value":"category","description":"optional | string","disabled":true},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","type":"text","disabled":true},{"key":"include[]","value":"brand","description":"optional | string"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:39:14 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"ee1f5fd8-9726-41cb-9094-036b2de614be","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/accounts?lang=es&company_id=47&filter[type][]=1&filter[disabled]=true&sort[]=-createdAt&include[]=brand","host":["{{api_url}}"],"path":["accounts"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"1","description":"optional | array | integer"},{"key":"filter[disabled]","value":"true","description":"optional | string"},{"key":"filter[category][]","value":"8","disabled":true},{"key":"filter[company]","value":"47","disabled":true},{"key":"filter[brand][]","value":"54","description":"optional | array | integer","disabled":true},{"key":"sort[]","value":"name","description":"optional | array | string","disabled":true},{"key":"sort[]","value":"-createdAt","description":"optional | array | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string","disabled":true},{"key":"include[]","value":"logo","description":"optional | string","disabled":true},{"key":"include[]","value":"category","description":"optional | string","disabled":true},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","type":"text","disabled":true},{"key":"include[]","value":"brand","description":"optional | string"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Mon, 09 Feb 2026 21:35:24 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"3829fd35-fc6c-4555-9473-978c34814c3c"},{"name":"Get all brands by advertiser","id":"0c2d813b-b1f4-485e-aaef-9003d06a43c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{api_url}}/brands?lang=es&company_id=47","description":"<p>Retrieves <strong>brands</strong> associated with advertisers (accounts) for a given company.</p>\n<p>You can optionally filter by <strong>company</strong> or a specific <strong>account</strong>.</p>\n<p><strong>Use when:</strong> you need to populate brand selectors, advertiser-brand mapping screens, or dependent dropdowns (Advertiser → Brands).</p>\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires a valid access token.</p>\n<p><strong>Header</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>URL:</strong> <code>{{api_url}}/brands</code></p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope results.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>filter[company]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Filter brands by company ID.</td>\n</tr>\n<tr>\n<td><code>filter[account]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Filter brands by a specific advertiser/account ID.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"example-url\"><strong>Example URL</strong></h2>\n<p><code>{{api_url}}/brands?lang=es&amp;company_id=55</code></p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-all-advertiser\">200 OK — Get all advertiser</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 317,\n      \"type\": \"brands\",\n      \"attributes\": {\n        \"name\": \"inDrive\",\n        \"account_id\": 353\n      }\n    }\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing or invalid.</p>\n<p><strong>Example Response (401)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<p><strong>Example Response (404)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<p><strong>Example Response (500)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/brands?lang=es&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["brands"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"es"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"47"},{"disabled":true,"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"filter[company]","value":"47"},{"disabled":true,"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"filter[account]","value":""}],"variable":[]}},"response":[{"id":"979cc897-ac28-4a07-a78f-5e927d62c291","name":"200 OK — Get all brands by advertiser","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/brands?lang=es&company_id=55","host":["{{api_url}}"],"path":["brands"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[company]","value":"47","description":"optional | integer","disabled":true},{"key":"filter[account]","value":"","description":"optional | integer","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:28:50 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"3971e9e7-6822-460a-8f57-6a156eb23359"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 317,\n            \"type\": \"brands\",\n            \"attributes\": {\n                \"name\": \"inDrive\",\n                \"account_id\": 353\n            }\n        }\n    ]\n}"},{"id":"84acb601-8c72-4fd5-a003-de7f0410f246","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/brands?lang=es&company_id=47","host":["{{api_url}}"],"path":["brands"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[company]","value":"47","description":"optional | integer","disabled":true},{"key":"filter[account]","value":"","description":"optional | integer","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:27:30 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"39ed56bb-7383-47e5-be8e-4680f1c8917b"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"bb90f42e-2e5b-4100-8789-327a3a3058e3","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/brand?lang=es&company_id=55","host":["{{api_url}}"],"path":["brand"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[company]","value":"47","description":"optional | integer","disabled":true},{"key":"filter[account]","value":"","description":"optional | integer","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:28:16 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"d5c1e4dc-cfa7-41fa-b5d7-d403e9263ba2","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{api_url}}/brands?lang=es&company_id=55","host":["{{api_url}}"],"path":["brands"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[company]","value":"47","description":"optional | integer","disabled":true},{"key":"filter[account]","value":"","description":"optional | integer","disabled":true}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:32:13 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"0c2d813b-b1f4-485e-aaef-9003d06a43c0"},{"name":"Get advertisers paginated","id":"1dbc088e-a8a2-442f-9b88-a1bf2db11a33","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{api_url}}/accounts/paginated?lang=es&company_id=47&filter[disabled]=true&sort[]=createdAt&include[]=type&include[]=logo&include[]=category&page[size]=1&page[number]=2","description":"<p>Returns a <strong>paginated list of Advertisers (Accounts)</strong> for the given company.</p>\n<p>Supports <strong>filters</strong>, <strong>sorting</strong>, <strong>includes</strong>, and standard pagination params.</p>\n<p><strong>Use when:</strong> you need advertiser listing screens, dashboards, history views, or any UI that requires pagination.</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires a valid access token.</p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>URL:</strong> <code>{{api_url}}/accounts/paginated</code></p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope results.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>filter[text]</code></td>\n<td>No</td>\n<td>string</td>\n<td>Search by text (usually name).</td>\n</tr>\n<tr>\n<td><code>filter[id][]</code></td>\n<td>No</td>\n<td>array[int]</td>\n<td>Filter by advertiser ID(s).</td>\n</tr>\n<tr>\n<td><code>filter[country][]</code></td>\n<td>No</td>\n<td>array[int]</td>\n<td>Filter by country ID(s).</td>\n</tr>\n<tr>\n<td><code>filter[type][]</code></td>\n<td>No</td>\n<td>array[int]</td>\n<td>Filter by account type ID(s).</td>\n</tr>\n<tr>\n<td><code>filter[disabled]</code></td>\n<td>No</td>\n<td>string/bool</td>\n<td>Filter by disabled state (<code>true</code> / <code>false</code>).</td>\n</tr>\n<tr>\n<td><code>sort[]</code></td>\n<td>No</td>\n<td>string/array</td>\n<td>Sort by field(s). Use <code>-field</code> for descending. Example: <code>sort[]=-createdAt</code>.</td>\n</tr>\n<tr>\n<td><code>include[]</code></td>\n<td>No</td>\n<td>string/array</td>\n<td>Include related resources. Examples: <code>country</code>, <code>type</code>, <code>logo</code>, <code>category</code>, <code>checkDisable</code>, <code>checkDelete</code>.</td>\n</tr>\n<tr>\n<td><code>page[size]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Items per page.</td>\n</tr>\n<tr>\n<td><code>page[number]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Page number (starts at 1).</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"example-url\"><strong>Example URL</strong></h2>\n<p><code>{{api_url}}/accounts/paginated?lang=es&amp;company_id=55&amp;sort[]=-createdAt&amp;include[]=type&amp;include[]=logo&amp;include[]=category&amp;page[size]=1&amp;page[number]=1</code></p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-all-advertiser\">200 OK — Get all advertiser</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": 353,\n      \"type\": \"accounts\",\n      \"attributes\": {\n        \"name\": \"inDrive\",\n        \"account_type_id\": 1,\n        \"account_category_id\": 10,\n        \"disabled\": false,\n        \"company_id\": 55,\n        \"country_id\": null,\n        \"website\": null,\n        \"linkedin\": null,\n        \"parent\": null,\n        \"operator_code\": null\n      },\n      \"meta\": {\n        \"can_be_disabled\": null,\n        \"can_be_deleted\": null\n      },\n      \"relationships\": {\n        \"type\": {\n          \"data\": {\n            \"id\": 1,\n            \"type\": \"account_types\"\n          },\n          \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n          }\n        },\n        \"category\": {\n          \"data\": {\n            \"id\": 10,\n            \"type\": \"account_categories\"\n          },\n          \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n          }\n        },\n        \"brand\": []\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n      }\n    }\n  ],\n  \"links\": {\n    \"first\": \"http://localhost/api-evaluator/public/api/accounts/paginated?page=1\",\n    \"last\": \"http://localhost/api-evaluator/public/api/accounts/paginated?page=1\",\n    \"prev\": null,\n    \"next\": null,\n    \"self\": \"http://localhost/api-evaluator/public/api/accounts\"\n  },\n  \"meta\": {\n    \"current_page\": 1,\n    \"total_items\": 1,\n    \"per_page\": 1,\n    \"total_pages\": 1\n  },\n  \"included\": [\n    {\n      \"id\": 1,\n      \"type\": \"account_types\",\n      \"attributes\": {\n        \"name\": \"Anunciantes\",\n        \"order\": 1\n      },\n      \"relationships\": {\n        \"accounts\": {\n          \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/accounts/1\"\n          }\n        }\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n      }\n    },\n    {\n      \"id\": 10,\n      \"type\": \"account_categories\",\n      \"attributes\": {\n        \"level\": 1,\n        \"external_id\": \"19000\",\n        \"name\": \"Viajes y Transporte\"\n      },\n      \"relationships\": {\n        \"accounts\": []\n      },\n      \"links\": {\n        \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n      }\n    }\n  ]\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses\">Error Responses</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing or invalid.</p>\n<p><strong>Example Response (401)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--resource-not-found\">404 Not Found — Resource Not Found</h3>\n<p>Returned when the route is incorrect or the resource is not available.</p>\n<p><strong>Example Response (404)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected Failure</h3>\n<p>Returned when an unexpected server error occurs.</p>\n<p><strong>Example Response (500)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/accounts/paginated?lang=es&amp;company_id=55&amp;sort[]=-createdAt&amp;include[]=type&amp;include[]=logo&amp;include[]=category&amp;page[size]=1&amp;page[number]=1' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","urlObject":{"path":["accounts","paginated"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"es"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"47"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[text]","value":"uruguay"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[id][]","value":"274"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[country][]","value":"2"},{"disabled":true,"description":{"content":"<p>optional | array | integer</p>\n","type":"text/plain"},"key":"filter[type][]","value":"2"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"filter[disabled]","value":"true"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"sort[]","value":"name"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"sort[]","value":"createdAt"},{"disabled":true,"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"country"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"type"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"logo"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"category"},{"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"page[size]","value":"1"},{"description":{"content":"<p>optional | integer</p>\n","type":"text/plain"},"key":"page[number]","value":"2"},{"disabled":true,"key":"include[]","value":"checkDisable"},{"disabled":true,"key":"include[]","value":"checkDelete"}],"variable":[]}},"response":[{"id":"c20ee6b8-45e6-44f1-9a81-031a786d1c8d","name":"200 OK — Get advertisers paginated","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/accounts/paginated?lang=es&company_id=55&sort[]=createdAt&include[]=type&include[]=logo&include[]=category&page[size]=1&page[number]=1","host":["{{api_url}}"],"path":["accounts","paginated"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"274","description":"optional | array | integer","disabled":true},{"key":"filter[country][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string","disabled":true},{"key":"sort[]","value":"name","description":"optional | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"category","description":"optional | string"},{"key":"page[size]","value":"1","description":"optional | integer"},{"key":"page[number]","value":"1","description":"optional | integer"},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:47:43 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"9a4ca458-fc94-406c-b2e1-20c56f062c24"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 353,\n            \"type\": \"accounts\",\n            \"attributes\": {\n                \"name\": \"inDrive\",\n                \"account_type_id\": 1,\n                \"account_category_id\": 10,\n                \"disabled\": false,\n                \"company_id\": 55,\n                \"country_id\": null,\n                \"website\": null,\n                \"linkedin\": null,\n                \"parent\": null,\n                \"operator_code\": null\n            },\n            \"meta\": {\n                \"can_be_disabled\": null,\n                \"can_be_deleted\": null\n            },\n            \"relationships\": {\n                \"type\": {\n                    \"data\": {\n                        \"id\": 1,\n                        \"type\": \"account_types\"\n                    },\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n                    }\n                },\n                \"category\": {\n                    \"data\": {\n                        \"id\": 10,\n                        \"type\": \"account_categories\"\n                    },\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n                    }\n                },\n                \"brand\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n            }\n        }\n    ],\n    \"links\": {\n        \"first\": \"http://localhost/api-evaluator/public/api/accounts/paginated?page=1\",\n        \"last\": \"http://localhost/api-evaluator/public/api/accounts/paginated?page=1\",\n        \"prev\": null,\n        \"next\": null,\n        \"self\": \"http://localhost/api-evaluator/public/api/accounts\"\n    },\n    \"meta\": {\n        \"current_page\": 1,\n        \"total_items\": 1,\n        \"per_page\": 1,\n        \"total_pages\": 1\n    },\n    \"included\": [\n        {\n            \"id\": 1,\n            \"type\": \"account_types\",\n            \"attributes\": {\n                \"name\": \"Anunciantes\",\n                \"order\": 1\n            },\n            \"relationships\": {\n                \"accounts\": {\n                    \"links\": {\n                        \"self\": \"http://localhost/api-evaluator/public/api/accounts/1\"\n                    }\n                }\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n            }\n        },\n        {\n            \"id\": 10,\n            \"type\": \"account_categories\",\n            \"attributes\": {\n                \"level\": 1,\n                \"external_id\": \"19000\",\n                \"name\": \"Viajes y Transporte\"\n            },\n            \"relationships\": {\n                \"accounts\": []\n            },\n            \"links\": {\n                \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n            }\n        }\n    ]\n}"},{"id":"5f0e4234-c885-4f07-bfac-fadc1eb56ede","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/accounts/paginated?lang=es&company_id=47&filter[disabled]=true&sort[]=createdAt&include[]=type&include[]=logo&include[]=category&page[size]=1&page[number]=2","host":["{{api_url}}"],"path":["accounts","paginated"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"274","description":"optional | array | integer","disabled":true},{"key":"filter[country][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string"},{"key":"sort[]","value":"name","description":"optional | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"category","description":"optional | string"},{"key":"page[size]","value":"1","description":"optional | integer"},{"key":"page[number]","value":"2","description":"optional | integer"},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","disabled":true}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:41:22 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"046d7ba4-ee37-41c3-b0ce-a95e1bfe506d"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"4f20ea7f-c155-4233-b174-2a0dab756ec2","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/account/paginated?lang=es&company_id=55&sort[]=createdAt&include[]=type&include[]=logo&include[]=category&page[size]=1&page[number]=10","host":["{{api_url}}"],"path":["account","paginated"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"274","description":"optional | array | integer","disabled":true},{"key":"filter[country][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string","disabled":true},{"key":"sort[]","value":"name","description":"optional | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"category","description":"optional | string"},{"key":"page[size]","value":"1","description":"optional | integer"},{"key":"page[number]","value":"10","description":"optional | integer"},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","disabled":true}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:43:37 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"d112f11c-4f2f-4ca2-a9d2-910999a2db1d","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/accounts/paginated?lang=es&company_id=55&sort[]=createdAt&include[]=type&include[]=logo&include[]=category&page[size]=1&page[number]=10","host":["{{api_url}}"],"path":["accounts","paginated"],"query":[{"key":"lang","value":"es","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"filter[text]","value":"uruguay","description":"optional | string","disabled":true},{"key":"filter[id][]","value":"274","description":"optional | array | integer","disabled":true},{"key":"filter[country][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[type][]","value":"2","description":"optional | array | integer","disabled":true},{"key":"filter[disabled]","value":"true","description":"optional | string","disabled":true},{"key":"sort[]","value":"name","description":"optional | string","disabled":true},{"key":"sort[]","value":"createdAt","description":"optional | string"},{"key":"include[]","value":"country","description":"optional | string","disabled":true},{"key":"include[]","value":"type","description":"optional | string"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"category","description":"optional | string"},{"key":"page[size]","value":"1","description":"optional | integer"},{"key":"page[number]","value":"10","description":"optional | integer"},{"key":"include[]","value":"checkDisable","disabled":true},{"key":"include[]","value":"checkDelete","disabled":true}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:44:52 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"1dbc088e-a8a2-442f-9b88-a1bf2db11a33"},{"name":"Create advertiser","id":"80c9c2d3-281b-430b-87e1-4fac040c3250","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"company_id","value":"47","description":"<p>required | integer</p>\n","type":"text"},{"key":"data[type]","value":"accounts","description":"<p>required | string</p>\n","type":"text"},{"key":"data[attributes][name]","value":"McDonald's","description":"<p>required | string</p>\n","type":"text"},{"key":"data[attributes][name_brand][]","value":"Sprite","description":"<p>required | string</p>\n","type":"text"},{"key":"data[attributes][name_brand][]","value":"Cajita Feliz","description":"<p>optional | string</p>\n","type":"text"},{"key":"data[attributes][country_id]","value":"6","description":"<p>required | integer</p>\n","type":"text","disabled":true},{"key":"data[attributes][account_type_id]","value":"1","description":"<p>required | string</p>\n","type":"text"},{"key":"data[attributes][logo]","description":"<p>optional | image</p>\n","type":"file","src":"/C:/Users/danie/Downloads/descarga (5).png"},{"key":"data[attributes][account_category_id]","value":"4","description":"<p>required  | integer</p>\n","type":"text"},{"key":"data[attributes][discount_pct]","value":"85","description":"<p>optional | integer</p>\n","type":"text","disabled":true},{"key":"data[attributes][company_id]","value":"47","description":"<p>required  | integer</p>\n","type":"text"}]},"url":"{{api_url}}/accounts","description":"<p>Creates a new <strong>Advertiser (Account)</strong> within the specified company. Optionally, you can upload a <strong>logo</strong> and send one or multiple <strong>brand names</strong> to be associated with the advertiser.</p>\n<p><strong>Use when:</strong> you need to register a new advertiser in the system (and optionally create initial brands + logo).</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint requires <strong>Bearer Token</strong> authentication.</p>\n<p><strong>Header</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>{{api_url}}/accounts</code></p>\n<p><strong>Content-Type:</strong> <code>multipart/form-data</code> (Postman: <strong>form-data</strong>)</p>\n<p>This endpoint expects <strong>form fields</strong> (not JSON raw body), following the JSON:API-like structure <code>data[type]</code>, <code>data[attributes][...]</code>.</p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the creation.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"body-parameters-form-data\">Body Parameters (form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Resource type. Must be <code>accounts</code>.</td>\n</tr>\n<tr>\n<td><code>data[attributes][name]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Advertiser name.</td>\n</tr>\n<tr>\n<td><code>data[attributes][account_type_id]</code></td>\n<td>Yes</td>\n<td>integer/string</td>\n<td>Advertiser type identifier (e.g. <code>1</code>).</td>\n</tr>\n<tr>\n<td><code>data[attributes][account_category_id]</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Category identifier for the advertiser.</td>\n</tr>\n<tr>\n<td><code>data[attributes][company_id]</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company id (should match <code>company_id</code> query param).</td>\n</tr>\n<tr>\n<td><code>data[attributes][country_id]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Optional country id.</td>\n</tr>\n<tr>\n<td><code>data[attributes][logo]</code></td>\n<td>No</td>\n<td>file (image)</td>\n<td>Optional advertiser logo image.</td>\n</tr>\n<tr>\n<td><code>data[attributes][name_brand][]</code></td>\n<td>No/Yes*</td>\n<td>string (array)</td>\n<td>One or multiple brand names to associate (repeat the field for each brand).</td>\n</tr>\n<tr>\n<td><code>data[attributes][discount_pct]</code></td>\n<td>No</td>\n<td>integer</td>\n<td>Optional discount percentage (if supported).</td>\n</tr>\n</tbody>\n</table>\n</div><p>* According to your Postman setup, <code>data[attributes][name_brand][]</code> is marked as required. If your API truly requires at least one brand, keep it as <strong>required</strong>. Otherwise you can mark it as optional.</p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-advertiser-by-id\">200 OK — Get advertiser by id</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 474,\n    \"type\": \"accounts\",\n    \"attributes\": {\n      \"name\": \"McDonald's\",\n      \"account_type_id\": 1,\n      \"account_category_id\": 4,\n      \"disabled\": false,\n      \"company_id\": 55,\n      \"country_id\": null,\n      \"website\": null,\n      \"linkedin\": null,\n      \"parent\": null,\n      \"operator_code\": null\n    },\n    \"meta\": {\n      \"can_be_disabled\": null,\n      \"can_be_deleted\": null\n    },\n    \"relationships\": {\n      \"type\": {\n        \"links\": {\n          \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n        }\n      },\n      \"logo\": [],\n      \"category\": {\n        \"links\": {\n          \"self\": \"http://localhost/api-evaluator/public/api/account-categories/4\"\n        }\n      },\n      \"brand\": []\n    },\n    \"links\": {\n      \"self\": \"http://localhost/api-evaluator/public/api/accounts/474\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses-standard\">Error Responses (Standard)</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing/invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--routeresource-not-found\">404 Not Found — Route/Resource not found</h3>\n<p>Returned when the advertiser does not exist (or is not visible in the provided <code>company_id</code> scope).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required parameters are missing or invalid (body fields and/or <code>company_id</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"El campo data es obligatorio. (and 5 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ],\n        \"data.attributes.account_category_id\": [\n            \"El campo data.attributes.account category id es obligatorio.\"\n        ],\n        \"data.attributes.name_brand\": [\n            \"El campo data.attributes.name brand es obligatorio.\"\n        ],\n        \"data.attributes.company_id\": [\n            \"El campo data.attributes.company id es obligatorio.\"\n        ]\n    }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected failure</h3>\n<p>Returned on unhandled errors.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/accounts?lang=es&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --form 'data[type]=accounts' \\\n  --form 'data[attributes][name]=McDonald'\\''s' \\\n  --form 'data[attributes][account_type_id]=1' \\\n  --form 'data[attributes][account_category_id]=4' \\\n  --form 'data[attributes][company_id]=55' \\\n  --form 'data[attributes][name_brand][]=Sprite' \\\n  --form 'data[attributes][name_brand][]=Cajita Feliz' \\\n  --form 'data[attributes][logo]=@\"/path/to/logo.png\"'\n\n</code></pre>\n","urlObject":{"path":["accounts"],"host":["{{api_url}}"],"query":[],"variable":[]}},"response":[{"id":"c540a267-74b1-42b6-a6ee-6f2e778acc7d","name":"200 OK — Create advertiser","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[type]","value":"accounts","description":"required | string","type":"text"},{"key":"data[attributes][name]","value":"McDonald's","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Sprite","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Cajita Feliz","description":"required | string","type":"text"},{"key":"data[attributes][country_id]","value":"6","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][account_type_id]","value":"1","description":"required | string","type":"text"},{"key":"data[attributes][logo]","description":"optional | image","type":"file","src":"/C:/Users/danie/Downloads/descarga (5).png"},{"key":"data[attributes][account_category_id]","value":"4","description":"required  | integer","type":"text"},{"key":"data[attributes][discount_pct]","value":"85","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][company_id]","value":"55","description":"required  | integer","type":"text"}]},"url":"{{api_url}}/accounts"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:11:39 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"585ccfa6-e4e9-4aef-b164-8b990faf5fa4"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 474,\n        \"type\": \"accounts\",\n        \"attributes\": {\n            \"name\": \"McDonald's\",\n            \"account_type_id\": 1,\n            \"account_category_id\": 4,\n            \"disabled\": false,\n            \"company_id\": 55,\n            \"country_id\": null,\n            \"website\": null,\n            \"linkedin\": null,\n            \"parent\": null,\n            \"operator_code\": null\n        },\n        \"meta\": {\n            \"can_be_disabled\": null,\n            \"can_be_deleted\": null\n        },\n        \"relationships\": {\n            \"type\": {\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n                }\n            },\n            \"logo\": [],\n            \"category\": {\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/account-categories/4\"\n                }\n            },\n            \"brand\": []\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/accounts/474\"\n        }\n    }\n}"},{"id":"ada1bc6a-c807-47cf-bc88-2f42d2a5fcd9","name":"401 Unauthorized — Access denied","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"47","description":"required | integer","type":"text"},{"key":"data[type]","value":"accounts","description":"required | string","type":"text"},{"key":"data[attributes][name]","value":"McDonald's","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Sprite","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Cajita Feliz","description":"optional | string","type":"text"},{"key":"data[attributes][country_id]","value":"6","description":"required | integer","type":"text","disabled":true},{"key":"data[attributes][account_type_id]","value":"1","description":"required | string","type":"text"},{"key":"data[attributes][logo]","description":"optional | image","type":"file","src":"/C:/Users/danie/Downloads/descarga (5).png"},{"key":"data[attributes][account_category_id]","value":"4","description":"required  | integer","type":"text"},{"key":"data[attributes][discount_pct]","value":"85","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][company_id]","value":"47","description":"required  | integer","type":"text"}]},"url":"{{api_url}}/accounts"},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 13:59:26 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"2251e40c-de3a-48cf-a7bc-03ad4b15f89f"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"6e87ec85-8d0b-48c0-9537-59498fa9576f","name":"404 Not Found — Route Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[type]","value":"accounts","description":"required | string","type":"text"},{"key":"data[attributes][name]","value":"McDonald's","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Sprite","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Cajita Feliz","description":"optional | string","type":"text"},{"key":"data[attributes][country_id]","value":"6","description":"required | integer","type":"text","disabled":true},{"key":"data[attributes][account_type_id]","value":"1","description":"required | string","type":"text"},{"key":"data[attributes][logo]","description":"optional | image","type":"file","src":"/C:/Users/danie/Downloads/descarga (5).png"},{"key":"data[attributes][account_category_id]","value":"4","description":"required  | integer","type":"text"},{"key":"data[attributes][discount_pct]","value":"85","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][company_id]","value":"47","description":"required  | integer","type":"text"}]},"url":"{{api_url}}/account"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:00:16 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"77de9074-5dac-4006-a157-d93531604b9c","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[type]","value":"accounts","description":"required | string","type":"text","disabled":true},{"key":"data[attributes][name]","value":"McDonald's","description":"required | string","type":"text","disabled":true},{"key":"data[attributes][name_brand][]","value":"Sprite","description":"required | string","type":"text","disabled":true},{"key":"data[attributes][name_brand][]","value":"Cajita Feliz","description":"required | string","type":"text","disabled":true},{"key":"data[attributes][country_id]","value":"6","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][account_type_id]","value":"1","description":"required | string","type":"text","disabled":true},{"key":"data[attributes][logo]","description":"optional | image","type":"file","src":"/C:/Users/danie/Downloads/descarga (5).png"},{"key":"data[attributes][account_category_id]","value":"4","description":"required  | integer","type":"text","disabled":true},{"key":"data[attributes][discount_pct]","value":"85","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][company_id]","value":"55","description":"required  | integer","type":"text","disabled":true}]},"url":"{{api_url}}/accounts"},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:10:13 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"34248312-7b8b-4ff6-9556-db8691991cb4"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El campo data es obligatorio. (and 5 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ],\n        \"data.attributes.account_category_id\": [\n            \"El campo data.attributes.account category id es obligatorio.\"\n        ],\n        \"data.attributes.name_brand\": [\n            \"El campo data.attributes.name brand es obligatorio.\"\n        ],\n        \"data.attributes.company_id\": [\n            \"El campo data.attributes.company id es obligatorio.\"\n        ]\n    }\n}"},{"id":"d6bf3c01-7b1a-437f-9ecf-ac87e2e683c9","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[type]","value":"accounts","description":"required | string","type":"text"},{"key":"data[attributes][name]","value":"McDonald's","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Sprite","description":"required | string","type":"text"},{"key":"data[attributes][name_brand][]","value":"Cajita Feliz","description":"optional | string","type":"text"},{"key":"data[attributes][country_id]","value":"6","description":"required | integer","type":"text","disabled":true},{"key":"data[attributes][account_type_id]","value":"1","description":"required | string","type":"text"},{"key":"data[attributes][logo]","description":"optional | image","type":"file","src":"/C:/Users/danie/Downloads/descarga (5).png"},{"key":"data[attributes][account_category_id]","value":"4","description":"required  | integer","type":"text"},{"key":"data[attributes][discount_pct]","value":"85","description":"optional | integer","type":"text","disabled":true},{"key":"data[attributes][company_id]","value":"47","description":"required  | integer","type":"text"}]},"url":"{{api_url}}/accounts"},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:01:27 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"80c9c2d3-281b-430b-87e1-4fac040c3250"},{"name":"Get advertiser by id","id":"4c5c024f-8d26-4c87-acf5-5f9e5e0860e9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":"{{api_url}}/accounts/:account?lang=pt&company_id=55&include[]=logo&include[]=brand","description":"<p>Retrieves a single <strong>Advertiser (Account)</strong> by its unique identifier.</p>\n<p>Use this endpoint when you need the advertiser details for a <strong>detail view</strong>, <strong>validation</strong>, or to <strong>load related data</strong> (e.g., brand/logo) for Media Plan selection.</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>This endpoint is <strong>protected</strong>. Send:</p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<p>(Defined in the Postman collection for the <code>/accounts/:account</code> request.)</p>\n<hr />\n<h2 id=\"request\">Request</h2>\n<p><strong>Method:</strong> <code>GET</code><br /><strong>Endpoint:</strong> <code>{{api_url}}/accounts/:account</code></p>\n<p>TDT Metrics API – PUBLIC.postma…</p>\n<h3 id=\"path-parameters\">Path Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>account</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Advertiser (Account) identifier. (Sent as <code>:account</code> in the URL.)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the request.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n<tr>\n<td><code>include[]</code></td>\n<td>No</td>\n<td>string / array</td>\n<td>Includes related resources. Common values: <code>logo</code>, <code>brand</code>. (Repeat the param to include multiple.)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"example-url\">Example URL</h3>\n<p><code>{{api_url}}/accounts/353?lang=pt&amp;company_id=55&amp;include[]=logo&amp;include[]=brand</code></p>\n<p>(Format matches the collection’s request contract.)</p>\n<hr />\n<h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-advertiser-by-id\">200 OK — Get advertiser by id</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 353,\n    \"type\": \"accounts\",\n    \"attributes\": {\n      \"name\": \"inDrive\",\n      \"account_type_id\": 1,\n      \"account_category_id\": 10,\n      \"disabled\": false,\n      \"company_id\": 55,\n      \"country_id\": null,\n      \"website\": null,\n      \"linkedin\": null,\n      \"parent\": null,\n      \"operator_code\": null\n    },\n    \"meta\": {\n      \"can_be_disabled\": null,\n      \"can_be_deleted\": null\n    },\n    \"relationships\": {\n      \"type\": {\n        \"links\": {\n          \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n        }\n      },\n      \"category\": {\n        \"links\": {\n          \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n        }\n      },\n      \"brand\": {\n        \"data\": [\n          {\n            \"id\": 317,\n            \"name\": \"inDrive\",\n            \"type\": \"brands\"\n          }\n        ]\n      }\n    },\n    \"links\": {\n      \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses-standard\">Error Responses (Standard)</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing/invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--routeresource-not-found\">404 Not Found — Route/Resource not found</h3>\n<p>Returned when the advertiser does not exist (or is not visible in the provided <code>company_id</code> scope).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected failure</h3>\n<p>Returned on unhandled errors.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/accounts/353?lang=pt&amp;company_id=55&amp;include[]=logo&amp;include[]=brand' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}'\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":true,"source":{"_postman_id":"e1a9e2c4-6203-4eae-98a9-ce3555ebe467","id":"e1a9e2c4-6203-4eae-98a9-ce3555ebe467","name":"Advertisers","type":"folder"}},"urlObject":{"path":["accounts",":account"],"host":["{{api_url}}"],"query":[{"description":{"content":"<p>optional | string | es,en,pt</p>\n","type":"text/plain"},"key":"lang","value":"pt"},{"description":{"content":"<p>required | integer</p>\n","type":"text/plain"},"key":"company_id","value":"55"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"logo"},{"description":{"content":"<p>optional | string</p>\n","type":"text/plain"},"key":"include[]","value":"brand"}],"variable":[{"type":"any","value":"353","key":"account"}]}},"response":[{"id":"2302bf28-e2d9-4bc6-9848-7014a1e31ac5","name":"200 OK — Get advertiser by id","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/accounts/:account?lang=pt&company_id=55&include[]=logo&include[]=brand","host":["{{api_url}}"],"path":["accounts",":account"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"brand","description":"optional | string"}],"variable":[{"key":"account","value":"353"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:29:09 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"3125adc8-16e3-4882-ae73-dc50a61f2074"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 353,\n        \"type\": \"accounts\",\n        \"attributes\": {\n            \"name\": \"inDrive\",\n            \"account_type_id\": 1,\n            \"account_category_id\": 10,\n            \"disabled\": false,\n            \"company_id\": 55,\n            \"country_id\": null,\n            \"website\": null,\n            \"linkedin\": null,\n            \"parent\": null,\n            \"operator_code\": null\n        },\n        \"meta\": {\n            \"can_be_disabled\": null,\n            \"can_be_deleted\": null\n        },\n        \"relationships\": {\n            \"type\": {\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n                }\n            },\n            \"category\": {\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n                }\n            },\n            \"brand\": {\n                \"data\": [\n                    {\n                        \"id\": 317,\n                        \"name\": \"inDrive\",\n                        \"type\": \"brands\"\n                    }\n                ]\n            }\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n        }\n    }\n}"},{"id":"791b9a79-891f-44b7-abfc-700a1bfda046","name":"401 Unauthorized — Access denied","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/accounts/:account?lang=pt&company_id=47&include[]=logo","host":["{{api_url}}"],"path":["accounts",":account"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"47","description":"required | integer"},{"key":"include[]","value":"logo"}],"variable":[{"key":"account","value":"284"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:27:44 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"78388d38-7253-44a4-9a66-887d513f68f2"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"d8bfcf91-0c7b-4e1b-94ad-7712152012bb","name":"404 Not Found — Route Not Found","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/account/:account?lang=pt&company_id=55&include[]=logo&include[]=brand","host":["{{api_url}}"],"path":["account",":account"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"brand","description":"optional | string"}],"variable":[{"key":"account","value":"353"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:30:42 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"fc3a6f58-c8ae-4299-acf0-b065b5519712","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"}],"url":{"raw":"{{api_url}}/accounts/:account?lang=pt&company_id=55&include[]=logo&include[]=brand","host":["{{api_url}}"],"path":["accounts",":account"],"query":[{"key":"lang","value":"pt","description":"optional | string | es,en,pt"},{"key":"company_id","value":"55","description":"required | integer"},{"key":"include[]","value":"logo","description":"optional | string"},{"key":"include[]","value":"brand","description":"optional | string"}],"variable":[{"key":"account","value":"353"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 14:31:50 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"4c5c024f-8d26-4c87-acf5-5f9e5e0860e9"},{"name":"Update advertiser by id","id":"89a118dc-d47d-4e4e-bd1a-b51ed3af7bf5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"company_id","value":"55","description":"<p>required | integer</p>\n","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[type]","value":"accounts","type":"text","description":"<p>required | string </p>\n"},{"key":"data[attributes][name]","value":"inDrives","type":"text","description":"<p>required | integer</p>\n"},{"key":"data[attributes][logo]","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"],"description":"<p>optional | string</p>\n","src":"/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png","disabled":true},{"key":"data[attributes][account_category_id]","value":"10","type":"text","description":"<p>optional | integer</p>\n"},{"key":"data[attributes][company_id]","value":"55","type":"text","uuid":"6661db0f-1c4a-49c9-a690-2837a499f192"}]},"url":"{{api_url}}/accounts/:account","description":"<p>Updates an existing <strong>Advertiser (Account)</strong> using its identifier. This endpoint uses <strong>method override</strong> (<code>_method=PATCH</code>) and accepts <strong>multipart/form-data</strong>, allowing you to update fields and optionally upload/replace the advertiser <strong>logo</strong>.</p>\n<p><strong>Use when:</strong> you need to edit an advertiser name/category/logo (or other editable attributes).</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>Requires <strong>Bearer Token</strong>.</p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>{{api_url}}/accounts/:account</code></p>\n<p><strong>Path Variables</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>account</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Advertiser (account) id to update.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Content-Type:</strong> <code>multipart/form-data</code><br /><strong>Method override:</strong> <code>--form '_method=PATCH'</code></p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the update.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"body-parameters-form-data\">Body Parameters (form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_method</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Must be <code>PATCH</code> (method override).</td>\n</tr>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Resource type. Must be <code>accounts</code>.</td>\n</tr>\n<tr>\n<td><code>data[attributes][name]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Updated advertiser name.</td>\n</tr>\n<tr>\n<td><code>data[attributes][account_category_id]</code></td>\n<td>No/Yes*</td>\n<td>integer</td>\n<td>Updated category id.</td>\n</tr>\n<tr>\n<td><code>data[attributes][company_id]</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company id (should match <code>company_id</code> query param).</td>\n</tr>\n<tr>\n<td><code>data[attributes][logo]</code></td>\n<td>No</td>\n<td>file (image)</td>\n<td>Optional logo file to upload/replace.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-advertiser-by-id\">200 OK — Get advertiser by id</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 353,\n    \"type\": \"accounts\",\n    \"attributes\": {\n      \"name\": \"inDrive\",\n      \"account_type_id\": 1,\n      \"account_category_id\": 10,\n      \"disabled\": false,\n      \"company_id\": 55,\n      \"country_id\": null,\n      \"website\": null,\n      \"linkedin\": null,\n      \"parent\": null,\n      \"operator_code\": null\n    },\n    \"meta\": {\n      \"can_be_disabled\": null,\n      \"can_be_deleted\": null\n    },\n    \"relationships\": {\n      \"type\": {\n        \"links\": {\n          \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n        }\n      },\n      \"category\": {\n        \"links\": {\n          \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n        }\n      },\n      \"brand\": {\n        \"data\": [\n          {\n            \"id\": 317,\n            \"name\": \"inDrive\",\n            \"type\": \"brands\"\n          }\n        ]\n      }\n    },\n    \"links\": {\n      \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses-standard\">Error Responses (Standard)</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing/invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--routeresource-not-found\">404 Not Found — Route/Resource not found</h3>\n<p>Returned when the advertiser does not exist (or is not visible in the provided <code>company_id</code> scope).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required parameters are missing or invalid (body fields and/or <code>company_id</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"El campo data es obligatorio. (and 5 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ],\n        \"data.attributes.account_category_id\": [\n            \"El campo data.attributes.account category id es obligatorio.\"\n        ],\n        \"data.attributes.name_brand\": [\n            \"El campo data.attributes.name brand es obligatorio.\"\n        ],\n        \"data.attributes.company_id\": [\n            \"El campo data.attributes.company id es obligatorio.\"\n        ]\n    }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected failure</h3>\n<p>Returned on unhandled errors.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/accounts/353?lang=es&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --form '_method=PATCH' \\\n  --form 'data[type]=accounts' \\\n  --form 'data[attributes][name]=inDrive' \\\n  --form 'data[attributes][account_category_id]=10' \\\n  --form 'data[attributes][company_id]=55' \\\n  --form 'data[attributes][logo]=@\"/path/to/inDrive.png\"'\n\n</code></pre>\n","urlObject":{"path":["accounts",":account"],"host":["{{api_url}}"],"query":[],"variable":[{"type":"any","value":"353","key":"account"}]}},"response":[{"id":"04bf9376-4cc4-4b5d-ab93-f235cbc8ab93","name":"200 OK — Update advertiser by id","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[type]","value":"accounts","type":"text","description":"required | string "},{"key":"data[attributes][name]","value":"inDrives","type":"text","description":"required | integer"},{"key":"data[attributes][logo]","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"],"description":"optional | string","src":"/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png","disabled":true},{"key":"data[attributes][account_category_id]","value":"10","type":"text","description":"optional | integer"},{"key":"data[attributes][company_id]","value":"55","type":"text","uuid":"6661db0f-1c4a-49c9-a690-2837a499f192"}]},"url":{"raw":"{{api_url}}/accounts/:account","host":["{{api_url}}"],"path":["accounts",":account"],"variable":[{"key":"account","value":"353"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 20:01:14 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"c8118477-450a-470a-abfb-87b67c1ab953"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 353,\n        \"type\": \"accounts\",\n        \"attributes\": {\n            \"name\": \"inDrives\",\n            \"account_type_id\": 1,\n            \"account_category_id\": 10,\n            \"disabled\": false,\n            \"company_id\": 55,\n            \"country_id\": null,\n            \"website\": null,\n            \"linkedin\": null,\n            \"parent\": null,\n            \"operator_code\": null\n        },\n        \"meta\": {\n            \"can_be_disabled\": null,\n            \"can_be_deleted\": null\n        },\n        \"relationships\": {\n            \"type\": {\n                \"data\": {\n                    \"id\": 1,\n                    \"type\": \"account_types\"\n                },\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/account-types/1\"\n                }\n            },\n            \"category\": {\n                \"links\": {\n                    \"self\": \"http://localhost/api-evaluator/public/api/account-categories/10\"\n                }\n            },\n            \"brand\": []\n        },\n        \"links\": {\n            \"self\": \"http://localhost/api-evaluator/public/api/accounts/353\"\n        }\n    }\n}"},{"id":"ea099f67-5a14-48ff-93dd-240dcae3c0bb","name":"401 Unauthorized — Access denied","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"47","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[type]","value":"accounts","type":"text"},{"key":"data[attributes][name]","value":"Cuenta A","type":"text"},{"key":"data[attributes][logo]","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"],"src":"/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"},{"key":"data[attributes][account_category_id]","value":"3","type":"text"}]},"url":{"raw":"{{api_url}}/accounts/:account","host":["{{api_url}}"],"path":["accounts",":account"],"variable":[{"key":"account","value":"1"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 19:13:49 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"93268347-aac4-4eb1-a19e-b493bb201e7e"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"10c439dc-f8d4-4cde-ae14-987c8590f57e","name":"404 Not Found — Route Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[type]","value":"accounts","type":"text","description":"required | string "},{"key":"data[attributes][name]","value":"Cuenta A","type":"text","description":"required | integer"},{"key":"data[attributes][logo]","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"],"description":"optional | string","src":"/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"},{"key":"data[attributes][account_category_id]","value":"3","type":"text","description":"optional | integer"}]},"url":"{{api_url}}/accounts:account"},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 19:17:52 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"3ed72dc9-4f75-4f19-9071-a88b154b4906","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[type]","value":"accounts","type":"text","description":"required | string ","disabled":true},{"key":"data[attributes][name]","value":"Cuenta A","type":"text","description":"required | integer","disabled":true},{"key":"data[attributes][logo]","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"],"description":"optional | string","src":"/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"},{"key":"data[attributes][account_category_id]","value":"3","type":"text","description":"optional | integer"}]},"url":{"raw":"{{api_url}}/accounts/:account","host":["{{api_url}}"],"path":["accounts",":account"],"variable":[{"key":"account","value":""}]}},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 19:18:42 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"47b5f70b-9921-4148-a8af-db9cf4cd726a"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El campo data.type es obligatorio. (and 1 more error)\",\n    \"errors\": {\n        \"data.type\": [\n            \"El campo data.type es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ]\n    }\n}"},{"id":"861747f5-21c6-4153-a0e9-46fb0f1a10a7","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[type]","value":"accounts","type":"text","description":"required | string ","disabled":true},{"key":"data[attributes][name]","value":"Cuenta A","type":"text","description":"required | integer","disabled":true},{"key":"data[attributes][logo]","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"],"description":"optional | string","src":"/C:/Users/emanu/Documents/TDT/Planning/accounts/remax.png"},{"key":"data[attributes][account_category_id]","value":"3","type":"text","description":"optional | integer"}]},"url":{"raw":"{{api_url}}/accounts/:account","host":["{{api_url}}"],"path":["accounts",":account"],"variable":[{"key":"account","value":""}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 19:22:33 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"89a118dc-d47d-4e4e-bd1a-b51ed3af7bf5"},{"name":"Update brand by id advertiser","id":"69c9ecb7-1672-42cb-bbd4-a2aff58146a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"company_id","value":"55","description":"<p>required | integer</p>\n","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[account_id]","value":"353","type":"text","description":"<p>required | integer</p>\n"},{"key":"data[type]","value":"brands","type":"text","description":"<p>required | string</p>\n"},{"key":"data[attributes][name]","value":"inDrive","type":"text","description":"<p>required | string</p>\n"},{"key":"data[attributes][brand_id]","value":"317","type":"text","description":"<p>required | integer</p>\n"}]},"url":"{{api_url}}/brands/:account","description":"<p>Updates an existing <strong>Brand</strong> that belongs to a specific <strong>Advertiser (Account)</strong>. This endpoint uses <strong>method override</strong> (<code>_method=PATCH</code>) and accepts <strong>multipart/form-data</strong>.</p>\n<p><strong>Use when:</strong> you need to rename a brand (or update brand fields) for a given advertiser.</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>Requires <strong>Bearer Token</strong>.</p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>{{api_url}}/brands/:account</code></p>\n<p><code>:account</code> is the advertiser (account) identifier used as context for the update.</p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the update.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"body-parameters-form-data\">Body Parameters (form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>_method</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Must be <code>PATCH</code> (method override).</td>\n</tr>\n<tr>\n<td><code>data[account_id]</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Advertiser (account) id that owns the brand.</td>\n</tr>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Resource type. Must be <code>brands</code>.</td>\n</tr>\n<tr>\n<td><code>data[attributes][name]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Updated brand name.</td>\n</tr>\n<tr>\n<td><code>data[attributes][brand_id]</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Brand identifier to update.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--get-advertiser-by-id\">200 OK — Get advertiser by id</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 317,\n    \"type\": \"brands\",\n    \"attributes\": {\n      \"name\": \"inDrive\",\n      \"account_id\": 353\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses-standard\">Error Responses (Standard)</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing/invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--routeresource-not-found\">404 Not Found — Route/Resource not found</h3>\n<p>Returned when the advertiser does not exist (or is not visible in the provided <code>company_id</code> scope).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required parameters are missing or invalid (body fields and/or <code>company_id</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"El campo data es obligatorio. (and 5 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.account_id\": [\n            \"El campo data.account id es obligatorio.\"\n        ],\n        \"data.type\": [\n            \"El campo data.type es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ],\n        \"data.attributes.brand_id\": [\n            \"El campo data.attributes.brand id es obligatorio.\"\n        ]\n    }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected failure</h3>\n<p>Returned on unhandled errors.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/brands/353?lang=es&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --form '_method=PATCH' \\\n  --form 'data[account_id]=353' \\\n  --form 'data[type]=brands' \\\n  --form 'data[attributes][name]=inDrive' \\\n  --form 'data[attributes][brand_id]=317'\n\n</code></pre>\n","urlObject":{"path":["brands",":account"],"host":["{{api_url}}"],"query":[],"variable":[{"type":"any","value":"353","key":"account"}]}},"response":[{"id":"0bf7b8e2-1a6e-41ab-b8f9-01a28c844794","name":"200 OK — Update brand by id advertiser","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[account_id]","value":"353","type":"text","description":"required | integer"},{"key":"data[type]","value":"brands","type":"text","description":"required | string"},{"key":"data[attributes][name]","value":"inDrives","type":"text","description":"required | string"},{"key":"data[attributes][brand_id]","value":"317","type":"text","description":"required | integer"}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"317"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 20:47:19 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"98526332-2974-451b-b0e4-8a57ee662a3b"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"57"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 317,\n        \"type\": \"brands\",\n        \"attributes\": {\n            \"name\": \"inDrives\",\n            \"account_id\": 317\n        }\n    }\n}"},{"id":"5614bb71-1d8e-4b28-b6b6-f76465f63809","name":"401 Unauthorized — Access denied","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"47","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[account_id]","value":"84","type":"text","description":"required | integer"},{"key":"data[type]","value":"brands","type":"text","description":"required | string"},{"key":"data[attributes][name]","value":"brand Marcos3","type":"text","description":"required | string"},{"key":"data[attributes][brand_id]","value":"317","type":"text","description":"required | integer"}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"317"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 20:38:38 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"98e79715-c52e-4177-addb-03d332c9d5c0"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"3e076f8b-d5d5-4768-aeb1-0ab4b9ae5b76","name":"404 Not Found — Route Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"47","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[account_id]","value":"84","type":"text","description":"required | integer"},{"key":"data[type]","value":"brands","type":"text","description":"required | string"},{"key":"data[attributes][name]","value":"brand Marcos3","type":"text","description":"required | string"},{"key":"data[attributes][brand_id]","value":"317","type":"text","description":"required | integer"}]},"url":{"raw":"{{api_url}}/brand/:account","host":["{{api_url}}"],"path":["brand",":account"],"variable":[{"key":"account","value":"317"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 20:44:50 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"e0f181e2-b393-4454-b897-e84f6536d8bc","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[account_id]","value":"353","type":"text","description":"required | integer","disabled":true},{"key":"data[type]","value":"brands","type":"text","description":"required | string","disabled":true},{"key":"data[attributes][name]","value":"inDrive","type":"text","description":"required | string","disabled":true},{"key":"data[attributes][brand_id]","value":"317","type":"text","description":"required | integer","disabled":true}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"353"}]}},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 11 Feb 2026 13:43:44 GMT"},{"key":"Server","value":"Apache/2.4.58 (Ubuntu)"},{"key":"Vary","value":"Authorization"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"c4f654a2-e042-4f31-b9fb-2d1d7d093b8f"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El campo data es obligatorio. (and 5 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.account_id\": [\n            \"El campo data.account id es obligatorio.\"\n        ],\n        \"data.type\": [\n            \"El campo data.type es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ],\n        \"data.attributes.brand_id\": [\n            \"El campo data.attributes.brand id es obligatorio.\"\n        ]\n    }\n}"},{"id":"8e17509e-5bcc-4add-82b1-89265a5291ed","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"47","description":"required | integer","type":"text"},{"key":"_method","value":"PATCH","type":"text"},{"key":"data[account_id]","value":"84","type":"text","description":"required | integer"},{"key":"data[type]","value":"brands","type":"text","description":"required | string"},{"key":"data[attributes][name]","value":"brand Marcos3","type":"text","description":"required | string"},{"key":"data[attributes][brand_id]","value":"317","type":"text","description":"required | integer"}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"317"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Tue, 10 Feb 2026 20:43:22 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"69c9ecb7-1672-42cb-bbd4-a2aff58146a9"},{"name":"Create brand by id advertiser","id":"fecc4666-e645-4b5c-84c0-da9b97e2d802","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"<p>optional | string | es,en,pt</p>\n","type":"text"},{"key":"company_id","value":"55","description":"<p>required | integer</p>\n","type":"text"},{"key":"data[account_id]","value":"352","type":"text"},{"key":"data[type]","value":"brands","type":"text"},{"key":"data[attributes][name]","value":"brand Indrive","type":"text"}]},"url":"{{api_url}}/brands/:account","description":"<p>Creates a new <strong>Brand</strong> under an existing <strong>Advertiser (Account)</strong>. The request is sent as <strong>multipart/form-data</strong> and returns the created brand resource.</p>\n<p><strong>Use when:</strong> you need to add one or more brands for an advertiser (e.g., advertiser has multiple brands).</p>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>Requires <strong>Bearer Token</strong>.</p>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"request\">Request</h3>\n<p><strong>Method:</strong> <code>POST</code><br /><strong>URL:</strong> <code>{{api_url}}/brands/:account</code></p>\n<p><code>:account</code> is the advertiser (account) context for creating the brand.</p>\n<hr />\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>company_id</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Company identifier used to scope the creation.</td>\n</tr>\n<tr>\n<td><code>lang</code></td>\n<td>No</td>\n<td>string</td>\n<td>Response language. Allowed: <code>es</code>, <code>en</code>, <code>pt</code>.</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h3 id=\"body-parameters-form-data\">Body Parameters (form-data)</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>data[account_id]</code></td>\n<td>Yes</td>\n<td>integer</td>\n<td>Advertiser (account) id that will own the new brand.</td>\n</tr>\n<tr>\n<td><code>data[type]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Resource type. Must be <code>brands</code>.</td>\n</tr>\n<tr>\n<td><code>data[attributes][name]</code></td>\n<td>Yes</td>\n<td>string</td>\n<td>Brand name to create.</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"successful-response\">Successful Response</h2>\n<h3 id=\"200-ok--create-brand-by-advertiser\">200 OK — Create brand by advertiser</h3>\n<p><strong>Content-Type:</strong> <code>application/json</code></p>\n<p><strong>Example Response (200)</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"id\": 317,\n    \"type\": \"brands\",\n    \"attributes\": {\n      \"name\": \"inDrive\",\n      \"account_id\": 353\n    }\n  }\n}\n\n</code></pre>\n<hr />\n<h2 id=\"error-responses-standard\">Error Responses (Standard)</h2>\n<h3 id=\"401-unauthorized--access-denied\">401 Unauthorized — Access denied</h3>\n<p>Returned when the token is missing/invalid.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Unauthorized\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"404-not-found--routeresource-not-found\">404 Not Found — Route/Resource not found</h3>\n<p>Returned when the advertiser does not exist (or is not visible in the provided <code>company_id</code> scope).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"message\": \"Not Found\"\n}\n\n</code></pre>\n<hr />\n<h2 id=\"422-unprocessable-entity--validation-error\">422 Unprocessable Entity — Validation Error</h2>\n<p>Returned when required parameters are missing or invalid (body fields and/or <code>company_id</code>).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"El campo data es obligatorio. (and 4 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.account_id\": [\n            \"El campo data.account id es obligatorio.\"\n        ],\n        \"data.type\": [\n            \"El campo data.type es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ]\n    }\n}\n\n</code></pre>\n<hr />\n<h3 id=\"500-internal-server-error--unexpected-failure\">500 Internal Server Error — Unexpected failure</h3>\n<p>Returned on unhandled errors.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}\n\n</code></pre>\n<hr />\n<h3 id=\"curl-example\">cURL Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">curl --location '{{api_url}}/brands/353?lang=es&amp;company_id=55' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer {{token}}' \\\n  --form 'data[account_id]=353' \\\n  --form 'data[type]=brands' \\\n  --form 'data[attributes][name]=brand Indrive'\n\n</code></pre>\n","urlObject":{"path":["brands",":account"],"host":["{{api_url}}"],"query":[],"variable":[{"type":"any","value":"353","key":"account"}]}},"response":[{"id":"757a8460-70c7-44cd-a1e0-08ef33c53b96","name":"200 OK — Create brand by id advertiser","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[account_id]","value":"353","type":"text"},{"key":"data[type]","value":"brands","type":"text"},{"key":"data[attributes][name]","value":"brand Indrive","type":"text"}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"353"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 11 Feb 2026 14:00:50 GMT"},{"key":"Server","value":"Apache/2.4.58 (Ubuntu)"},{"key":"Vary","value":"Authorization"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"a25ca393-860a-4d0e-803d-7d936b402407"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": 515,\n        \"type\": \"brands\",\n        \"attributes\": {\n            \"name\": \"brand Indrive\",\n            \"account_id\": 353\n        }\n    }\n}"},{"id":"a6e2fc44-c9b0-4b0a-bfad-a3bfca627c7b","name":"401 Unauthorized — Access denied","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"47","description":"required | integer","type":"text"},{"key":"data[account_id]","value":"353","type":"text"},{"key":"data[type]","value":"brands","type":"text"},{"key":"data[attributes][name]","value":"brand indrive","type":"text"}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"353"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 11 Feb 2026 13:47:47 GMT"},{"key":"Server","value":"Apache/2.4.58 (Ubuntu)"},{"key":"Vary","value":"Authorization"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"4e999824-b1ed-46c4-9d7e-d9828e9c6675"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Unauthorized\"\n}"},{"id":"cd4974ab-1786-4f9d-b063-3df78950b87a","name":"404 Not Found — Route Not Found","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[account_id]","value":"352","type":"text"},{"key":"data[type]","value":"brands","type":"text"},{"key":"data[attributes][name]","value":"brand Indrive","type":"text"}]},"url":{"raw":"{{api_url}}/brand/:account","host":["{{api_url}}"],"path":["brand",":account"],"variable":[{"key":"account","value":"352"}]}},"status":"Not Found","code":404,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 11 Feb 2026 14:21:44 GMT"},{"key":"Server","value":"Apache/2.4.58 (Ubuntu)"},{"key":"Vary","value":"Authorization"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Not Found\"\n}"},{"id":"90463df8-c144-40b4-b0a8-8e3a37fbe7d1","name":"422 Unprocessable Entity — Validation Error","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[account_id]","value":"352","type":"text","disabled":true},{"key":"data[type]","value":"brands","type":"text","disabled":true},{"key":"data[attributes][name]","value":"brand Indrive","type":"text","disabled":true}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"352"}]}},"status":"Unprocessable Content","code":422,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 11 Feb 2026 14:02:40 GMT"},{"key":"Server","value":"Apache/2.4.58 (Ubuntu)"},{"key":"Vary","value":"Authorization"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"X-Request-Id","value":"432b6cce-dc60-4cc5-8bff-a1ba730f263c"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"57"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Keep-Alive","value":"timeout=5, max=100"},{"key":"Connection","value":"Keep-Alive"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"El campo data es obligatorio. (and 4 more errors)\",\n    \"errors\": {\n        \"data\": [\n            \"El campo data es obligatorio.\"\n        ],\n        \"data.account_id\": [\n            \"El campo data.account id es obligatorio.\"\n        ],\n        \"data.type\": [\n            \"El campo data.type es obligatorio.\"\n        ],\n        \"data.attributes\": [\n            \"El campo data.attributes es obligatorio.\"\n        ],\n        \"data.attributes.name\": [\n            \"El campo data.attributes.name es obligatorio.\"\n        ]\n    }\n}"},{"id":"07830e6c-3da5-40c5-a940-8a91d70f1494","name":"500 Internal Server Error — Unexpected Failure","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"formdata","formdata":[{"key":"lang","value":"es","description":"optional | string | es,en,pt","type":"text"},{"key":"company_id","value":"55","description":"required | integer","type":"text"},{"key":"data[account_id]","value":"352","type":"text"},{"key":"data[type]","value":"brands","type":"text"},{"key":"data[attributes][name]","value":"brand Indrive","type":"text"}]},"url":{"raw":"{{api_url}}/brands/:account","host":["{{api_url}}"],"path":["brands",":account"],"variable":[{"key":"account","value":"353"}]}},"status":"Internal Server Error","code":500,"_postman_previewlanguage":null,"header":[{"key":"Date","value":"Wed, 11 Feb 2026 14:31:51 GMT"},{"key":"Server","value":"Apache/2.4.62 (Win64) OpenSSL/3.1.7 PHP/8.4.0"},{"key":"Vary","value":"Authorization"},{"key":"X-Powered-By","value":"PHP/8.4.0"},{"key":"Cache-Control","value":"no-cache, private"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Connection","value":"close"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Content-Type","value":"application/json"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"An unexpected error occurred. Please try again later.\"\n}"}],"_postman_id":"fecc4666-e645-4b5c-84c0-da9b97e2d802"}],"id":"e1a9e2c4-6203-4eae-98a9-ce3555ebe467","description":"<p>Advertisers represent the <strong>Advertiser/Brand entities</strong> used across the platform (e.g., for Media Plans, reporting, and account management).<br />This folder provides a complete set of endpoints to <strong>list, create, update, and manage</strong> advertisers and their associated brands, including pagination and lifecycle actions (enable/disable/delete).</p>\n<hr />\n<h2 id=\"overview-endpoints\">Overview (Endpoints)</h2>\n<h3 id=\"1-list-all-advertisers\">1) List all advertisers</h3>\n<p><strong>GET — Get all advertiser</strong><br />Returns the full list of advertisers accessible to the authenticated user/company context.<br />Use when: you need to populate dropdowns/selectors or fetch the full catalog (small/medium datasets).</p>\n<hr />\n<h3 id=\"2-list-brands-by-advertiser\">2) List brands by advertiser</h3>\n<p><strong>GET — Get all brands by advertiser</strong><br />Returns all brands that belong to a specific advertiser.<br />Use when: you have an <code>advertiser_id</code> and need its brands for selection or validation.</p>\n<hr />\n<h3 id=\"3-list-advertisers-paginated\">3) List advertisers (Paginated)</h3>\n<p><strong>GET — Get advertisers paginated</strong><br />Returns a paginated list of advertisers with optional filters/sorting (depending on your implementation).<br />Use when: you need dashboards, search results, large datasets, or filtering/sorting in UI.</p>\n<hr />\n<h3 id=\"4-create-advertiser\">4) Create advertiser</h3>\n<p><strong>POST — Create advertiser</strong><br />Creates a new advertiser (and optionally related data depending on your API).<br />Use when: onboarding a new advertiser into the platform.</p>\n<hr />\n<h3 id=\"5-get-advertiser-by-id\">5) Get advertiser by ID</h3>\n<p><strong>GET — Get advertiser by id</strong><br />Retrieves a single advertiser resource by its unique identifier.<br />Use when: opening a detail view or validating that the advertiser exists.</p>\n<hr />\n<h3 id=\"6-update-advertiser-by-id\">6) Update advertiser by ID</h3>\n<p><strong>POST — Update advertiser by id</strong><br />Updates advertiser information (name, category, metadata, status, etc. depending on your API).<br />Use when: editing advertiser details from an admin panel or integration.</p>\n<hr />\n<h3 id=\"7-update-brand-by-advertiser--brand-id\">7) Update brand by advertiser + brand ID</h3>\n<p><strong>POST — Update brand by id advertiser</strong><br />Updates a brand that belongs to a specific advertiser.<br />Use when: editing brand details while keeping it scoped to its advertiser.</p>\n<hr />\n<h3 id=\"8-create-brand-under-advertiser\">8) Create brand under advertiser</h3>\n<p><strong>POST — Create brand by id advertiser</strong><br />Creates a new brand under a given advertiser.<br />Use when: the advertiser needs additional brands to manage campaigns/media plans.</p>\n<hr />\n<h2 id=\"typical-workflow\">Typical Workflow</h2>\n<ol>\n<li><strong>List advertisers (paginated)</strong> for dashboards/search  </li>\n<li><strong>Create advertiser</strong> (if it doesn’t exist)  </li>\n<li><strong>Create brand under advertiser</strong> (optional)  </li>\n<li><strong>Get advertiser by ID</strong> to display details  </li>\n<li><strong>Update advertiser / update brand</strong> for maintenance</li>\n</ol>\n<hr />\n<h2 id=\"common-conventions\">Common Conventions</h2>\n<ul>\n<li><p><strong>Base URL:</strong> <code>{{api_url}}</code></p>\n</li>\n<li><p><strong>Default header:</strong> <code>Accept: application/json</code></p>\n</li>\n<li><p>Protected endpoints require:</p>\n<ul>\n<li><code>Authorization: Bearer {{token}}</code></li>\n</ul>\n</li>\n</ul>\n<hr />\n<h2 id=\"status-codes-standard\">Status Codes (Standard)</h2>\n<p>These endpoints typically use:</p>\n<ul>\n<li><p><strong>200</strong> success</p>\n</li>\n<li><p><strong>401</strong> unauthorized (missing/invalid token)</p>\n</li>\n<li><p><strong>403</strong> forbidden (insufficient permissions)</p>\n</li>\n<li><p><strong>404</strong> not found (resource not available)</p>\n</li>\n<li><p><strong>422</strong> validation error (missing/invalid fields)</p>\n</li>\n<li><p><strong>500</strong> unexpected server error</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{token}}"}]},"isInherited":false},"event":[{"listen":"prerequest","script":{"id":"65b6f778-f123-4768-9e24-be2ced606d24","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"01588094-f464-4200-bf19-5da0d1075627","type":"text/javascript","exec":[""]}}],"_postman_id":"e1a9e2c4-6203-4eae-98a9-ce3555ebe467"}],"id":"3b0e59ad-470e-4cc2-8fb4-e761126e428a","description":"<p>This module is used to manage advertiser information. An advertiser is required when creating a Media Plan or Media Insights.</p>\n<hr />\n<p>Use these endpoints to:</p>\n<ul>\n<li><p>List all advertisers (full list or paginated)</p>\n</li>\n<li><p>Retrieve a single advertiser by ID</p>\n</li>\n<li><p>Create / update / delete advertisers</p>\n</li>\n<li><p>Manage brands for a given advertiser (list, create, update, delete)</p>\n</li>\n<li><p>Enable or disable an advertiser without deleting it</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"authentication\">Authentication</h3>\n<p>All endpoints in this folder are <strong>protected</strong>.</p>\n<p>Send the following header on every request:</p>\n<ul>\n<li><p><code>Authorization: Bearer {{token}}</code></p>\n</li>\n<li><p><code>Accept: application/json</code></p>\n</li>\n</ul>\n<p>Tokens are obtained via the authentication endpoints (Keycloak proxy).</p>\n<hr />\n<h3 id=\"conventions\">Conventions</h3>\n<ul>\n<li><p><strong>Advertiser</strong> = <strong>Account</strong> (same concept across the API).</p>\n</li>\n<li><p><strong>Brand</strong> is a child entity linked to an Advertiser (Account).</p>\n</li>\n<li><p>Some requests may use <code>multipart/form-data</code> fields and/or nested formats like <code>data[attributes]</code></p>\n</li>\n</ul>\n<hr />\n<h3 id=\"endpoints-included-in-this-folder\">Endpoints included in this folder</h3>\n<p><strong>Advertisers (Accounts)</strong></p>\n<ul>\n<li><p><code>GET</code> Get all advertisers</p>\n</li>\n<li><p><code>GET</code> Get advertisers paginated</p>\n</li>\n<li><p><code>GET</code> Get advertiser by id</p>\n</li>\n<li><p><code>POST</code> Create advertiser</p>\n</li>\n<li><p><code>POST</code> Update advertiser by id</p>\n</li>\n<li><p><code>DEL</code> Delete advertiser by id</p>\n</li>\n<li><p><code>POST</code> Disable advertiser by id</p>\n</li>\n<li><p><code>POST</code> Enable advertiser by id</p>\n</li>\n</ul>\n<p><strong>Brands</strong></p>\n<ul>\n<li><p><code>GET</code> Get all brands by advertiser</p>\n</li>\n<li><p><code>POST</code> Create brand by id advertiser</p>\n</li>\n<li><p><code>POST</code> Update brand by id advertiser</p>\n</li>\n<li><p><code>DEL</code> Delete brand by id</p>\n</li>\n</ul>\n<hr />\n<h3 id=\"standard-error-responses\">Standard Error Responses</h3>\n<p>These endpoints follow the standard error format used across the public API contract:</p>\n<ul>\n<li><p><strong>401 Unauthorized</strong> — Missing/invalid token</p>\n</li>\n<li><p><strong>404 Not Found</strong> — Resource does not exist</p>\n</li>\n<li><p><strong>422 Unprocessable Entity</strong> — Validation errors</p>\n</li>\n<li><p><strong>500 Internal Server Error</strong> — Unexpected failure</p>\n</li>\n</ul>\n","_postman_id":"3b0e59ad-470e-4cc2-8fb4-e761126e428a"}],"event":[{"listen":"prerequest","script":{"id":"3d22d435-b310-44c8-ad2a-fdabaa5f09e5","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"3e8d7a41-71a9-4b98-b806-c6179cf6d2c5","type":"text/javascript","exec":[""]}}]}