{"info":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","description":"<html><head></head><body><p><strong>Overview</strong></p>\n<p>The Acorn LMS's API is organised around REST. Our API has predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and authentication.</p>\n<p>To start using the API, you will first need to setup your credentials. Acorn will provide you with a Base URL, Tenancy ID, Username and Initial Refresh Token. These can be used to access all API endpoints. To start this process, please contact <a href=\"https://help.acorn.works\">Acorn Support</a>.</p>\n<p><strong>Rate Limiting</strong></p>\n<p>To protect our API from abuse and ensure fair usage, we enforce a rate limit of <strong>60 requests per minute per API key</strong>. If an API key exceeds that limit, the server returns an HTTP 429 (Too Many Requests) response. If you have a use case that requires a higher rate limit please contact <a href=\"https://help.acorn.works\">Acorn Support</a>.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"19721786","collectionId":"ce70c407-49f1-4b49-82b4-04f54a8c950b","publishedId":"2sBY4JwiBH","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"16252d","highlight":"743bfc"},"publishDate":"2026-07-08T00:55:54.000Z"},"item":[{"name":"REST APIs V1.1","item":[{"name":"Refresh API Key","item":[{"name":"Refresh API Key","event":[{"listen":"test","script":{"exec":["// Save our api_key and refresh_token","var jsonData = pm.response.json();","pm.environment.set(\"api_key\", jsonData.api_key); ","pm.environment.set(\"refresh_token\", jsonData.refresh_token);"],"type":"text/javascript","packages":{},"requests":{},"id":"c7d49be0-d3c7-45b7-8be8-61d98043b2c7"}},{"listen":"prerequest","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"072fadee-3c1e-4b19-b927-a6303bbcf5c1"}}],"id":"7c1fbc40-e10b-444f-bd73-974a62e11f3b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{refresh_token}}"}]},"isInherited":false},"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/apikeys?username={{username}}","description":"<p>To authenticate your requests to the API you must have an API Key. An API key can be generated by making a request using the Base URL, Tenancy ID, Username and Initial Refresh Token provided by Acorn.</p>\n","urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","apikeys"],"host":["{{base_url}}"],"query":[{"key":"username","value":"{{username}}"}],"variable":[]}},"response":[{"id":"7ae3924f-98c2-448f-90c4-a643e9eb5d82","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/apikeys?username={{username}}","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","apikeys"],"query":[{"key":"username","value":"{{username}}"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"api_key\": \"WlR1RG1oZDBhV2VrcVBhclRWYjY0dGtmc0VHNUtrTzFGMmZFQ2VlbA==\",\n    \"expires_in\": 86400,\n    \"refresh_token\": \"aGR3YnZ5VElSaG51b1NzcjJwYmhQQUNmUW1xRDQ4N3BZSngzR2NEaQ==\"\n}"},{"id":"c66030c5-b529-4595-ad1d-0e86a835859f","name":"Unauthorized Example (401 Unauthorized)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/apikeys?username={{username}}","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","apikeys"],"query":[{"key":"username","value":"{{username}}"}]}},"status":"Unauthorized","code":401,"_postman_previewlanguage":"html","header":[{"key":"content-type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"Unauthorized."}],"_postman_id":"7c1fbc40-e10b-444f-bd73-974a62e11f3b"}],"id":"d8ca7b18-7cbc-4cf4-8c67-da994658ff19","description":"<p>To authenticate your requests to the API you must have an API Key. An API key can be generated by making a request using the Base URL, Tenancy ID, Username and Initial Refresh Token provided by Acorn.</p>\n<h3 id=\"important\">Important</h3>\n<p>The API Key and Refresh Token should be stored in a secure location once received. Each API Key is only valid for 24 hours. The most recent Refresh Token can be used to request a new API Key and Refresh Token anytime. Requesting a new API Key and Refresh Token will cause the previous API Key and Refresh Token to become invalid.</p>\n<p>Requests to all API endpoints will not be authenticated if a user-agent is not specified in the request headers. To ensure that your requests are authenticated, please include a user-agent in the request headers. If a user-agent is not provided, the API will return a 403 Forbidden error.</p>\n","_postman_id":"d8ca7b18-7cbc-4cf4-8c67-da994658ff19","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Activity Completions ","item":[{"name":"Activity Completions","id":"d6da3f77-20e2-479e-acca-2368860945bf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/activitycompletions","description":"<p>Activity Completions include all current and archived completion records for activities within content. Each activity completion record includes details about the user, the content, and the activity that was completed.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","activitycompletions"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12356"},{"disabled":true,"description":{"content":"<p>Integer - optional, if included the endpoint will only return results with the specified activityid.</p>\n","type":"text/plain"},"key":"activityId","value":"123"},{"disabled":true,"description":{"content":"<p>integer - required, if included the endpoint will only return results with the specified contentid. Optional if userId is provided.</p>\n","type":"text/plain"},"key":"contentId","value":"123"},{"disabled":true,"description":{"content":"<p>integer - required, if included the endpoint will only return results with the specified userid. Optional if contentId is provided.</p>\n","type":"text/plain"},"key":"userId","value":"1236"},{"disabled":true,"description":{"content":"<p>string - optional, filter the results by content type. Available values: Course, Live Learning</p>\n","type":"text/plain"},"key":"contentType","value":"Course"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true suspended users will be included</p>\n","type":"text/plain"},"key":"showSuspended","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true completion records will include all custom user fields</p>\n","type":"text/plain"},"key":"userFields","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true results will be paginated. Use with page and perPage parameters</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, the page number for paginated results (default: 1). Requires paginate=true</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"15"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true and paginate=true, disables the polling mechanism for faster responses</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"false"}],"variable":[]}},"response":[{"id":"373ba8ec-9452-41e1-83ce-e383b2b22f93","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/activitycompletions?contentId=123","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","activitycompletions"],"query":[{"key":"contentId","value":"123"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestid\": 12345,\n    \"status\": \"complete\",\n    \"data\": [\n        {\n            \"activityCompletionId\": 1001,\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"Course\",\n            \"activityId\": 789,\n            \"activityName\": \"Quiz 1\",\n            \"activityType\": \"quiz\",\n            \"completionState\": 1,\n            \"timeCompleted\": \"2024-01-15T10:30:00Z\",\n            \"grade\": 85.5\n        },\n        {\n            \"activityCompletionId\": 1002,\n            \"userId\": 457,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"Course\",\n            \"activityId\": 789,\n            \"activityName\": \"Quiz 1\",\n            \"activityType\": \"quiz\",\n            \"completionState\": 1,\n            \"timeCompleted\": \"2024-01-15T14:45:00Z\",\n            \"grade\": 92.0\n        }\n    ]\n}"},{"id":"dfd7acc4-c9dc-451b-bdb7-c23b27cf7040","name":"Paginated Response Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/activitycompletions?paginate=true&page=1&perPage=15","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","activitycompletions"],"query":[{"key":"paginate","value":"true"},{"key":"page","value":"1"},{"key":"perPage","value":"15"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"activityCompletionId\": 1001,\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"Course\",\n            \"activityId\": 789,\n            \"activityName\": \"Quiz 1\",\n            \"completionState\": 1,\n            \"timeCompleted\": \"2024-01-15T10:30:00Z\"\n        }\n    ],\n    \"current_page\": 1,\n    \"per_page\": 15,\n    \"total\": 150,\n    \"last_page\": 10,\n    \"from\": 1,\n    \"to\": 15\n}"}],"_postman_id":"d6da3f77-20e2-479e-acca-2368860945bf"}],"id":"c42ffe49-4dea-4ad7-bd0a-078920ffb352","description":"<p>Activity Completions include all current and archived completion records for activities within content. Each activity completion record includes details about the user, the content, and the activity that was completed.</p>\n","_postman_id":"c42ffe49-4dea-4ad7-bd0a-078920ffb352","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Attendance ","item":[{"name":"Attendance ","id":"c69bec32-0d3f-4213-a261-b19b9a94c292","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/attendance","description":"<p>Attendance records include all attendance within Live Learnings (face-to-face sessions). Each attendance record includes details about the user, the Live Learning, the session date, and the attendance status.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1.1","tenancies","{{tenancy_id}}","attendance"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12345"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true suspended users will be included</p>\n","type":"text/plain"},"key":"showSuspended","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true attendance records will include all custom user fields</p>\n","type":"text/plain"},"key":"userFields","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true attendance records will include all custom content fields</p>\n","type":"text/plain"},"key":"contentFields","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true attendance records will include all custom session fields</p>\n","type":"text/plain"},"key":"sessionFields","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by Live Learning content ID</p>\n","type":"text/plain"},"key":"contentId","value":"1236"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true results will be paginated. Use with page and perPage parameters</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, the page number for paginated results (default: 1). Requires paginate=true</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"15"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true and paginate=true, disables the polling mechanism for faster responses</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"false"}],"variable":[]}},"response":[{"id":"200c0904-133b-4d30-82b9-3557d5cd778f","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/attendance"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestid\": 12346,\n    \"status\": \"complete\",\n    \"data\": [\n        {\n            \"attendanceId\": 501,\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"email\": \"sherlock.holmes@example.com\",\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"Live Learning\",\n            \"sessionId\": 101,\n            \"sessionDate\": \"2024-02-20T09:00:00Z\",\n            \"sessionEndDate\": \"2024-02-20T17:00:00Z\",\n            \"location\": \"Training Room A\",\n            \"attendanceStatus\": \"present\",\n            \"markedBy\": \"sherlock.holmes@example.com\",\n            \"markedAt\": \"2024-02-20T17:15:00Z\"\n        },\n        {\n            \"attendanceId\": 502,\n            \"userId\": 457,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"email\": \"sherlock.holmes@example.com\",\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"Live Learning\",\n            \"sessionId\": 101,\n            \"sessionDate\": \"2024-02-20T09:00:00Z\",\n            \"sessionEndDate\": \"2024-02-20T17:00:00Z\",\n            \"location\": \"Training Room A\",\n            \"attendanceStatus\": \"absent\",\n            \"markedBy\": \"sherlock.holmes@example.com\",\n            \"markedAt\": \"2024-02-20T17:15:00Z\"\n        }\n    ]\n}"}],"_postman_id":"c69bec32-0d3f-4213-a261-b19b9a94c292"}],"id":"a7b4c82e-4dad-4c60-aa7a-56fd8159e262","description":"<p>Attendance records include all attendance within Live Learnings (face-to-face sessions). Each attendance record includes details about the user, the Live Learning, the session date, and the attendance status.</p>\n","_postman_id":"a7b4c82e-4dad-4c60-aa7a-56fd8159e262","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Content ","item":[{"name":"Content ","id":"88693857-f7d0-406f-b00d-9288593a6d4a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/content","description":"<p>Content includes all content within the LMS. The primary use of this endpoint is to retrieve content IDs for use with other endpoints.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","content"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"123456"},{"disabled":true,"description":{"content":"<p>string - optional, filter results by content type. Available values: course, live learning, resource, video</p>\n","type":"text/plain"},"key":"contentType","value":"course"},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by specific content ID</p>\n","type":"text/plain"},"key":"contentId","value":"123"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true results will be paginated. Use with page and perPage parameters</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, the page number for paginated results (default: 1). Requires paginate=true</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"15"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true and paginate=true, disables the polling mechanism for faster responses</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"false"}],"variable":[]}},"response":[{"id":"512e1178-34cd-41c6-9a9f-95502b29e45f","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/content"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestid\": 12347,\n    \"status\": \"complete\",\n    \"data\": [\n        {\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"course\",\n            \"shortName\": \"SAFETY101\",\n            \"description\": \"A comprehensive introduction to workplace safety.\",\n            \"categoryId\": 5,\n            \"categoryName\": \"Safety & Compliance\",\n            \"visible\": true,\n            \"createdAt\": \"2023-06-15T08:00:00Z\",\n            \"updatedAt\": \"2024-01-10T14:30:00Z\"\n        },\n        {\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"live learning\",\n            \"shortName\": \"FIRSTAID\",\n            \"description\": \"Hands-on first aid certification course.\",\n            \"categoryId\": 5,\n            \"categoryName\": \"Safety & Compliance\",\n            \"visible\": true,\n            \"createdAt\": \"2023-08-20T10:00:00Z\",\n            \"updatedAt\": \"2024-01-15T09:00:00Z\"\n        },\n        {\n            \"contentId\": 345,\n            \"contentName\": \"Company Policies Handbook\",\n            \"contentType\": \"resource\",\n            \"shortName\": \"POLICIES\",\n            \"description\": \"Digital copy of company policies and procedures.\",\n            \"categoryId\": 2,\n            \"categoryName\": \"HR & Policies\",\n            \"visible\": true,\n            \"createdAt\": \"2023-01-05T12:00:00Z\",\n            \"updatedAt\": \"2024-01-01T00:00:00Z\"\n        }\n    ]\n}"}],"_postman_id":"88693857-f7d0-406f-b00d-9288593a6d4a"},{"name":"Create Bookmark","id":"e1d76604-b5d2-4aed-84c9-c4f7af021b00","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"sherlock.holmes@example.com\",\n    \"contentId\": 123,\n    \"contentType\": \"course\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_administration/index.php/api/1/bookmarks/{{tenancy_id}}","description":"<p>Create a bookmark for a user on a specific piece of content.</p>\n<h3 id=\"request-body\">Request Body</h3>\n<ul>\n<li><code>username</code> — <strong>Required</strong> string of the username.</li>\n<li><code>contentId</code> — <strong>Required</strong> integer ID of the content to bookmark.</li>\n<li><code>contentType</code> — <strong>Required</strong> string type of content (course, live learning, etc.).</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","api","1","bookmarks","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"21ebf070-638f-4907-bef3-ba32b74c347b","name":"Success Example (201 Created)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"username\": \"sherlock.holmes@example.com\",\n    \"contentId\": 123,\n    \"contentType\": \"course\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_administration/index.php/api/1/bookmarks/{{tenancy_id}}"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Bookmark created successfully.\",\n    \"bookmark\": {\n        \"bookmarkId\": 10001,\n        \"userId\": 456,\n        \"contentId\": 123,\n        \"contentName\": \"Introduction to Safety\",\n        \"contentType\": \"course\",\n        \"createdAt\": \"2024-01-21T12:30:00Z\"\n    }\n}"}],"_postman_id":"e1d76604-b5d2-4aed-84c9-c4f7af021b00"}],"id":"0fc69319-53d5-4b82-9946-64f027889d64","description":"<p>Content includes all content within the LMS. The primary use of this endpoint is to retrieve content IDs for use with other endpoints.</p>\n","_postman_id":"0fc69319-53d5-4b82-9946-64f027889d64","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Completions ","item":[{"name":"Completions ","id":"bafc032b-de84-43f8-a428-02bf000f1e91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/completions","description":"<p>Completions include all current and archived completions within the LMS. Each completion record includes details about the user and the piece of content that was completed.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1.1","tenancies","{{tenancy_id}}","completions"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12345"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true suspended users will be included</p>\n","type":"text/plain"},"key":"showSuspended","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true completion records will include enrolled and in progress users</p>\n","type":"text/plain"},"key":"includeEnrolments","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true completion records will include all custom user fields</p>\n","type":"text/plain"},"key":"userFields","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true custom course fields for courses will be included</p>\n","type":"text/plain"},"key":"contentFields","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by specific content ID</p>\n","type":"text/plain"},"key":"contentId","value":"1234"},{"disabled":true,"description":{"content":"<p>string - optional, filter results by content type. Available values: course, live learning, video, resource</p>\n","type":"text/plain"},"key":"contentType","value":"course"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true includes records that are not yet completed (enrolled/in progress)</p>\n","type":"text/plain"},"key":"showNotCompleted","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true results will be paginated. Use with page and perPage parameters</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, the page number for paginated results (default: 1). Requires paginate=true</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"15"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true and paginate=true, disables the polling mechanism for faster responses</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"false"}],"variable":[]}},"response":[{"id":"c4e52b4c-b039-407d-98b1-400b256c3730","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/completions"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestid\": 12348,\n    \"status\": \"complete\",\n    \"data\": [\n        {\n            \"completionId\": 2001,\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"email\": \"sherlock.holmes@example.com\",\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"Course\",\n            \"completionStatus\": \"complete\",\n            \"dateCompleted\": \"2024-01-15T10:30:00Z\",\n            \"grade\": 85.5,\n            \"certificateUrl\": \"https://example.com/certificates/2001\"\n        },\n        {\n            \"completionId\": 2002,\n            \"userId\": 457,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"email\": \"sherlock.holmes@example.com\",\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"Live Learning\",\n            \"completionStatus\": \"complete\",\n            \"dateCompleted\": \"2024-02-20T17:00:00Z\",\n            \"grade\": null,\n            \"certificateUrl\": \"https://example.com/certificates/2002\"\n        }\n    ]\n}"}],"_postman_id":"bafc032b-de84-43f8-a428-02bf000f1e91"},{"name":"Completions ","id":"963fb510-25e7-4bce-8536-94190b5fa8a1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"contentName\": \"Excel: Starting With the Basics\",\n    \"contentId\": \"714\",\n    \"contentType\": \"Course\",\n    \"username\": \"sherlock.holmes@example.com\",\n    \"dateCompleted\": \"2023-05-10T05:15:23Z\",\n    \"comment\": \"Complete from Recognition of Prior Learning\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/completions","description":"<p>Upload a user completion record into Acorn LMS. This endpoint only supports one completion per request.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","completions"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"e7be0d19-65bc-4c79-8db9-a561ebc24416","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"contentName\": \"Excel: Starting With the Basics\",\n    \"contentId\": \"714\",\n    \"contentType\": \"Course\",\n    \"username\": \"sherlock.holmes@example.com\",\n    \"dateCompleted\": \"2023-05-10T05:15:23Z\",\n    \"comment\": \"Complete from Recognition of Prior Learning\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/completions"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Completion record created successfully\",\n    \"data\": {\n        \"completionId\": 2003,\n        \"userId\": 458,\n        \"username\": \"sherlock.holmes@example.com\",\n        \"contentId\": 714,\n        \"contentName\": \"Excel: Starting With the Basics\",\n        \"contentType\": \"Course\",\n        \"dateCompleted\": \"2023-05-10T05:15:23Z\",\n        \"comment\": \"Complete from Recognition of Prior Learning\"\n    }\n}"},{"id":"d2e3eea5-d7d7-4ab8-956b-6c4176eec6c2","name":"Validation Error Example (400 Bad Request)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"contentName\": \"Excel: Starting With the Basics\",\n    \"username\": \"nonexistent@example.com\",\n    \"dateCompleted\": \"2023-05-10T05:15:23Z\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/completions"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"errors\": {\n        \"username\": \"User not found in the specified tenancy.\",\n        \"contentType\": \"Content type is required.\"\n    }\n}"}],"_postman_id":"963fb510-25e7-4bce-8536-94190b5fa8a1"}],"id":"22441092-f3a9-4946-836f-bb6a6ff40d55","description":"<p>Completions include all current and archived completions within the LMS. Each completion record includes details about the user and the piece of content that was completed.</p>\n","_postman_id":"22441092-f3a9-4946-836f-bb6a6ff40d55","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Course Enrolment ","item":[{"name":"Course Enrolment ","id":"10a23a79-358f-49b8-a932-b703656ca802","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1/enrolments/{{tenancy_id}}?username=sherlock.holmes@example.com&contentId=456","description":"<p>Enrol an individual user in a course. Pass the username and contentId as query parameters. The enrolment is created immediately and the user can begin the course as soon as they sign in.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_coursemanagement","index.php","api","1","enrolments","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>string - required, the username of the user whose training history is being retrieved</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes@example.com"},{"description":{"content":"<p>integer - required, the contentId of the course</p>\n","type":"text/plain"},"key":"contentId","value":"456"}],"variable":[]}},"response":[{"id":"ec9768cb-efda-4785-97d8-9e70dbd9c841","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"url":{"raw":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1/enrolments/{{tenancy_id}}?username=sherlock.holmes@example.com&contentId=123","host":["{{base_url}}"],"path":["local","acorn_coursemanagement","index.php","api","1","enrolments","{{tenancy_id}}"],"query":[{"key":"username","value":"sherlock.holmes@example.com"},{"key":"contentId","value":"123"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"User successfully enrolled in the course.\",\n    \"data\": {\n        \"enrolmentId\": 3001,\n        \"userId\": 456,\n        \"username\": \"sherlock.holmes@example.com\",\n        \"contentId\": 123,\n        \"contentName\": \"Introduction to Safety\",\n        \"enrolledAt\": \"2024-01-20T09:00:00Z\",\n        \"status\": \"enrolled\"\n    }\n}"},{"id":"30462a2b-e57e-425d-8aa0-254c83031940","name":"Already Enrolled Example (400 Bad Request)","originalRequest":{"method":"POST","header":[],"url":{"raw":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1/enrolments/{{tenancy_id}}?username=sherlock.holmes@example.com&contentId=123","host":["{{base_url}}"],"path":["local","acorn_coursemanagement","index.php","api","1","enrolments","{{tenancy_id}}"],"query":[{"key":"username","value":"sherlock.holmes@example.com"},{"key":"contentId","value":"123"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"errors\": {\n        \"enrolment\": \"User is already enrolled in this course.\"\n    }\n}"}],"_postman_id":"10a23a79-358f-49b8-a932-b703656ca802"}],"id":"062bda20-5aeb-4e54-98cc-b20e2acc7ca1","description":"<p>Course enrolment allows you to enrol an individual user in a course within the LMS. The enrolment is created immediately and the user can begin the course's activities as soon as they sign in.</p>\n","_postman_id":"062bda20-5aeb-4e54-98cc-b20e2acc7ca1","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"External Catalogue ","item":[{"name":"External Catalogue","id":"2b7f219e-9103-4828-afae-a0f8f88051e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1.1/external_catalogue/{{tenancy_id}}","description":"<p>Retrieve content from the LMS catalogue for display on an external website or intranet. Filter by content type, name, program, category, or tags.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_coursemanagement","index.php","api","1.1","external_catalogue","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"16"},{"disabled":true,"description":{"content":"<p>integer - optional, specify the page number for pagination purposes</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>string - optional, the username of the user viewing the catalogue</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes@example.com"},{"disabled":true,"description":{"content":"<p>string - optional, filter by content type (e.g., course, live learning, resource, video, page, program, partnered content)</p>\n","type":"text/plain"},"key":"contentType","value":"course"},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by a specific content ID</p>\n","type":"text/plain"},"key":"contentId","value":"1731"},{"disabled":true,"description":{"content":"<p>string - optional, filter results by content name (partial match)</p>\n","type":"text/plain"},"key":"nameFilter","value":""},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by program ID</p>\n","type":"text/plain"},"key":"programId","value":"123"},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by category ID</p>\n","type":"text/plain"},"key":"categoryId","value":"12"},{"disabled":true,"description":{"content":"<p>string - optional, comma-separated list of tag IDs to filter by</p>\n","type":"text/plain"},"key":"tagIds","value":"11"}],"variable":[]}},"response":[{"id":"0a36e900-b5f1-40a0-bc5b-4eacb31dc165","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1.1/external_catalogue/{{tenancy_id}}?perPage=16","host":["{{base_url}}"],"path":["local","acorn_coursemanagement","index.php","api","1.1","external_catalogue","{{tenancy_id}}"],"query":[{"key":"perPage","value":"16"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"course\",\n            \"shortDescription\": \"Learn the fundamentals of workplace safety.\",\n            \"thumbnailUrl\": \"https://example.com/images/safety-course.jpg\",\n            \"duration\": \"2 hours\",\n            \"categoryName\": \"Safety & Compliance\",\n            \"tags\": [\"safety\", \"compliance\", \"workplace\"],\n            \"rating\": 4.5,\n            \"enrollmentCount\": 150\n        },\n        {\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"live learning\",\n            \"shortDescription\": \"Hands-on first aid certification.\",\n            \"thumbnailUrl\": \"https://example.com/images/first-aid.jpg\",\n            \"duration\": \"8 hours\",\n            \"categoryName\": \"Safety & Compliance\",\n            \"tags\": [\"first aid\", \"certification\"],\n            \"rating\": 4.8,\n            \"enrollmentCount\": 75\n        }\n    ],\n    \"current_page\": 1,\n    \"per_page\": 16,\n    \"total\": 45,\n    \"last_page\": 3\n}"}],"_postman_id":"2b7f219e-9103-4828-afae-a0f8f88051e0"},{"name":"Generate Certificate External","id":"a904cc8d-ee26-4a6b-b844-4589c255bb77","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_coursemanagement/index.php/generate_certificate_external/{{tenancy_id}}/:contentId/:contentType/:completionTime/:userId","description":"<p>Generate and download a certificate for a user's completion of content.</p>\n<h3 id=\"url-parameters\">URL Parameters</h3>\n<ul>\n<li><code>tenancyId</code> — <strong>Required</strong> integer, the tenancy ID.</li>\n<li><code>contentId</code> — <strong>Required</strong> integer, the ID of the completed content.</li>\n<li><code>contentType</code> — <strong>Required</strong> string, the type of content (e.g., 'course', 'live_learning').</li>\n<li><code>completionTime</code> — <strong>Required</strong> integer, Unix timestamp of when the completion occurred.</li>\n<li><code>userId</code> — <strong>Required</strong> integer, the user ID.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<p>Returns a PDF file download of the certificate.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_coursemanagement","index.php","generate_certificate_external","{{tenancy_id}}",":contentId",":contentType",":completionTime",":userId"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"90e51f9f-3238-4f78-a1d2-c00f0db5c0ee","description":{"content":"<p>The ID of the completed content</p>\n","type":"text/plain"},"type":"any","value":"5","key":"contentId"},{"id":"d542aef2-7af0-4f7c-9b40-dac5cac13bdf","description":{"content":"<p>The type of content (e.g., 'course', 'live_learning')</p>\n","type":"text/plain"},"type":"any","value":"course","key":"contentType"},{"id":"2df04f22-0e67-4090-b06e-48bac34f6981","description":{"content":"<p>Unix timestamp of when the completion occurred</p>\n","type":"text/plain"},"type":"any","value":"1771554118","key":"completionTime"},{"id":"020f1c4a-7d6e-4c80-859c-79059cde96e8","description":{"content":"<p>The user ID</p>\n","type":"text/plain"},"type":"any","value":"6","key":"userId"}]}},"response":[{"id":"b5a63ff5-abf2-47ae-84e5-04147db27488","name":"Success Example (200 OK - PDF Download)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_coursemanagement/index.php/generate_certificate_external/{{tenancy_id}}/:contentId/:contentType/:completionTime/:userId","host":["{{base_url}}"],"path":["local","acorn_coursemanagement","index.php","generate_certificate_external","{{tenancy_id}}",":contentId",":contentType",":completionTime",":userId"],"variable":[{"key":"contentId","value":"123","description":"The ID of the completed content"},{"key":"contentType","value":"course","description":"The type of content (e.g., 'course', 'live_learning')"},{"key":"completionTime","value":"1705320600","description":"Unix timestamp of when the completion occurred"},{"key":"userId","value":"456","description":"The user ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","value":"application/pdf"},{"key":"Content-Disposition","value":"attachment; filename=\"certificate_123_456.pdf\""},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[PDF binary content - certificate download]"}],"_postman_id":"a904cc8d-ee26-4a6b-b844-4589c255bb77"}],"id":"7d4368a2-7bd0-48a8-a783-023b41af2a41","description":"<p>The external catalogue allows you to retrieve content from within the LMS in order to display it on an external website or intranet.</p>\n","_postman_id":"7d4368a2-7bd0-48a8-a783-023b41af2a41","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"External Course ","item":[{"name":"External Course ","id":"6b5aa515-c943-4467-b0e2-1edab16a31d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1/external_catalogue/{{tenancy_id}}/course/:contentId","description":"<p>Retrieve the content of an individual course from the LMS by content ID. Useful for displaying course details on an external website.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_coursemanagement","index.php","api","1","external_catalogue","{{tenancy_id}}","course",":contentId"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>string - optional, the username of the user viewing the course</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes@example.com"}],"variable":[{"id":"4fb77c9a-3a09-4fa8-8f36-4fa946399369","description":{"content":"<p>The unique ID of the content/course to retrieve</p>\n","type":"text/plain"},"type":"any","value":"123","key":"contentId"}]}},"response":[{"id":"466e1b65-8392-491e-9335-6601dcd318f9","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_coursemanagement/index.php/api/1/external_catalogue/{{tenancy_id}}/course/:contentId","host":["{{base_url}}"],"path":["local","acorn_coursemanagement","index.php","api","1","external_catalogue","{{tenancy_id}}","course",":contentId"],"variable":[{"key":"contentId","value":"123","description":"The unique ID of the content/course to retrieve"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"contentId\": 123,\n    \"contentName\": \"Introduction to Safety\",\n    \"contentType\": \"course\",\n    \"fullName\": \"Introduction to Workplace Safety\",\n    \"shortName\": \"SAFETY101\",\n    \"description\": \"<p>A comprehensive introduction to workplace safety covering hazard identification, risk assessment, and emergency procedures.</p>\",\n    \"thumbnailUrl\": \"https://example.com/images/safety-course.jpg\",\n    \"duration\": \"2 hours\",\n    \"categoryId\": 5,\n    \"categoryName\": \"Safety & Compliance\",\n    \"tags\": [\"safety\", \"compliance\", \"workplace\"],\n    \"prerequisites\": [],\n    \"sections\": [\n        {\n            \"sectionId\": 1,\n            \"sectionName\": \"Introduction\",\n            \"activities\": [\n                {\"activityId\": 101, \"activityName\": \"Welcome Video\", \"activityType\": \"video\"},\n                {\"activityId\": 102, \"activityName\": \"Course Overview\", \"activityType\": \"page\"}\n            ]\n        },\n        {\n            \"sectionId\": 2,\n            \"sectionName\": \"Hazard Identification\",\n            \"activities\": [\n                {\"activityId\": 103, \"activityName\": \"Types of Hazards\", \"activityType\": \"lesson\"},\n                {\"activityId\": 104, \"activityName\": \"Hazard Quiz\", \"activityType\": \"quiz\"}\n            ]\n        }\n    ],\n    \"rating\": 4.5,\n    \"enrollmentCount\": 150,\n    \"createdAt\": \"2023-06-15T08:00:00Z\",\n    \"updatedAt\": \"2024-01-10T14:30:00Z\"\n}"}],"_postman_id":"6b5aa515-c943-4467-b0e2-1edab16a31d3"}],"id":"dfb061d6-fb17-4e58-a5d0-cf45ec9ebd21","description":"<p>External course allows you to retrieve the content of an individual course from within the LMS.</p>\n","_postman_id":"dfb061d6-fb17-4e58-a5d0-cf45ec9ebd21","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"External Calendar ","item":[{"name":"External Calendar ","id":"313824b3-c2fc-4e9e-a65d-277077309580","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_profile/index.php/api/1/external_calendar/{{tenancy_id}}","description":"<p>Retrieve calendar events (Live Learnings and sessions) scheduled within the LMS. Filter the results by date range, or restrict the response to events that are not cohort-restricted.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_profile","index.php","api","1","external_calendar","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>date (YYYY-MM-DDTHH:MM:SSZ) - optional, ISO 8601 date &amp; time format</p>\n","type":"text/plain"},"key":"start","value":"2025-01-01T00:00:00Z"},{"disabled":true,"description":{"content":"<p>date (YYYY-MM-DDTHH:MM:SSZ) - optional, ISO 8601 date &amp; time format</p>\n","type":"text/plain"},"key":"end","value":"2026-01-01T23:59:59Z"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true only returns events that are not cohort-restricted</p>\n","type":"text/plain"},"key":"noCohortRestriction","value":"true"}],"variable":[]}},"response":[{"id":"c376cdce-2dcb-4892-89a7-c6040fd422f0","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_profile/index.php/api/1/external_calendar/{{tenancy_id}}?start=2024-01-01T00:00:00Z&end=2024-01-31T23:59:59Z","host":["{{base_url}}"],"path":["local","acorn_profile","index.php","api","1","external_calendar","{{tenancy_id}}"],"query":[{"key":"start","value":"2024-01-01T00:00:00Z"},{"key":"end","value":"2024-01-31T23:59:59Z"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"events\": [\n        {\n            \"eventId\": 4001,\n            \"title\": \"First Aid Training - Session 1\",\n            \"description\": \"Hands-on first aid training session.\",\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"Live Learning\",\n            \"start\": \"2024-01-15T09:00:00Z\",\n            \"end\": \"2024-01-15T17:00:00Z\",\n            \"location\": \"Training Room A\",\n            \"facilitator\": \"Dr. Sarah Johnson\",\n            \"maxParticipants\": 20,\n            \"currentParticipants\": 15,\n            \"availableSeats\": 5\n        },\n        {\n            \"eventId\": 4002,\n            \"title\": \"Leadership Workshop\",\n            \"description\": \"Interactive leadership development workshop.\",\n            \"contentId\": 567,\n            \"contentName\": \"Leadership Essentials\",\n            \"contentType\": \"Live Learning\",\n            \"start\": \"2024-01-22T10:00:00Z\",\n            \"end\": \"2024-01-22T16:00:00Z\",\n            \"location\": \"Conference Room B\",\n            \"facilitator\": \"Michael Chen\",\n            \"maxParticipants\": 15,\n            \"currentParticipants\": 12,\n            \"availableSeats\": 3\n        }\n    ]\n}"}],"_postman_id":"313824b3-c2fc-4e9e-a65d-277077309580"}],"id":"5d1288fc-957e-40b9-b1be-ad157b9323a9","description":"<p>The external calendar allows you to retrieve calendar events (Live Learnings and sessions) scheduled within the LMS. Filter the results by date range, or restrict the response to cohort-relevant events only.</p>\n","_postman_id":"5d1288fc-957e-40b9-b1be-ad157b9323a9","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Onboarding Users ","item":[{"name":"Onboarding Users ","id":"d61d9f22-16da-4f32-a59d-de82395e60da","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/local/acorn_onboarding/index.php/api/1/tenancies/{{tenancy_id}}/onboardingusers?firstName=Sherlock&lastName=Holmes&email=sherlock.holmes@example.com&mobileNumber=+61412345678&commencementDate=2026-01-01T14:44:55Z","description":"<p>Create an onboarding record for a new starter. Required fields include name, email, mobile number, and commencement date. Optional fields cover manager details, branch, location, and employment status.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_onboarding","index.php","api","1","tenancies","{{tenancy_id}}","onboardingusers"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>string - required, max length 100 chars</p>\n","type":"text/plain"},"key":"firstName","value":"Sherlock"},{"description":{"content":"<p>string - required, max length 100 chars</p>\n","type":"text/plain"},"key":"lastName","value":"Holmes"},{"description":{"content":"<p>string - required, max length 100 chars</p>\n","type":"text/plain"},"key":"email","value":"sherlock.holmes@example.com"},{"description":{"content":"<p>string - required, all mobile formats accepted</p>\n","type":"text/plain"},"key":"mobileNumber","value":"+61412345678"},{"description":{"content":"<p>date (YYYY-MM-DDTHH:MM:SSZ) - required, ISO 8601 date &amp; time format</p>\n","type":"text/plain"},"key":"commencementDate","value":"2026-01-01T14:44:55Z"},{"disabled":true,"description":{"content":"<p>string - optional, the first name of the user's manager</p>\n","type":"text/plain"},"key":"managerFirstName","value":""},{"disabled":true,"description":{"content":"<p>string - optional, the last name of the user's manager</p>\n","type":"text/plain"},"key":"managerLastName","value":""},{"disabled":true,"description":{"content":"<p>string - optional, the email of the user's manager</p>\n","type":"text/plain"},"key":"managerEmail","value":""},{"disabled":true,"description":{"content":"<p>string - optional, the branch/division the user belongs to</p>\n","type":"text/plain"},"key":"branch","value":""},{"disabled":true,"description":{"content":"<p>string - optional, the user's work location</p>\n","type":"text/plain"},"key":"location","value":""},{"disabled":true,"description":{"content":"<p>string - optional, the user's employment status</p>\n","type":"text/plain"},"key":"status","value":""}],"variable":[]}},"response":[{"id":"5675613c-5f86-4e55-b514-3a8373812281","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"url":{"raw":"{{base_url}}/local/acorn_onboarding/index.php/api/1/tenancies/{{tenancy_id}}/onboardingusers?firstName=Sherlock&lastName=Holmes&email=sherlock.holmes@example.com&mobileNumber=+61412345678&commencementDate=2024-02-01T09:00:00Z","host":["{{base_url}}"],"path":["local","acorn_onboarding","index.php","api","1","tenancies","{{tenancy_id}}","onboardingusers"],"query":[{"key":"firstName","value":"Sherlock"},{"key":"lastName","value":"Holmes"},{"key":"email","value":"sherlock.holmes@example.com"},{"key":"mobileNumber","value":"+61412345678"},{"key":"commencementDate","value":"2024-02-01T09:00:00Z"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Onboarding user created successfully.\",\n    \"data\": {\n        \"onboardingUserId\": 5001,\n        \"userId\": 789,\n        \"username\": \"sherlock.holmes@example.com\",\n        \"firstName\": \"Sherlock\",\n        \"lastName\": \"Holmes\",\n        \"email\": \"sherlock.holmes@example.com\",\n        \"mobileNumber\": \"+61 412 345 678\",\n        \"commencementDate\": \"2024-02-01T09:00:00Z\",\n        \"status\": \"pending\",\n        \"createdAt\": \"2024-01-20T10:00:00Z\"\n    }\n}"},{"id":"871c440f-cf42-49ff-87f5-42c31aff2c80","name":"Validation Error Example (400 Bad Request)","originalRequest":{"method":"POST","header":[],"url":{"raw":"{{base_url}}/local/acorn_onboarding/index.php/api/1/tenancies/{{tenancy_id}}/onboardingusers?firstName=&lastName=&email=invalid-email","host":["{{base_url}}"],"path":["local","acorn_onboarding","index.php","api","1","tenancies","{{tenancy_id}}","onboardingusers"],"query":[{"key":"firstName","value":""},{"key":"lastName","value":""},{"key":"email","value":"invalid-email"}]}},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": false,\n    \"errors\": {\n        \"firstName\": \"First name is required.\",\n        \"lastName\": \"Last name is required.\",\n        \"email\": \"Please provide a valid email address.\",\n        \"mobileNumber\": \"Mobile number is required.\",\n        \"commencementDate\": \"Commencement date is required.\"\n    }\n}"}],"_postman_id":"d61d9f22-16da-4f32-a59d-de82395e60da"}],"id":"92b4581b-c92e-4663-94f3-7e3f5d1b27a2","description":"<p>Onboarding users are new starters at their place of employment. Use this endpoint to create an onboarding record with the user's name, email, mobile number, and commencement date, plus optional manager, branch, location, and status details.</p>\n","_postman_id":"92b4581b-c92e-4663-94f3-7e3f5d1b27a2","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Training History ","item":[{"name":"Training History ","id":"7f4cd9f1-3178-4cca-95f0-c5dd05e606b8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_profile/index.php/api/1/training_history?tenancyId=1265&username=sherlock.holmes%2540example.com","description":"<p>Retrieve the complete training history for a single user, including completion, enrolment, and attendance records. Pass the user's username and tenancyId as query parameters.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_profile","index.php","api","1","training_history"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>integer - required, the ID of the tenancy the user belongs to</p>\n","type":"text/plain"},"key":"tenancyId","value":"1265"},{"description":{"content":"<p>string - required, the username of the user whose training history is being retrieved</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes%2540example.com"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true and paginate=true, disables the polling mechanism for faster responses</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"false"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true results will be paginated. Use with page and perPage parameters</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, the page number for paginated results (default: 1). Requires paginate=true</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"100"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true, returns course completion history records with a completion status of Did Not Complete.</p>\n","type":"text/plain"},"key":"showNotCompleted","value":"true"}],"variable":[]}},"response":[{"id":"98fee5c5-3d16-461b-af72-2edc425024f7","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_profile/index.php/api/1/training_history?tenancyId={{tenancy_id}}&username=sherlock.holmes@example.com","host":["{{base_url}}"],"path":["local","acorn_profile","index.php","api","1","training_history"],"query":[{"key":"tenancyId","value":"{{tenancy_id}}"},{"key":"username","value":"sherlock.holmes@example.com"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"user\": {\n        \"userId\": 456,\n        \"username\": \"sherlock.holmes@example.com\",\n        \"firstName\": \"Sherlock\",\n        \"lastName\": \"Holmes\",\n        \"email\": \"sherlock.holmes@example.com\"\n    },\n    \"completions\": [\n        {\n            \"completionId\": 2001,\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"Course\",\n            \"dateCompleted\": \"2024-01-15T10:30:00Z\",\n            \"grade\": 85.5,\n            \"certificateUrl\": \"https://example.com/certificates/2001\"\n        },\n        {\n            \"completionId\": 2002,\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"Live Learning\",\n            \"dateCompleted\": \"2024-02-20T17:00:00Z\",\n            \"grade\": null,\n            \"certificateUrl\": \"https://example.com/certificates/2002\"\n        }\n    ],\n    \"enrolments\": [\n        {\n            \"enrolmentId\": 3001,\n            \"contentId\": 345,\n            \"contentName\": \"Advanced Leadership\",\n            \"contentType\": \"Course\",\n            \"enrolledAt\": \"2024-01-20T09:00:00Z\",\n            \"status\": \"in_progress\",\n            \"progress\": 65\n        }\n    ],\n    \"attendance\": [\n        {\n            \"attendanceId\": 501,\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"sessionDate\": \"2024-02-20T09:00:00Z\",\n            \"attendanceStatus\": \"present\"\n        }\n    ]\n}"}],"_postman_id":"7f4cd9f1-3178-4cca-95f0-c5dd05e606b8"}],"id":"bcdc76a9-e506-4c71-a707-d5dc0e9e3b4d","description":"<p>Training history includes all completion, enrolment and attendance history for a single user.</p>\n","_postman_id":"bcdc76a9-e506-4c71-a707-d5dc0e9e3b4d","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Transactions ","item":[{"name":"Transactions ","id":"1587ea40-8092-4841-a260-7a2d2086a03b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/api/1/transactions/{{tenancy_id}}","description":"<p>Retrieve all transactions for the tenancy, including course purchases, licence payments, and coupon redemptions. Each record includes the user, the content purchased, the amount, and the timestamp.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","api","1","transactions","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid</p>\n","type":"text/plain"},"key":"requestid","value":"123456"}],"variable":[]}},"response":[{"id":"98d27749-a68e-4f91-b123-6d138a30c1d6","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/api/1/transactions/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestid\": 12349,\n    \"status\": \"complete\",\n    \"data\": [\n        {\n            \"transactionId\": 6001,\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"contentId\": 123,\n            \"contentName\": \"Introduction to Safety\",\n            \"contentType\": \"Course\",\n            \"amount\": 99.00,\n            \"currency\": \"AUD\",\n            \"paymentMethod\": \"credit_card\",\n            \"transactionDate\": \"2024-01-10T14:30:00Z\",\n            \"status\": \"completed\",\n            \"invoiceNumber\": \"INV-2024-0001\"\n        },\n        {\n            \"transactionId\": 6002,\n            \"userId\": 457,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"contentId\": 234,\n            \"contentName\": \"First Aid Training\",\n            \"contentType\": \"Live Learning\",\n            \"amount\": 250.00,\n            \"currency\": \"AUD\",\n            \"paymentMethod\": \"invoice\",\n            \"transactionDate\": \"2024-02-15T09:00:00Z\",\n            \"status\": \"completed\",\n            \"invoiceNumber\": \"INV-2024-0015\"\n        }\n    ]\n}"}],"_postman_id":"1587ea40-8092-4841-a260-7a2d2086a03b"}],"id":"ae770541-9c57-41f2-96fc-2c0859420993","description":"<p>Transactions contain the details of all purchases within the LMS, such as course purchases, licence payments, and coupon redemptions. Each transaction record includes the user, the content purchased, the amount, and the timestamp.</p>\n","_postman_id":"ae770541-9c57-41f2-96fc-2c0859420993","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"User Accounts ","item":[{"name":"User Accounts ","id":"e53388f8-c783-4c74-9f93-b1fa7a66a306","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/useraccounts","description":"<p>Retrieve a list of all user accounts in the tenancy. Each record includes the user's name, email, suspended status, any custom user fields configured for the tenancy, and a <code>previousaccounts</code> array of any prior user IDs that have been merged into this account.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1.1","tenancies","{{tenancy_id}}","useraccounts"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid</p>\n","type":"text/plain"},"key":"requestid","value":"309"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true suspended user accounts will be included</p>\n","type":"text/plain"},"key":"showSuspended","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true user account records will include all custom user fields</p>\n","type":"text/plain"},"key":"userFields","value":"true"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true results will be paginated. Use with page and perPage parameters</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, the page number for paginated results (default: 1). Requires paginate=true</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, the number of results per page. Maximum 100. Requires paginate=true</p>\n","type":"text/plain"},"key":"perPage","value":"15"},{"disabled":true,"description":{"content":"<p>boolean - optional, if true and paginate=true, disables the polling mechanism for faster responses</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"false"}],"variable":[]}},"response":[{"id":"da8ee820-282e-49e3-8374-3d403296746f","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/useraccounts"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"requestid\": 12350,\n    \"status\": \"complete\",\n    \"data\": [\n        {\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"email\": \"sherlock.holmes@example.com\",\n            \"suspended\": false,\n            \"createdAt\": \"2023-06-01T10:00:00Z\",\n            \"lastAccess\": \"2024-01-20T15:30:00Z\",\n            \"previousaccounts\": [113, 123]\n        },\n        {\n            \"userId\": 457,\n            \"username\": \"john.watson@example.com\",\n            \"firstName\": \"John\",\n            \"lastName\": \"Watson\",\n            \"email\": \"john.watson@example.com\",\n            \"suspended\": false,\n            \"createdAt\": \"2023-08-15T09:00:00Z\",\n            \"lastAccess\": \"2024-01-19T11:00:00Z\",\n            \"previousaccounts\": []\n        }\n    ]\n}"}],"_postman_id":"e53388f8-c783-4c74-9f93-b1fa7a66a306"},{"name":"User Accounts ","id":"3e795062-5d5d-4149-b934-74425e90e356","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"firstName\":\"Sherlock\",\n    \"lastName\": \"Holmes\",\n    \"email\": \"sherlock.holmes@example.com\",\n    \"username\": \"sherlock.holmes@example.com\",\n    \"suspended\": \"false\",\n    \"userData\":  {\n        \"CustomField1\": \"value\",\n        \"CustomField2\": \"value\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/useraccounts/:userId","description":"<p>Update an existing user account by ID. Pass the user's ID as the path variable and any fields you want to change in the body — supports name, email, username, suspended status, and custom user fields.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1.1","tenancies","{{tenancy_id}}","useraccounts",":userId"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"55a0ad23-7de7-4e1b-9c7d-1c14f6080e26","description":{"content":"<p>The user ID to update</p>\n","type":"text/plain"},"type":"any","value":"456","key":"userId"}]}},"response":[{"id":"57b1eb11-7f0e-4332-a6ef-e6f3c41c08a2","name":"Success Example (200 OK)","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"firstName\":\"Sherlock\",\n    \"lastName\": \"Holmes\",\n    \"email\": \"sherlock.holmes@example.com\",\n    \"username\": \"sherlock.holmes@example.com\",\n    \"suspended\": \"false\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/useraccounts/:userId","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1.1","tenancies","{{tenancy_id}}","useraccounts",":userId"],"variable":[{"key":"userId","value":"456","description":"The user ID to update"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"User account updated successfully.\",\n    \"data\": {\n        \"userId\": 456,\n        \"username\": \"sherlock.holmes@example.com\",\n        \"firstName\": \"Sherlock\",\n        \"lastName\": \"Holmes\",\n        \"email\": \"sherlock.holmes@example.com\",\n        \"suspended\": false,\n        \"updatedAt\": \"2024-01-21T10:00:00Z\"\n    }\n}"}],"_postman_id":"3e795062-5d5d-4149-b934-74425e90e356"},{"name":"User Accounts ","id":"841c7cc9-e10f-4487-952b-ac8c7a5886d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"firstName\":\"Sherlock\",\n    \"lastName\": \"Holmes\",\n    \"email\": \"sherlock.holmes@example.com\",\n    \"username\": \"sherlock.holmes@example.com\",\n    \"notify\": true,\n    \"password\": \"XXXXXXXX\",\n    \"confirmPassword\": \"XXXXXXXX\",\n    \"userData\":{\n        \"CustomField1\": \"Value\",\n        \"CustomField2\": \"Value\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/useraccounts","description":"<p>Create a new user account in the LMS. Required fields include username, email, password, and password confirmation. Supports optional welcome notifications, suspended state, and custom user fields.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1.1","tenancies","{{tenancy_id}}","useraccounts"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"fd40ffb6-d4f9-49f3-9b62-0e0ba0437ae0","name":"Success Example (201 Created)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"firstName\":\"Sherlock\",\n    \"lastName\": \"Holmes\",\n    \"email\": \"sherlock.holmes@example.com\",\n    \"username\": \"sherlock.holmes@example.com\",\n    \"notify\": true,\n    \"password\": \"SecurePass123!\",\n    \"confirmPassword\": \"SecurePass123!\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1.1/tenancies/{{tenancy_id}}/useraccounts"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"User account created successfully.\",\n    \"data\": {\n        \"userId\": 790,\n        \"username\": \"sherlock.holmes@example.com\",\n        \"firstName\": \"Sherlock\",\n        \"lastName\": \"Holmes\",\n        \"email\": \"sherlock.holmes@example.com\",\n        \"suspended\": false,\n        \"createdAt\": \"2024-01-21T10:30:00Z\"\n    }\n}"}],"_postman_id":"841c7cc9-e10f-4487-952b-ac8c7a5886d3"}],"id":"ea44cc1f-4829-4fe1-8f22-f68ce86a4580","description":"<p>User accounts are individual user records within the LMS. Use these endpoints to list all accounts in the tenancy, create new user accounts, or update existing accounts with new details (name, email, suspended state, custom user fields).</p>\n","_postman_id":"ea44cc1f-4829-4fe1-8f22-f68ce86a4580","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"User Uploads ","item":[{"name":"User Uploads ","id":"c8075366-92f5-49f3-a4a7-8a37ed154e0d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"csvdata\": [\n         \"username,email,firstname,lastname,Location\",\n         \"testAPI.user@example.com,testAPI.user@example.com,Test,User,Canberra ACT\"\n    ],\n    \"emailSend\": true,\n    \"notificationSend\": true,\n    \"automatic\": true \n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_usermanagement/index.php/api/1/tenancies/{{tenancy_id}}/useruploads","description":"<p>Create a large amount of user accounts in the LMS.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_usermanagement","index.php","api","1","tenancies","{{tenancy_id}}","useruploads"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"2c8536c1-18e4-4562-b965-66d9f09e2f4a","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"csvdata\": [\n         \"username,email,firstname,lastname,Location\",\n         \"testAPI.user@example.com,testAPI.user@example.com,Test,User,Canberra ACT\"\n    ],\n    \"emailSend\": true,\n    \"notificationSend\": true,\n    \"automatic\": true \n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_usermanagement/index.php/api/1/tenancies/{{tenancy_id}}/useruploads"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"User upload processed successfully.\",\n    \"data\": {\n        \"uploadId\": 7001,\n        \"totalRows\": 1,\n        \"successCount\": 1,\n        \"failureCount\": 0,\n        \"results\": [\n            {\n                \"row\": 1,\n                \"username\": \"testAPI.user@example.com\",\n                \"status\": \"created\",\n                \"userId\": 791\n            }\n        ]\n    }\n}"},{"id":"1f806470-dcba-45fb-bcb8-a26eb0de2580","name":"Partial Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"csvdata\": [\n         \"username,email,firstname,lastname,Location\",\n         \"valid.user@example.com,valid.user@example.com,Valid,User,Sydney NSW\",\n         \"invalid-email,invalid,Missing,Email,\"\n    ],\n    \"emailSend\": true,\n    \"automatic\": true \n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_usermanagement/index.php/api/1/tenancies/{{tenancy_id}}/useruploads"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"User upload processed with some errors.\",\n    \"data\": {\n        \"uploadId\": 7002,\n        \"totalRows\": 2,\n        \"successCount\": 1,\n        \"failureCount\": 1,\n        \"results\": [\n            {\n                \"row\": 1,\n                \"username\": \"valid.user@example.com\",\n                \"status\": \"created\",\n                \"userId\": 792\n            },\n            {\n                \"row\": 2,\n                \"username\": \"invalid-email\",\n                \"status\": \"failed\",\n                \"error\": \"Invalid email address format.\"\n            }\n        ]\n    }\n}"}],"_postman_id":"c8075366-92f5-49f3-a4a7-8a37ed154e0d"}],"id":"610eba65-eabb-4f9f-ba88-39dc8d963b09","description":"<p>User uploads allow you to create a large number of user accounts in the LMS in a single request. Provide CSV-formatted data inline along with notification and welcome email preferences. Useful for bulk onboarding.</p>\n","_postman_id":"610eba65-eabb-4f9f-ba88-39dc8d963b09","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Tenancy Details","item":[{"name":"Tenancy Details","id":"474cc21b-c24a-42c1-b1d8-72b6f2fac643","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancydetails","description":"<p>Retrieve information about the tenancies associated with your account, including their name, configuration, and any tenancy-level settings exposed to the API. This endpoint requires an api_key linked to <code>tenancyId=0</code> (a system-level api_key with cross-tenancy access). Contact <a href=\"https://help.acorn.works\">Acorn Support</a> to request one.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancydetails"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"db3f3abc-50fb-4ce3-91c6-1ca626bfe7b0","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancydetails"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"data\": [\n          {\n              \"id\": 1,\n              \"name\": \"Example Tenancy\",\n              \"supportcontactname\": \"Acorn Support\",\n              \"supportcontactemail\": \"support@example.com\",\n              \"supportcontactlink\": \"https://help.acorn.works\",\n              \"usercount\": 250\n          },\n          {\n              \"id\": 2,\n              \"name\": \"Sample Production Site\",\n              \"supportcontactname\": \"Acorn Support\",\n              \"supportcontactemail\": \"support@example.com\",\n              \"supportcontactlink\": \"https://help.acorn.works\",\n              \"usercount\": 1500\n          },\n          {\n              \"id\": 3,\n              \"name\": \"Demo Tenancy\",\n              \"supportcontactname\": \"Acorn Support\",\n              \"supportcontactemail\": \"support@example.com\",\n              \"supportcontactlink\": \"https://help.acorn.works\",\n              \"usercount\": 50\n          }\n      ]\n  }"}],"_postman_id":"474cc21b-c24a-42c1-b1d8-72b6f2fac643"}],"id":"4bbb4276-afc3-42dc-aff2-3467f396d940","description":"<p>Tenancy details provide information about the tenancies associated with your account, including their name, configuration, support contact, and user counts. Requires an api_key linked to <code>tenancyId=0</code> (a system-level api_key with cross-tenancy access). Contact <a href=\"https://help.acorn.works\">Acorn Support</a> to request one.</p>\n","_postman_id":"4bbb4276-afc3-42dc-aff2-3467f396d940","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Profile","item":[{"name":"User Dashboard","id":"53359cfe-599c-4257-99e4-48fabd944086","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_profile/index.php/api/1/user_dashboard?tenancyId={{tenancy_id}}&username=sherlock.holmes@example.com","description":"<p>Retrieve dashboard data for a specific user including their progress, upcoming sessions, and notifications.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_profile","index.php","api","1","user_dashboard"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>integer - required, the id of the user's tenancy</p>\n","type":"text/plain"},"key":"tenancyId","value":"{{tenancy_id}}"},{"description":{"content":"<p>string - required, the username of the user whose dashboard data is being retrieved</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes@example.com"}],"variable":[]}},"response":[{"id":"8bd24f4c-0c59-4bee-b29f-d46d20ae828c","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_profile/index.php/api/1/user_dashboard?tenancyId={{tenancy_id}}&username=sherlock.holmes@example.com","host":["{{base_url}}"],"path":["local","acorn_profile","index.php","api","1","user_dashboard"],"query":[{"key":"tenancyId","value":"{{tenancy_id}}"},{"key":"username","value":"sherlock.holmes@example.com"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"data\": {\n          \"notifcations\": [\n              {\n                  \"id\": 1,\n                  \"message\": \"Your completion became overdue\",\n                  \"contentid\": 100,\n                  \"contenttype\": \"facetoface\",\n                  \"contentname\": \"Introduction to Safety – Live Session\",\n                  \"notificationbody\": \"Due by \",\n                  \"notificationdate\": 1771744903,\n                  \"icon\": \"\",\n                  \"url\": \"https://your-acorn-instance.com/view_facetoface/100\",\n                  \"imageurl\": \"https://your-acorn-instance.com/local/acorn_shared/resources/assets/customfile.php/1/facetoface_image/\n  facetoface_image_100/0//session_cover.png\"\n              },\n              {\n                  \"id\": 2,\n                  \"message\": \"You have been enrolled into a new course\",\n                  \"contentid\": 200,\n                  \"contenttype\": \"course\",\n                  \"contentname\": \"Annual Compliance Training\",\n                  \"notificationbody\": \"\",\n                  \"notificationdate\": \"\",\n                  \"icon\": \"\",\n                  \"url\": \"https://your-acorn-instance.com/view_course/200\",\n                  \"imageurl\":\n  \"https://your-acorn-instance.com/local/acorn_shared/resources/assets/customfile.php/1/course/overviewfiles/0/course_cover.png\"\n              },\n              {\n                  \"id\": 3,\n                  \"message\": \"Congratulations on completing a course\",\n                  \"contentid\": 201,\n                  \"contenttype\": \"course\",\n                  \"contentname\": \"Workplace Safety Fundamentals\",\n                  \"notificationbody\": \"\",\n                  \"notificationdate\": \"\",\n                  \"icon\": \"\",\n                  \"url\": \"https://your-acorn-instance.com/view_course/201\",\n                  \"imageurl\": \"\"\n              }\n          ],\n          \"badges\": [],\n          \"coursestodo\": [\n              {\n                  \"id\": 200,\n                  \"name\": \"Annual Compliance Training\",\n                  \"completionstatus\": \"Enrolled\",\n                  \"percentageprogress\": 0,\n                  \"timeenrolled\": 1745306590,\n                  \"timestarted\": 0\n              },\n              {\n                  \"id\": 202,\n                  \"name\": \"Customer Service Essentials\",\n                  \"completionstatus\": \"In Progress\",\n                  \"percentageprogress\": 45,\n                  \"timeenrolled\": 1740000000,\n                  \"timestarted\": 1740100000\n              }\n          ],\n          \"programsprogress\": [\n              {\n                  \"id\": 1,\n                  \"name\": \"Compliance Program\",\n                  \"imageurl\": \"https://your-acorn-instance.com/local/acorn_shared/resources/assets/customfile.php/1/program_image/pro\n  gram_image_1/0//program_cover.png\",\n                  \"percentageprogress\": 0\n              },\n              {\n                  \"id\": 2,\n                  \"name\": \"Onboarding Program\",\n                  \"imageurl\": \"https://your-acorn-instance.com/local/acorn_shared/resources/assets/customfile.php/1/program_image/pro\n  gram_image_2/0//program_cover.png\",\n                  \"percentageprogress\": 60\n              }\n          ],\n          \"newcoursesforyou\": [\n              {\n                  \"id\": 300,\n                  \"name\": \"Cybersecurity Awareness\",\n                  \"summarytext\": \"Learn fundamentals of cybersecurity in the workplace.\",\n                  \"timecreated\": 1777426520,\n                  \"imageurl\":\n  \"https://your-acorn-instance.com/local/acorn_shared/resources/assets/customfile.php/1/course/overviewfiles/0/course_cover.jpg\"\n              },\n              {\n                  \"id\": 301,\n                  \"name\": \"Leadership Essentials\",\n                  \"summarytext\": \"An introduction to leadership skills for new managers.\",\n                  \"timecreated\": 1777598768,\n                  \"imageurl\": \"\"\n              }\n          ],\n          \"pinnedprogramcomplianceprogress\": {\n              \"id\": 1,\n              \"name\": \"Compliance Program\",\n              \"compliancepercentage\": 0,\n              \"compliant\": false,\n              \"programavailabletouser\": true,\n              \"programcontent\": [\n                  {\n                      \"id\": 200,\n                      \"name\": \"Annual Compliance Training\",\n                      \"contenttype\": \"Course\",\n                      \"complianceProgress\": 0\n                  },\n                  {\n                      \"id\": 201,\n                      \"name\": \"Workplace Safety Fundamentals\",\n                      \"contenttype\": \"Course\",\n                      \"complianceProgress\": 0\n                  }\n              ]\n          }\n      }\n  }"}],"_postman_id":"53359cfe-599c-4257-99e4-48fabd944086"}],"id":"3461ff50-b3c0-4bf9-a6ab-3c559c2e6897","description":"<p>Profile-related endpoints for retrieving user-specific data, including the user dashboard with their progress, upcoming sessions, and notifications.</p>\n","_postman_id":"3461ff50-b3c0-4bf9-a6ab-3c559c2e6897","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Reports","item":[{"name":"List Presets","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"e7b0f4dc-b4a5-4954-8cd3-0b780248d5a7"}}],"id":"3bee426c-2298-45fe-aa5f-13ea6a9e685c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/report/create","description":"<p>Returns the preconfigured report presets available for the specified tenancy.</p>\n<p>Only a subset of report types is currently supported by this endpoint. The available report types are:</p>\n<ul>\n<li>Live Learning Attendance Report</li>\n<li>Compliance Report</li>\n<li>Content Completion Report</li>\n<li>Content Facilitators Report</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","report","create"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"4a3b723e-b287-4ef3-8f1b-5c5bdf6113fe","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/report/create"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n      \"success\": true,\n      \"presets\": [\n          {\n              \"id\": 1,\n              \"name\": \"Monthly Content Completion\",\n              \"tenancyid\": 1,\n              \"userid\": 456,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 2,\n              \"name\": \"Quarterly Content Report\",\n              \"tenancyid\": 1,\n              \"userid\": 457,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 3,\n              \"name\": \"Course Completion Overview\",\n              \"tenancyid\": 1,\n              \"userid\": 457,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 4,\n              \"name\": \"Team Training Progress\",\n              \"tenancyid\": 1,\n              \"userid\": 458,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 5,\n              \"name\": \"Annual Content Completion\",\n              \"tenancyid\": 1,\n              \"userid\": 459,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 6,\n              \"name\": \"Monthly Compliance Report\",\n              \"tenancyid\": 1,\n              \"userid\": 459,\n              \"chosenRole\": null,\n              \"reportType\": \"compliancereport\"\n          },\n          {\n              \"id\": 7,\n              \"name\": \"Quarterly Compliance Snapshot\",\n              \"tenancyid\": 1,\n              \"userid\": 459,\n              \"chosenRole\": null,\n              \"reportType\": \"compliancereport\"\n          },\n          {\n              \"id\": 8,\n              \"name\": \"Department Compliance\",\n              \"tenancyid\": 1,\n              \"userid\": 457,\n              \"chosenRole\": null,\n              \"reportType\": \"compliancereport\"\n          },\n          {\n              \"id\": 9,\n              \"name\": \"Regional Compliance\",\n              \"tenancyid\": 1,\n              \"userid\": 457,\n              \"chosenRole\": null,\n              \"reportType\": \"compliancereport\"\n          },\n          {\n              \"id\": 10,\n              \"name\": \"Onboarding Course Completion\",\n              \"tenancyid\": 1,\n              \"userid\": 460,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 11,\n              \"name\": \"Mandatory Training Status\",\n              \"tenancyid\": 1,\n              \"userid\": 461,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 12,\n              \"name\": \"Refresher Training Status\",\n              \"tenancyid\": 1,\n              \"userid\": 462,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 13,\n              \"name\": \"Skills Assessment Completion\",\n              \"tenancyid\": 1,\n              \"userid\": 462,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 14,\n              \"name\": \"Certification Progress\",\n              \"tenancyid\": 1,\n              \"userid\": 463,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 15,\n              \"name\": \"Reporting Officer Compliance\",\n              \"tenancyid\": 1,\n              \"userid\": 464,\n              \"chosenRole\": \"reporting_officer\",\n              \"reportType\": \"compliancereport\"\n          },\n          {\n              \"id\": 16,\n              \"name\": \"Branch Training Status\",\n              \"tenancyid\": 1,\n              \"userid\": 462,\n              \"chosenRole\": null,\n              \"reportType\": \"contentcompletion\"\n          },\n          {\n              \"id\": 17,\n              \"name\": \"Admin Full Content Completion\",\n              \"tenancyid\": 1,\n              \"userid\": 457,\n              \"chosenRole\": \"admin\",\n              \"reportType\": \"contentcompletion\"\n          }\n      ]\n  }"}],"_postman_id":"3bee426c-2298-45fe-aa5f-13ea6a9e685c"},{"name":"Generate Report","id":"09a7d11c-16b9-4307-813a-161c8589e65b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/report/:presetsId","description":"<p>Update an existing report configuration. The <code>presetsId</code> path variable identifies the report to update.</p>\n<p>Optional body fields:</p>\n<ul>\n<li><code>name</code> — string, the new name for the report.</li>\n<li><code>filters</code> — object, filter configuration.</li>\n<li><code>columns</code> — array, columns to include in the report.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","report",":presetsId"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12345"}],"variable":[{"id":"0b1acf05-8720-401c-9283-c0a229b7ae78","description":{"content":"<p>integer - required, the ID of the report preset to generate (obtained from the List Presets endpoint)</p>\n","type":"text/plain"},"type":"any","value":"294","key":"presetsId"}]}},"response":[{"id":"838c35c1-0232-4b9e-a7d3-3e98b238d07d","name":"Success Example (200 OK)","originalRequest":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/report/:presetsId?requestid=12345","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","report",":presetsId"],"query":[{"key":"requestid","value":"12345"}],"variable":[{"key":"presetsId","value":"294"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"requestid\": 12345,\n      \"data\": {\n          \"id\": 1,\n          \"presetid\": 17,\n          \"reportType\": \"contentcompletion\",\n          \"chosenRole\": \"admin\",\n          \"data\": [\n              {\n                  \"Username\": \"sherlock.holmes@example.com\",\n                  \"First Name\": \"Sherlock\",\n                  \"Last Name\": \"Holmes\",\n                  \"Content Name\": \"Introduction to Safety\",\n                  \"Content Type\": \"Video\",\n                  \"Archived\": \"Completed\",\n                  \"Content Status\": \"Active\",\n                  \"Comment\": null,\n                  \"Time Enrolled \": \"\",\n                  \"Time Started\": \"2024-06-07 16:50:03\",\n                  \"Time Completed\": \"2024-06-07 16:51:05\",\n                  \"Tag\": \"\",\n                  \"Category\": \"\",\n                  \"Suspended\": \"No\",\n                  \"Department\": \"IT\",\n                  \"Job Role\": \"Senior Engineer\",\n                  \"Location\": \"Canberra ACT\",\n                  \"User ID\": \"EMP00123\",\n                  \"User Created Date1\": \"unix_1733403600\",\n                  \"Security Clearance Level\": \"NV1\",\n                  \"Date Commenced\": null,\n                  \"Select letter\": null,\n                  \"Supervisor\": \"watson.john\"\n              },\n              {\n                  \"Username\": \"watson.john\",\n                  \"First Name\": \"John\",\n                  \"Last Name\": \"Watson\",\n                  \"Content Name\": \"Introduction to Safety\",\n                  \"Content Type\": \"Video\",\n                  \"Archived\": \"Completed\",\n                  \"Content Status\": \"Active\",\n                  \"Comment\": null,\n                  \"Time Enrolled \": \"\",\n                  \"Time Started\": \"2024-06-11 10:58:05\",\n                  \"Time Completed\": \"2024-06-11 10:59:07\",\n                  \"Tag\": \"\",\n                  \"Category\": \"\",\n                  \"Suspended\": \"No\",\n                  \"Department\": \"\",\n                  \"Job Role\": \"\",\n                  \"Location\": \"\",\n                  \"User ID\": \"\",\n                  \"User Created Date1\": false,\n                  \"Security Clearance Level\": \"\",\n                  \"Date Commenced\": false,\n                  \"Select letter\": \"\",\n                  \"Supervisor\": \"watson.john\"\n              },\n              {\n                  \"Username\": \"mary.morstan@example.com\",\n                  \"First Name\": \"Mary\",\n                  \"Last Name\": \"Morstan\",\n                  \"Content Name\": \"Introduction to Safety\",\n                  \"Content Type\": \"Video\",\n                  \"Archived\": \"Not Completed\",\n                  \"Content Status\": \"Active\",\n                  \"Comment\": null,\n                  \"Time Enrolled \": \"\",\n                  \"Time Started\": \"2025-04-01 15:16:16\",\n                  \"Time Completed\": \"\",\n                  \"Tag\": \"\",\n                  \"Category\": \"\",\n                  \"Suspended\": \"No\",\n                  \"Department\": \"Operations\",\n                  \"Job Role\": \"Operations Lead\",\n                  \"Location\": \"Melbourne VIC\",\n                  \"User ID\": \"EMP00400\",\n                  \"User Created Date1\": \"unix_1744120800\",\n                  \"Security Clearance Level\": \"Baseline\",\n                  \"Date Commenced\": null,\n                  \"Select letter\": \"D\",\n                  \"Supervisor\": null\n              },\n              {\n                  \"Username\": \"irene.adler@example.com\",\n                  \"First Name\": \"Irene\",\n                  \"Last Name\": \"Adler\",\n                  \"Content Name\": \"Advanced Compliance Training\",\n                  \"Content Type\": \"Course\",\n                  \"Archived\": \"Completed\",\n                  \"Content Status\": \"Active\",\n                  \"Comment\": \"Completed via Recognition of Prior Learning\",\n                  \"Time Enrolled \": \"2024-08-15 09:00:00\",\n                  \"Time Started\": \"2024-08-15 09:30:21\",\n                  \"Time Completed\": \"2024-08-15 10:45:33\",\n                  \"Tag\": \"Mandatory\",\n                  \"Category\": \"Compliance\",\n                  \"Suspended\": \"No\",\n                  \"Department\": \"Finance\",\n                  \"Job Role\": \"Senior Analyst\",\n                  \"Location\": \"Brisbane QLD\",\n                  \"User ID\": \"EMP00210\",\n                  \"User Created Date1\": \"unix_1720483200\",\n                  \"Security Clearance Level\": \"NV2\",\n                  \"Date Commenced\": \"2023-02-14\",\n                  \"Select letter\": \"A\",\n                  \"Supervisor\": \"watson.john\"\n              },\n              {\n                  \"Username\": \"mycroft.holmes@example.com\",\n                  \"Content Status\": \"Active\",\n                  \"Comment\": null,\n                  \"Time Enrolled \": \"2025-01-10 08:00:00\",\n                  \"Time Started\": \"\",\n                  \"Time Completed\": \"\",\n                  \"Tag\": \"Annual\",\n                  \"Category\": \"Compliance\",\n                  \"Suspended\": \"Yes\",\n                  \"Department\": \"Strategy\",\n                  \"Job Role\": \"Director\",\n                  \"Location\": \"Sydney NSW\",\n                  \"User ID\": \"EMP00050\",\n                  \"User Created Date1\": \"unix_1700000000\",\n                  \"Security Clearance Level\": \"NV2\",\n                  \"Date Commenced\": \"2020-05-01\",\n                  \"Select letter\": \"M\",\n                  \"Supervisor\": null\n              }\n          ]\n      }\n  }"}],"_postman_id":"09a7d11c-16b9-4307-813a-161c8589e65b"}],"id":"0455087b-2e64-4181-bfd3-b7490efa39eb","description":"<p>Reports allow you to generate preconfigured datasets from the LMS. List the available report presets, then trigger a generation for the desired preset.</p>\n","_postman_id":"0455087b-2e64-4181-bfd3-b7490efa39eb","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Forms","item":[{"name":"Forms List","id":"2e0c823b-9960-4ede-a273-d24ae7b08ece","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/forms","description":"<p>Retrieve a list of all forms available in the tenancy.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","forms"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>bool - optional, whether polling should be disabled when pagination is enabled, default false</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"true"},{"disabled":true,"description":{"content":"<p>bool - optional, enable or disable pagination, default false</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12346"},{"disabled":true,"description":{"content":"<p>integer - optional, specify the page number for pagination purposes</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, specify the number of results per page, 12 is the default. </p>\n","type":"text/plain"},"key":"perPage","value":"100"},{"disabled":true,"description":{"content":"<p>string - optional, filter the results by form type\nAvailable Values: activity, session, momentum</p>\n","type":"text/plain"},"key":"type","value":"momentum"},{"disabled":true,"description":{"content":"<p>string - optional, filter the results by activity name, node title, event name</p>\n","type":"text/plain"},"key":"name","value":"Course Feedback Form"},{"disabled":true,"description":{"content":"<p>string - optional, filter the results by course name, momentum tile, live learning name</p>\n","type":"text/plain"},"key":"contentName","value":"Introduction to Safety"},{"disabled":true,"description":{"content":"<p>bool - optional, controls whether the field’s data is included</p>\n","type":"text/plain"},"key":"withFields","value":"true"}],"variable":[]}},"response":[{"id":"b1470fb2-4af2-4a60-bd11-4e9db82abadf","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/forms","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","forms"],"query":[{"key":"disablePollingWithPagination","value":"true","description":"bool - optional, whether polling should be disabled when pagination is enabled, default false","type":"text","disabled":true},{"key":"paginate","value":"true","description":"bool - optional, enable or disable pagination, default false","type":"text","disabled":true},{"key":"requestid","value":"12346","description":"integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned","disabled":true},{"key":"page","value":"1","description":"integer - optional, specify the page number for pagination purposes","type":"text","disabled":true},{"key":"perPage","value":"100","description":"integer - optional, specify the number of results per page, 12 is the default. ","type":"text","disabled":true},{"key":"type","value":"momentum","description":"string - optional, filter the results by form type\nAvailable Values: activity, session, momentum","type":"text","disabled":true},{"key":"name","value":"","description":"string - optional, filter the results by activity name, node title, event name","type":"text","disabled":true},{"key":"contentName","value":"","description":"string - optional, filter the results by course name, momentum tile, live learning name","type":"text","disabled":true},{"key":"withFields","value":"true","description":"bool - optional, controls whether the field’s data is included","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"requestid\": 12346,\n      \"data\": [\n          {\n              \"id\": 1,\n              \"type\": \"activity\",\n              \"usingtemplateid\": 10,\n              \"usageid\": 1001,\n              \"created_at\": \"2024-01-15T09:00:00.000000Z\",\n              \"updated_at\": \"2024-01-15T09:00:00.000000Z\",\n              \"deleted_at\": null,\n              \"name\": \"Course Feedback Form\",\n              \"label\": \"Introduction to Safety\"\n          },\n          {\n              \"id\": 2,\n              \"type\": \"activity\",\n              \"usingtemplateid\": null,\n              \"usageid\": 1002,\n              \"created_at\": \"2024-02-10T14:30:00.000000Z\",\n              \"updated_at\": \"2024-02-10T14:30:00.000000Z\",\n              \"deleted_at\": null,\n              \"name\": \"Pre-Course Survey\",\n              \"label\": \"Advanced Compliance Training\"\n          },\n          {\n              \"id\": 3,\n              \"type\": \"activity\",\n              \"usingtemplateid\": null,\n              \"usageid\": 1003,\n              \"created_at\": \"2024-03-05T11:15:30.000000Z\",\n              \"updated_at\": \"2024-03-05T11:15:30.000000Z\",\n              \"deleted_at\": null,\n              \"name\": \"Skills Self-Assessment\",\n              \"label\": \"Annual Code of Conduct\"\n          },\n          {\n              \"id\": 4,\n              \"type\": \"activity\",\n              \"usingtemplateid\": 12,\n              \"usageid\": 1004,\n              \"created_at\": \"2024-04-20T08:45:00.000000Z\",\n              \"updated_at\": \"2024-04-20T08:45:00.000000Z\",\n              \"deleted_at\": null,\n              \"name\": \"Session Feedback\",\n              \"label\": \"Quarterly Refresher Live Learning\"\n          },\n          {\n              \"id\": 5,\n              \"type\": \"momentum\",\n              \"usingtemplateid\": null,\n              \"usageid\": 2001,\n              \"created_at\": \"2024-05-15T10:00:00.000000Z\",\n              \"updated_at\": \"2024-05-15T10:00:00.000000Z\",\n              \"deleted_at\": null,\n              \"name\": \"Application Form\",\n              \"label\": \"External Training Request\"\n          },\n          {\n              \"id\": 6,\n              \"type\": \"momentum\",\n              \"usingtemplateid\": null,\n              \"usageid\": 2002,\n              \"created_at\": \"2024-06-01T13:20:15.000000Z\",\n              \"updated_at\": \"2024-06-01T13:20:15.000000Z\",\n              \"deleted_at\": null,\n              \"name\": \"Manager Approval Form\",\n              \"label\": \"Onboarding Workflow\"\n          }\n      ]\n  }"}],"_postman_id":"2e0c823b-9960-4ede-a273-d24ae7b08ece"},{"name":"Form Details","id":"b97ce2f5-0a83-4f4b-af79-ae5e1b8f06ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/form/:formId","description":"<p>Retrieve details of a specific form including its fields and configuration.</p>\n<h3 id=\"url-parameters\">URL Parameters</h3>\n<ul>\n<li><code>formId</code> — <strong>Required</strong> integer, the ID of the form to retrieve.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","form",":formId"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>bool - optional, whether polling should be disabled when pagination is enabled, default false</p>\n","type":"text/plain"},"key":"disablePolling","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12347"}],"variable":[{"id":"3e1bdb64-29f3-43d4-88be-43fc0b9aa4b1","description":{"content":"<p>The ID of the form to retrieve</p>\n","type":"text/plain"},"type":"any","value":"547","key":"formId"}]}},"response":[{"id":"87b2a7fa-7434-4531-af0e-2dcafd7a66cb","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/form/:formId","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","form",":formId"],"query":[{"key":"disablePolling","value":"true","description":"bool - optional, whether polling should be disabled when pagination is enabled, default false","type":"text","disabled":true},{"key":"requestid","value":"12347","description":"integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned","disabled":true}],"variable":[{"key":"formId","value":"547","description":"The ID of the form to retrieve"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"requestid\": 12347,\n      \"data\": {\n          \"id\": 5,\n          \"type\": \"momentum\",\n          \"usingtemplateid\": null,\n          \"usageid\": 2001,\n          \"created_at\": \"2024-05-15T10:00:00.000000Z\",\n          \"updated_at\": \"2024-05-15T10:00:00.000000Z\",\n          \"deleted_at\": null,\n          \"fields\": [\n              {\n                  \"id\": 1,\n                  \"formid\": 5,\n                  \"label\": \"Course Name\",\n                  \"order\": 0,\n                  \"type\": \"Text(Single line)\",\n                  \"uuid\": \"a1b2c3d4-e5f6-4890-9234-567890abcdef\",\n                  \"settings\": {\n                      \"label\": {\n                          \"lingo\": \"acorn_forms.labels.label\",\n                          \"class\": \"Forms\\\\Models\\\\Form\\\\Field\\\\Setting\\\\Label\",\n                          \"required\": true,\n                          \"type\": \"label\",\n                          \"value\": \"Course Name\"\n                      },\n                      \"description\": {\n                          \"lingo\": \"acorn_forms.labels.description\",\n                          \"class\": \"Forms\\\\Models\\\\Form\\\\Field\\\\Setting\\\\Description\",\n                          \"value\": \"\",\n                          \"type\": \"html\"\n                      },\n                      \"helptext\": {\n                          \"lingo\": \"acorn_forms.labels.helptext\",\n                          \"class\": \"Forms\\\\Models\\\\Form\\\\Field\\\\Setting\\\\Helptext\",\n                          \"value\": \"\",\n                          \"type\": \"text\"\n                      },\n                      \"divider\": {\n                          \"type\": \"divider\"\n                      },\n                      \"required\": {\n                          \"lingo\": \"acorn_forms.labels.validation\",\n                          \"helptext_lingo\": \"\",\n                          \"class\": \"Forms\\\\Models\\\\Form\\\\Field\\\\Setting\\\\Validation\",\n                          \"value\": \"\",\n                          \"type\": \"checkbox\"\n                      },\n                      \"dependency\": {\n                          \"lingo\": \"acorn_forms.labels.dependency\",\n                          \"helptext_lingo\": \"acorn_forms.details.add_dependencies_to_this_question\",\n                          \"class\": \"Forms\\\\Models\\\\Form\\\\Field\\\\Setting\\\\Dependency\",\n                          \"value\": \"\",\n                          \"type\": \"dependency\"\n                      }\n                  }\n              }\n          ]\n      }\n  }"}],"_postman_id":"b97ce2f5-0a83-4f4b-af79-ae5e1b8f06ae"},{"name":"Submissions List","id":"29789692-4d81-4bd9-abb6-54dd6f48fa27","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/submissions","description":"<p>Retrieve a list of form submissions in the tenancy.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","submissions"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, filter submissions by form ID</p>\n","type":"text/plain"},"key":"formId","value":"12001"},{"disabled":true,"description":{"content":"<p>integer - optional, filter submissions by user ID</p>\n","type":"text/plain"},"key":"userId","value":"456"},{"disabled":true,"description":{"content":"<p>bool - optional, whether polling should be disabled when pagination is enabled, default false</p>\n","type":"text/plain"},"key":"disablePollingWithPagination","value":"true"},{"disabled":true,"description":{"content":"<p>bool - optional, enable or disable pagination, default false</p>\n","type":"text/plain"},"key":"paginate","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12348"},{"disabled":true,"description":{"content":"<p>integer - optional, specify the page number for pagination purposes</p>\n","type":"text/plain"},"key":"page","value":"1"},{"disabled":true,"description":{"content":"<p>integer - optional, specify the number of results per page, 12 is the default. </p>\n","type":"text/plain"},"key":"perPage","value":"100"},{"disabled":true,"description":{"content":"<p>string - optional, filter result by submission start time, iso 8601 format</p>\n","type":"text/plain"},"key":"startTime","value":"2023-10-30T01:00:01.000000Z"},{"disabled":true,"description":{"content":"<p>string - optional, filter result by submission end time, iso 8601 format</p>\n","type":"text/plain"},"key":"endTime","value":"2023-10-30T01:00:01.000000Z"},{"disabled":true,"description":{"content":"<p>bool - optional, controls whether the field response data is included</p>\n","type":"text/plain"},"key":"withResponses","value":"true"}],"variable":[]}},"response":[{"id":"7b575e00-3c2c-439b-ac07-4989a9566267","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/submissions?requestid=12348&withResponses=true","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","submissions"],"query":[{"key":"formId","value":"12001","description":"integer - optional, filter submissions by form ID","disabled":true},{"key":"userId","value":"456","description":"integer - optional, filter submissions by user ID","disabled":true},{"key":"disablePollingWithPagination","value":"true","description":"bool - optional, whether polling should be disabled when pagination is enabled, default false","type":"text","disabled":true},{"key":"paginate","value":"true","description":"bool - optional, enable or disable pagination, default false","type":"text","disabled":true},{"key":"requestid","value":"12348","description":"integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned"},{"key":"page","value":"1","description":"integer - optional, specify the page number for pagination purposes","type":"text","disabled":true},{"key":"perPage","value":"100","description":"integer - optional, specify the number of results per page, 12 is the default. ","type":"text","disabled":true},{"key":"startTime","value":"2023-10-30T01:00:01.000000Z","description":"string - optional, filter result by submission start time, iso 8601 format","type":"text","disabled":true},{"key":"endTime","value":"2023-10-30T01:00:01.000000Z","description":"string - optional, filter result by submission end time, iso 8601 format","type":"text","disabled":true},{"key":"withResponses","value":"true","description":"bool - optional, controls whether the field response data is included"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"requestid\": 12348,\n      \"data\": [\n          {\n              \"id\": 1,\n              \"formid\": 1,\n              \"userid\": 456,\n              \"starttime\": 1698627601,\n              \"submissiontime\": 1698627617,\n              \"created_at\": \"2024-01-15T09:30:00.000000Z\",\n              \"updated_at\": \"2024-01-15T09:30:16.000000Z\",\n              \"deleted_at\": null,\n              \"user\": {\n                  \"id\": 456,\n                  \"username\": \"sherlock.holmes@example.com\",\n                  \"firstname\": \"Sherlock\",\n                  \"lastname\": \"Holmes\",\n                  \"email\": \"sherlock.holmes@example.com\"\n              },\n              \"responses\": [\n                  {\n                      \"id\": 1,\n                      \"submissionid\": 1,\n                      \"fieldid\": 10,\n                      \"response\":\n  \"[{\\\"id\\\":\\\"0\\\",\\\"content\\\":\\\"A\\\"},{\\\"id\\\":\\\"1\\\",\\\"content\\\":\\\"B\\\"},{\\\"id\\\":\\\"2\\\",\\\"content\\\":\\\"C\\\"}]\",\n                      \"metadata\": null,\n                      \"created_at\": \"2024-01-15T09:30:06.000000Z\",\n                      \"updated_at\": \"2024-01-15T09:30:06.000000Z\",\n                      \"deleted_at\": null,\n                      \"parsed_response\": [\n                          {\n                              \"id\": \"0\",\n                              \"content\": \"A\"\n                          },\n                          {\n                              \"id\": \"1\",\n                              \"content\": \"B\"\n                          },\n                          {\n                              \"id\": \"2\",\n                              \"content\": \"C\"\n                          }\n                      ]\n                  },\n                  {\n                      \"id\": 2,\n                      \"submissionid\": 1,\n                      \"fieldid\": 11,\n                      \"response\": \"[{\\\"itemid\\\":\\\"0\\\",\\\"itemcontent\\\":\\\"1\\\",\\\"optionid\\\":\\\"1\\\",\\\"optioncontent\\\":\\\"b\\\"},{\\\"itemid\\\":\\\n  \"1\\\",\\\"itemcontent\\\":\\\"2\\\",\\\"optionid\\\":\\\"0\\\",\\\"optioncontent\\\":\\\"a\\\"}]\",\n                      \"metadata\": null,\n                      \"created_at\": \"2024-01-15T09:30:06.000000Z\",\n                      \"updated_at\": \"2024-01-15T09:30:14.000000Z\",\n                      \"deleted_at\": null,\n                      \"parsed_response\": [\n                          {\n                              \"itemid\": \"0\",\n                              \"itemcontent\": \"1\",\n                              \"optionid\": \"1\",\n                              \"optioncontent\": \"b\"\n                          },\n                          {\n                              \"itemid\": \"1\",\n                              \"itemcontent\": \"2\",\n                              \"optionid\": \"0\",\n                              \"optioncontent\": \"a\"\n                          }\n                      ]\n                  },\n                  {\n                      \"id\": 3,\n                      \"submissionid\": 1,\n                      \"fieldid\": 12,\n                      \"response\": \"Excellent course, very informative.\",\n                      \"metadata\": null,\n                      \"created_at\": \"2024-01-15T09:30:08.000000Z\",\n                      \"updated_at\": \"2024-01-15T09:30:11.000000Z\",\n                      \"deleted_at\": null,\n                      \"parsed_response\": \"Excellent course, very informative.\"\n                  },\n                  {\n                      \"id\": 4,\n                      \"submissionid\": 1,\n                      \"fieldid\": 13,\n                      \"response\": \"Would recommend to colleagues.\",\n                      \"metadata\": null,\n                      \"created_at\": \"2024-01-15T09:30:12.000000Z\",\n                      \"updated_at\": \"2024-01-15T09:30:12.000000Z\",\n                      \"deleted_at\": null,\n                      \"parsed_response\": \"Would recommend to colleagues.\"\n                  },\n                  {\n                      \"id\": 5,\n                      \"submissionid\": 1,\n                      \"fieldid\": 14,\n                      \"response\": \"8\",\n                      \"metadata\": null,\n                      \"created_at\": \"2024-01-15T09:30:15.000000Z\",\n                      \"updated_at\": \"2024-01-15T09:30:15.000000Z\",\n                      \"deleted_at\": null,\n                      \"parsed_response\": \"8\"\n                  }\n              ]\n          }\n      ]\n  }"}],"_postman_id":"29789692-4d81-4bd9-abb6-54dd6f48fa27"},{"name":"Submission Details","id":"7de0d2e1-28ff-46bf-8094-ec64c1157e8d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/submission/:submissionId","description":"<p>Retrieve the details of a specific form submission including all field values.</p>\n<h3 id=\"url-parameters\">URL Parameters</h3>\n<ul>\n<li><code>submissionId</code> — <strong>Required</strong> integer, the ID of the submission to retrieve.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","submission",":submissionId"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>bool - optional, whether polling should be disabled when pagination is enabled, default false</p>\n","type":"text/plain"},"key":"disablePolling","value":"true"},{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned</p>\n","type":"text/plain"},"key":"requestid","value":"12349"}],"variable":[{"id":"2d4f9fdc-4cee-432f-bd50-9b03e63ed216","description":{"content":"<p>The ID of the submission to retrieve</p>\n","type":"text/plain"},"type":"any","value":"349","key":"submissionId"}]}},"response":[{"id":"95b94d9b-b9b1-4c51-a945-7b7a15a3908a","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":{"raw":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/submission/:submissionId?requestid=12349","host":["{{base_url}}"],"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","submission",":submissionId"],"query":[{"key":"disablePolling","value":"true","description":"bool - optional, whether polling should be disabled when pagination is enabled, default false","type":"text","disabled":true},{"key":"requestid","value":"12349","description":"integer - optional, if included the endpoint will return the status and results of the request with the specified requestid. If not included a new request will be submitted and its requestid will be returned"}],"variable":[{"key":"submissionId","value":"349","description":"The ID of the submission to retrieve"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n      \"status\": \"Complete\",\n      \"requestid\": 12349,\n      \"data\": {\n          \"id\": 1,\n          \"formid\": 1,\n          \"userid\": 456,\n          \"starttime\": \"2024-01-15T09:30:00+00:00\",\n          \"submissiontime\": \"2024-01-15T09:30:16+00:00\",\n          \"created_at\": \"2024-01-15T09:30:00.000000Z\",\n          \"updated_at\": \"2024-01-15T09:30:16.000000Z\",\n          \"deleted_at\": null,\n          \"user\": {\n              \"id\": 456,\n              \"username\": \"sherlock.holmes@example.com\",\n              \"firstname\": \"Sherlock\",\n              \"lastname\": \"Holmes\",\n              \"email\": \"sherlock.holmes@example.com\"\n          },\n          \"responses\": [\n              {\n                  \"id\": 1,\n                  \"submissionid\": 1,\n                  \"fieldid\": 10,\n                  \"response\": \"[{\\\"id\\\":\\\"0\\\",\\\"content\\\":\\\"A\\\"},{\\\"id\\\":\\\"1\\\",\\\"content\\\":\\\"B\\\"},{\\\"id\\\":\\\"2\\\",\\\"content\\\":\\\"C\\\"}]\",\n                  \"metadata\": null,\n                  \"created_at\": \"2024-01-15T09:30:06.000000Z\",\n                  \"updated_at\": \"2024-01-15T09:30:06.000000Z\",\n                  \"deleted_at\": null,\n                  \"parsed_response\": [\n                      {\n                          \"id\": \"0\",\n                          \"content\": \"A\"\n                      },\n                      {\n                          \"id\": \"1\",\n                          \"content\": \"B\"\n                      },\n                      {\n                          \"id\": \"2\",\n                          \"content\": \"C\"\n                      }\n                  ]\n              },\n              {\n                  \"id\": 2,\n                  \"submissionid\": 1,\n                  \"fieldid\": 11,\n                  \"response\": \"[{\\\"itemid\\\":\\\"0\\\",\\\"itemcontent\\\":\\\"1\\\",\\\"optionid\\\":\\\"1\\\",\\\"optioncontent\\\":\\\"b\\\"},{\\\"itemid\\\":\\\"1\\\"\n  ,\\\"itemcontent\\\":\\\"2\\\",\\\"optionid\\\":\\\"0\\\",\\\"optioncontent\\\":\\\"a\\\"}]\",\n                  \"metadata\": null,\n                  \"created_at\": \"2024-01-15T09:30:06.000000Z\",\n                  \"updated_at\": \"2024-01-15T09:30:14.000000Z\",\n                  \"deleted_at\": null,\n                  \"parsed_response\": [\n                      {\n                          \"itemid\": \"0\",\n                          \"itemcontent\": \"1\",\n                          \"optionid\": \"1\",\n                          \"optioncontent\": \"b\"\n                      },\n                      {\n                          \"itemid\": \"1\",\n                          \"itemcontent\": \"2\",\n                          \"optionid\": \"0\",\n                          \"optioncontent\": \"a\"\n                      }\n                  ]\n              },\n              {\n                  \"id\": 3,\n                  \"submissionid\": 1,\n                  \"fieldid\": 12,\n                  \"response\": \"Excellent course, very informative.\",\n                  \"metadata\": null,\n                  \"created_at\": \"2024-01-15T09:30:08.000000Z\",\n                  \"updated_at\": \"2024-01-15T09:30:11.000000Z\",\n                  \"deleted_at\": null,\n                  \"parsed_response\": \"Excellent course, very informative.\"\n              },\n              {\n                  \"id\": 4,\n                  \"submissionid\": 1,\n                  \"fieldid\": 13,\n                  \"response\": \"Would recommend to colleagues.\",\n                  \"metadata\": null,\n                  \"created_at\": \"2024-01-15T09:30:12.000000Z\",\n                  \"updated_at\": \"2024-01-15T09:30:12.000000Z\",\n                  \"deleted_at\": null,\n                  \"parsed_response\": \"Would recommend to colleagues.\"\n              },\n              {\n                  \"id\": 5,\n                  \"submissionid\": 1,\n                  \"fieldid\": 14,\n                  \"response\": \"8\",\n                  \"metadata\": null,\n                  \"created_at\": \"2024-01-15T09:30:15.000000Z\",\n                  \"updated_at\": \"2024-01-15T09:30:15.000000Z\",\n                  \"deleted_at\": null,\n                  \"parsed_response\": \"8\"\n              }\n          ]\n      }\n  }"}],"_postman_id":"7de0d2e1-28ff-46bf-8094-ec64c1157e8d"}],"id":"a492a5ef-113b-46b4-9863-b06d919afcf0","description":"<p>Forms allow you to retrieve form definitions and their submissions within the LMS. List forms or submissions for the tenancy, or retrieve the details of a specific form (including its fields) or submission (including all field responses).</p>\n","_postman_id":"a492a5ef-113b-46b4-9863-b06d919afcf0","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"External Learnings","item":[{"name":"External Learnings","id":"d597fa52-d7a8-46fa-9866-0ae2628b0cad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/externallearnings","description":"<p>Retrieve external learning records for users in the tenancy. External learnings are qualifications, certifications, or training completed outside of the LMS.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","externallearnings"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, if included the endpoint will return the status and results of the request with the specified requestid</p>\n","type":"text/plain"},"key":"requestid","value":"12345"},{"disabled":true,"description":{"content":"<p>integer - optional, filter results by user ID</p>\n","type":"text/plain"},"key":"userId","value":"456"},{"disabled":true,"description":{"content":"<p>string - optional, filter results by username</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes@example.com"}],"variable":[]}},"response":[{"id":"192f10c3-dda7-481c-a54c-df79c38e329f","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/externallearnings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"externalLearningId\": 11001,\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"qualificationName\": \"First Aid Certificate\",\n            \"provider\": \"St John Ambulance\",\n            \"dateCompleted\": \"2023-06-15\",\n            \"expiryDate\": \"2026-06-15\",\n            \"certificateNumber\": \"FA-2023-12345\",\n            \"status\": \"active\"\n        }\n    ]\n}"}],"_postman_id":"d597fa52-d7a8-46fa-9866-0ae2628b0cad"}],"id":"487ebcb3-5c3c-4880-90ca-41171e6ef44a","description":"<p>External learnings are qualifications, certifications, or training that users have completed outside of the LMS. Each record includes details about the user, the qualification or training, and when it was completed.</p>\n","_postman_id":"487ebcb3-5c3c-4880-90ca-41171e6ef44a","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"CPD Points","item":[{"name":"User CPD Points","id":"478e9d07-1f59-4427-8cf3-4a33c215d280","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/usercpdpoints","description":"<p>Retrieve Continuing Professional Development (CPD) points earned by users in the tenancy.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_tenancymanagement","index.php","api","1","tenancies","{{tenancy_id}}","usercpdpoints"],"host":["{{base_url}}"],"query":[{"disabled":true,"description":{"content":"<p>integer - optional, filter by user ID</p>\n","type":"text/plain"},"key":"userId","value":"456"},{"disabled":true,"description":{"content":"<p>string - optional, filter by username</p>\n","type":"text/plain"},"key":"username","value":"sherlock.holmes@example.com"}],"variable":[]}},"response":[{"id":"bba02d51-c4ea-405f-b873-189a8d01c4b4","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_tenancymanagement/index.php/api/1/tenancies/{{tenancy_id}}/usercpdpoints"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"userId\": 456,\n            \"username\": \"sherlock.holmes@example.com\",\n            \"firstName\": \"Sherlock\",\n            \"lastName\": \"Holmes\",\n            \"totalCpdPoints\": 45.5,\n            \"cpdRecords\": [\n                {\n                    \"contentId\": 123,\n                    \"contentName\": \"Introduction to Safety\",\n                    \"cpdPoints\": 10.0,\n                    \"dateEarned\": \"2024-01-15T10:30:00Z\"\n                },\n                {\n                    \"contentId\": 234,\n                    \"contentName\": \"First Aid Training\",\n                    \"cpdPoints\": 35.5,\n                    \"dateEarned\": \"2024-02-20T17:00:00Z\"\n                }\n            ]\n        }\n    ]\n}"}],"_postman_id":"478e9d07-1f59-4427-8cf3-4a33c215d280"}],"id":"8b476037-c01d-42f2-81c1-b4c51a47b111","description":"<p>CPD points are Continuing Professional Development credits earned by users in the LMS for completing learning activities. Each record includes details about the user and their accrued points.</p>\n","_postman_id":"8b476037-c01d-42f2-81c1-b4c51a47b111","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}}],"id":"05abce0f-3c34-4e2d-a534-32d2c85ffc78","description":"<p>REST APIs V1.1 are the core resource endpoints for managing users, content, completions, attendance, transactions, and reporting within the LMS. Endpoints share the <code>{{base_url}}/local/&lt;plugin&gt;/index.php/api/1[.1]/</code> base path, accept form-encoded request bodies, and return JSON-encoded responses with standard HTTP status codes.</p>\n","_postman_id":"05abce0f-3c34-4e2d-a534-32d2c85ffc78","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Webhook APIs V1","item":[{"name":"List Available Webhook Events ","id":"1ff7ca4b-146b-44ee-9e9b-3cb580660d75","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_webhookeventlist/{{tenancy_id}}","description":"<p>List all the types of available Webhook Events for your instance of Acorn.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","webhookevents_webhookeventlist","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"3e55898f-a52e-4da4-841e-bfb96487febb","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_webhookeventlist/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-Ratelimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"event_list\": [\n        \"Events\\\\Notifications\\\\Duedate\",\n        \"Events\\\\Notifications\\\\Refresher\",\n        \"Events\\\\Notifications\\\\Attendance\",\n        \"Events\\\\Notifications\\\\Session_changed\",\n        \"Events\\\\Notifications\\\\Session_cancelled\",\n        \"Events\\\\Notifications\\\\Expressed_interest\",\n        \"Events\\\\Notifications\\\\Enrolment\",\n        \"Events\\\\Notifications\\\\Account_Merge\",\n        \"Events\\\\Notifications\\\\Session_reminder\",\n        \"Events\\\\Notifications\\\\Session_registration\",\n        \"Events\\\\Notifications\\\\Session_withdrawn\",\n        \"Events\\\\Notifications\\\\Session_deny\",\n        \"Events\\\\Notifications\\\\Instructor_assignment\",\n        \"Events\\\\Notifications\\\\Instructor_unassignment\",\n        \"Events\\\\Notifications\\\\*\",\n        \"Events\\\\Users\\\\Created\",\n        \"Events\\\\Users\\\\Updated\",\n        \"Events\\\\Users\\\\Deleted\",\n        \"Events\\\\Users\\\\Tenancy_added\",\n        \"Events\\\\Users\\\\Tenancy_removed\",\n        \"Events\\\\Users\\\\*\",\n        \"Events\\\\Courses\\\\Completion_created\",\n        \"Events\\\\Courses\\\\Completion_updated\",\n        \"Events\\\\Courses\\\\Completion_deleted\",\n        \"Events\\\\Courses\\\\Completion_archived\",\n        \"Events\\\\Courses\\\\*\",\n        \"Events\\\\Quiz\\\\Attempt_completed\",\n        \"Events\\\\Quiz\\\\*\",\n        \"*\"\n    ]\n}"}],"_postman_id":"1ff7ca4b-146b-44ee-9e9b-3cb580660d75"},{"name":"List Subscribed Webhook Events ","id":"478a7c6f-1be5-44d6-be5b-b211f85184fd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_subcribedwebhookevents/{{tenancy_id}}","description":"<p>List all webhooks that your api key has been used to subscribe to.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","webhookevents_subcribedwebhookevents","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"b6eabf0f-b2c0-4958-8c16-b83f761ce469","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_subcribedwebhookevents/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"subscriptions\": [\n        {\n            \"subscriptionId\": 8001,\n            \"event\": \"Events\\\\Users\\\\Created\",\n            \"url\": \"https://yourservice.com/webhooks/users\",\n            \"createdAt\": \"2024-01-10T09:00:00Z\",\n            \"status\": \"active\"\n        },\n        {\n            \"subscriptionId\": 8002,\n            \"event\": \"Events\\\\Completions\\\\Created\",\n            \"url\": \"https://yourservice.com/webhooks/completions\",\n            \"createdAt\": \"2024-01-10T09:05:00Z\",\n            \"status\": \"active\"\n        }\n    ]\n}"}],"_postman_id":"478a7c6f-1be5-44d6-be5b-b211f85184fd"},{"name":"List Failed Attempts ","id":"347b6763-6941-4619-8741-113cea51e2f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_failedwebhooks/{{tenancy_id}}","description":"<p>When a webhook is dispatched to your webservice we expect to receive a 200 response.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","webhookevents_failedwebhooks","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"4a5bb92d-8531-4864-895f-9aa12ac5d094","name":"Success Example (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_failedwebhooks/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"failedWebhooks\": [\n        {\n            \"webhookId\": 9001,\n            \"event\": \"Events\\\\Users\\\\Created\",\n            \"url\": \"https://yourservice.com/webhooks/users\",\n            \"payload\": {\"userId\": 456, \"username\": \"sherlock.holmes@example.com\"},\n            \"statusCode\": 500,\n            \"error\": \"Internal Server Error\",\n            \"attemptCount\": 3,\n            \"lastAttempt\": \"2024-01-20T14:30:00Z\",\n            \"createdAt\": \"2024-01-20T14:00:00Z\"\n        },\n        {\n            \"webhookId\": 9002,\n            \"event\": \"Events\\\\Completions\\\\Created\",\n            \"url\": \"https://yourservice.com/webhooks/completions\",\n            \"payload\": {\"completionId\": 2001, \"userId\": 457},\n            \"statusCode\": 0,\n            \"error\": \"Connection timeout\",\n            \"attemptCount\": 3,\n            \"lastAttempt\": \"2024-01-20T15:00:00Z\",\n            \"createdAt\": \"2024-01-20T14:30:00Z\"\n        }\n    ]\n}"},{"id":"62c22590-603c-4aea-98ad-4cccf837d655","name":"No Failed Webhooks (200 OK)","originalRequest":{"method":"GET","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_failedwebhooks/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"failedWebhooks\": []\n}"}],"_postman_id":"347b6763-6941-4619-8741-113cea51e2f3"},{"name":"Subscribe to a Webhook Event ","id":"ebaf50fa-e89a-4c7b-8d39-649b809c96d0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_subscribe/{{tenancy_id}}?event=Events\\\\Users\\\\Created","description":"<p>Subscribe to an event in the system.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","webhookevents_subscribe","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>required - the event key to subscribe to</p>\n","type":"text/plain"},"key":"event","value":"Events\\\\Users\\\\Created"}],"variable":[]}},"response":[{"id":"d56cf885-e6f9-47fe-b79d-568a21e991ab","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"url":{"raw":"{{base_url}}/local/acorn_administration/index.php/webhookevents_subscribe/{{tenancy_id}}?event=Events\\Users\\Created","host":["{{base_url}}"],"path":["local","acorn_administration","index.php","webhookevents_subscribe","{{tenancy_id}}"],"query":[{"key":"event","value":"Events\\Users\\Created"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Successfully subscribed to event.\",\n    \"subscription\": {\n        \"subscriptionId\": 8003,\n        \"event\": \"Events\\\\Users\\\\Created\",\n        \"createdAt\": \"2024-01-21T10:00:00Z\",\n        \"status\": \"active\"\n    }\n}"}],"_postman_id":"ebaf50fa-e89a-4c7b-8d39-649b809c96d0"},{"name":"Unsubscribe to a Webhook Event ","id":"1dfd69f9-5ae3-4b69-85c2-2fcac7ed66b6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"event\": [\n        \"Events\\\\Notifications\\\\*\",\n        \"*\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_unsubscribe/{{tenancy_id}}","description":"<p>Unsubscribe from an event you have previously subscribed to.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","webhookevents_unsubscribe","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"73b2072f-4ed9-477a-b3bf-c5e2a599fa83","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"event\": [\n        \"Events\\\\Users\\\\Created\"\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_unsubscribe/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60","description":"","type":"text"},{"key":"X-RateLimit-Remaining","value":"59","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"message\": \"Successfully unsubscribed from events.\",\n    \"unsubscribed\": [\n        \"Events\\\\Users\\\\Created\"\n    ]\n}"}],"_postman_id":"1dfd69f9-5ae3-4b69-85c2-2fcac7ed66b6"},{"name":"Relay Service ","id":"c3d9abbf-2625-4364-9636-d6eea3234047","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"url\": \"{{webhook_url}}\",\n    \"event\": \"Events\\\\Users\\\\Created\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_relay/{{tenancy_id}}","description":"<p>Send a sample webhook event back to your service for testing and development purposes.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["local","acorn_administration","index.php","webhookevents_relay","{{tenancy_id}}"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"b48ae871-3e01-44ff-9c2d-5ceeff9e8906","name":"Success Example (200 OK)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"url\": \"{{webhook_url}}\",\n    \"event\": \"Events\\\\Users\\\\Created\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/local/acorn_administration/index.php/webhookevents_relay/{{tenancy_id}}"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[],"responseTime":null,"body":"{\n      \"event\": \"Events\\\\Users\\\\Created\",\n      \"payload\": {\n          \"user\": {\n              \"id\": 456,\n              \"first_name\": \"Sherlock\",\n              \"last_name\": \"Holmes\",\n              \"username\": \"sherlock.holmes@example.com\",\n              \"email\": \"sherlock.holmes@example.com\",\n              \"last_access\": \"2024-01-15T09:00:00+00:00\",\n              \"time_created\": \"2024-01-15T09:00:00+00:00\",\n              \"tenancy_id\": 1\n          }\n      },\n      \"now\": 1705309200\n  }"}],"_postman_id":"c3d9abbf-2625-4364-9636-d6eea3234047"}],"id":"303f4e40-e0b3-4990-8c39-99bf98c460ab","description":"<p>Acorn Webhooks are automatic updates for your app that keep it current with what's happening in Acorn.</p>\n","_postman_id":"303f4e40-e0b3-4990-8c39-99bf98c460ab","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}},{"name":"Webhook APIs V2","item":[{"name":"List Available Events","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"285bfff6-25c0-4bc8-b858-98007c5a466f"}}],"id":"ab6fc99b-ad46-4eb1-b180-1b15838ae5f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/events","description":"<p>Returns a list of all available webhook event types that can be subscribed to.</p>\n<p>Event categories include:</p>\n<ul>\n<li><code>Events\\Notifications\\*</code> - Notification events (Duedate, Refresher, Attendance, etc.)</li>\n<li><code>Events\\Users\\*</code> - User lifecycle events (Created, Updated, Deleted, etc.)</li>\n<li><code>Events\\Courses\\*</code> - Course completion events</li>\n<li><code>Events\\Quiz\\*</code> - Quiz attempt events</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks","events"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"039c0a8f-71b6-4499-b039-c6f0f15d187f","name":"List Available Events","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/events"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"58"}],"cookie":[],"responseTime":null,"body":"{\n    \"events\": [\n        \"Events\\\\Notifications\\\\Duedate\",\n        \"Events\\\\Notifications\\\\Refresher\",\n        \"Events\\\\Notifications\\\\Attendance\",\n        \"Events\\\\Notifications\\\\Session_changed\",\n        \"Events\\\\Notifications\\\\Session_cancelled\",\n        \"Events\\\\Notifications\\\\Expressed_interest\",\n        \"Events\\\\Notifications\\\\Enrolment\",\n        \"Events\\\\Notifications\\\\Account_Merge\",\n        \"Events\\\\Notifications\\\\Session_reminder\",\n        \"Events\\\\Notifications\\\\Session_registration\",\n        \"Events\\\\Notifications\\\\Session_withdrawn\",\n        \"Events\\\\Notifications\\\\Session_deny\",\n        \"Events\\\\Notifications\\\\Instructor_assignment\",\n        \"Events\\\\Notifications\\\\Instructor_unassignment\",\n        \"Events\\\\Notifications\\\\*\",\n        \"Events\\\\Users\\\\Created\",\n        \"Events\\\\Users\\\\Updated\",\n        \"Events\\\\Users\\\\Deleted\",\n        \"Events\\\\Users\\\\Tenancy_added\",\n        \"Events\\\\Users\\\\Tenancy_removed\",\n        \"Events\\\\Users\\\\*\",\n        \"Events\\\\Courses\\\\Completion_created\",\n        \"Events\\\\Courses\\\\Completion_updated\",\n        \"Events\\\\Courses\\\\Completion_deleted\",\n        \"Events\\\\Courses\\\\Completion_archived\",\n        \"Events\\\\Courses\\\\*\",\n        \"Events\\\\Quiz\\\\Attempt_completed\",\n        \"Events\\\\Quiz\\\\*\",\n        \"*\"\n    ]\n}"}],"_postman_id":"ab6fc99b-ad46-4eb1-b180-1b15838ae5f6"},{"name":"List Webhooks","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"981ba9be-4114-4184-ac83-bd64dd93a5d7"}}],"id":"c135999b-4f75-4aa7-9194-c02bf3f3e336","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks?page=1&perPage=1","description":"<p>Lists all webhook subscriptions for the authenticated API key. Secrets (signing_key, auth_token) are masked in the response.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>integer - optional, the page number to return (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>integer - optional, the number of results per page (default: 10, max: 100)</p>\n","type":"text/plain"},"key":"perPage","value":"1"}],"variable":[]}},"response":[{"id":"9f22d061-481f-4389-9db4-373429c4a349","name":"List Webhooks","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks?page=1&perPage=1","host":["{{base_url}}"],"path":["api","v2","{{tenancy_id}}","webhooks"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"1"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 30,\n            \"event\": \"Events\\\\Courses\\\\*\",\n            \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n            \"content_type_header\": \"application/json\",\n            \"is_enabled\": true,\n            \"signing_key\": \"••••••••c256\",\n            \"auth_token\": \"••••••••oken\",\n            \"created_at\": \"2026-04-16T05:11:33+00:00\",\n            \"updated_at\": \"2026-04-16T05:11:33+00:00\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"per_page\": 1,\n        \"total\": 1,\n        \"last_page\": 1,\n        \"next\": null,\n        \"prev\": null\n    }\n}"}],"_postman_id":"c135999b-4f75-4aa7-9194-c02bf3f3e336"},{"name":"Get Webhook by ID","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"8ec971b2-eb1d-444f-9993-2880fc72cb3e"}}],"id":"366d661a-1722-480e-8bf2-d29a7d065ecc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id","description":"<p>Retrieves a specific webhook subscription by ID. Secrets (signing_key, auth_token) are masked in the response (shows <code>••••••••</code> + last 4 characters).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"cb73e08c-35bb-41be-bbb9-3721c0c23c90","description":{"content":"<p>The unique ID of the webhook subscription</p>\n","type":"text/plain"},"type":"any","value":"30","key":"webhook_id"}]}},"response":[{"id":"84cbc004-1c59-435a-962e-048f82113cde","name":"Get Webhook by ID","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id","host":["{{base_url}}"],"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id"],"variable":[{"key":"webhook_id","value":"30"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"56"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 30,\n    \"event\": \"Events\\\\Courses\\\\*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"is_enabled\": true,\n    \"signing_key\": \"••••••••c256\",\n    \"auth_token\": \"••••••••oken\",\n    \"created_at\": \"2026-04-16T05:11:33+00:00\",\n    \"updated_at\": \"2026-04-16T05:11:33+00:00\"\n}"}],"_postman_id":"366d661a-1722-480e-8bf2-d29a7d065ecc"},{"name":"Get Webhook Logs","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"caeb21a8-e677-44f4-9649-cbdf879ce992"}}],"id":"7742c067-3f3a-4b1b-8c03-731e25094aaf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id/logs?page=1&perPage=10","description":"<p>Retrieves delivery log history for a specific webhook subscription. Shows delivery attempts, success/failure status, response codes, and retry counts.</p>\n<p>Log entries include:</p>\n<ul>\n<li><code>id</code> - Log entry ID</li>\n<li><code>success</code> - Boolean delivery status</li>\n<li><code>tries</code> - Number of delivery attempts</li>\n<li><code>response</code> - HTTP response from the webhook endpoint</li>\n<li><code>payload</code> - The data that was sent</li>\n<li><code>created_at</code> - Timestamp of delivery attempt</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id","logs"],"host":["{{base_url}}"],"query":[{"description":{"content":"<p>integer - optional, the page number to return (default: 1)</p>\n","type":"text/plain"},"key":"page","value":"1"},{"description":{"content":"<p>integer - optional, the number of log entries per page (default: 10, max: 100)</p>\n","type":"text/plain"},"key":"perPage","value":"10"}],"variable":[{"id":"5ff2a512-e8df-4f92-89fc-516642aebbf6","description":{"content":"<p>The unique ID of the webhook subscription</p>\n","type":"text/plain"},"type":"any","value":"30","key":"webhook_id"}]}},"response":[{"id":"8e03fb34-59cd-4ee0-859d-f1cba849a0fb","name":"Get Webhook Logs","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id/logs?page=1&perPage=10","host":["{{base_url}}"],"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id","logs"],"query":[{"key":"page","value":"1"},{"key":"perPage","value":"10"}],"variable":[{"key":"webhook_id","value":"30"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 248,\n            \"event_type\": \"Events\\\\Courses\\\\Completion_created\",\n            \"success\": true,\n            \"tries\": 1,\n            \"response\": \"{\"message\":\"Workflow was started\"}\",\n            \"redispatched\": false,\n            \"created_at\": \"2026-04-16T05:16:32+00:00\",\n            \"updated_at\": \"2026-04-16T05:16:38+00:00\"\n        },\n        {\n            \"id\": 247,\n            \"event_type\": \"Events\\\\Courses\\\\Completion_archived\",\n            \"success\": false,\n            \"tries\": 1,\n            \"response\": \"Client error: `POST https://example.com/webhook/e1a03fe3-be2b-490d-a23b-020793f2d046` resulted in a `405 Method Not Allowed` response:\\n<!doctype html><html lang=\\\"en\\\"><head><title>Example Domain</title><meta name=\\\"viewport\\\" content=\\\"width=device-width, ini (truncated...)\\n\",\n            \"redispatched\": false,\n            \"created_at\": \"2026-04-16T05:16:29+00:00\",\n            \"updated_at\": \"2026-04-16T05:16:32+00:00\"\n        }\n    ],\n    \"meta\": {\n        \"current_page\": 1,\n        \"per_page\": 10,\n        \"total\": 2,\n        \"last_page\": 1,\n        \"next\": null,\n        \"prev\": null\n    }\n}"}],"_postman_id":"7742c067-3f3a-4b1b-8c03-731e25094aaf"},{"name":"Create Webhook","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"42c06c7e-e33e-4e4b-96b9-2a137caf32ac"}}],"id":"14fa0948-236c-42b2-b18d-18a3a42bdaaa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"Events\\\\Courses\\\\*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"signing_key\": \"signing-key-hmac256\",\n    \"auth_token\": \"auth-token\",\n    \"is_enabled\": true\n}"},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks","description":"<p>Creates a new webhook subscription with HMAC signature authentication. The signing_key is used to generate an HMAC signature of the payload.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"39c1dbd6-f61b-4953-a9b7-39c6cdf48659","name":"Create Webhook","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"Events\\\\Courses\\\\*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"signing_key\": \"signing-key-hmac256\",\n    \"auth_token\": \"auth-token\",\n    \"is_enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"57"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 30,\n    \"event\": \"Events\\\\Courses\\\\*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"is_enabled\": true,\n    \"signing_key\": \"signing-key-hmac256\",\n    \"auth_token\": \"auth-token\",\n    \"created_at\": \"2026-04-16T05:11:33+00:00\",\n    \"updated_at\": \"2026-04-16T05:11:33+00:00\"\n}"}],"_postman_id":"14fa0948-236c-42b2-b18d-18a3a42bdaaa"},{"name":"Create Webhook - Wildcard Event","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"a4493a96-0be1-40ee-9cbf-d26144af792e"}}],"id":"c114023f-5021-4bb5-b041-fb9c0e816e2c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"signing_key\": \"signing-key-hmac256\",\n    \"auth_token\": \"auth-token\",\n    \"is_enabled\": true\n}"},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks","description":"<p>Creates a webhook subscription that listens to ALL events in a category using the wildcard <code>*</code> character.</p>\n<p>Examples:</p>\n<ul>\n<li><code>Events\\\\Notifications\\\\*</code> - All notification events</li>\n<li><code>Events\\\\Users\\\\*</code> - All user events</li>\n<li><code>Events\\\\Courses\\\\*</code> - All course events</li>\n<li><code>*</code> - ALL events (use with caution!)</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"566ef544-66b1-43cc-9cbf-0083d2b84011","name":"Create Webhook - Wildcard Event","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"signing_key\": \"signing-key-hmac256\",\n    \"auth_token\": \"auth-token\",\n    \"is_enabled\": true\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks"},"status":"Created","code":201,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 31,\n    \"event\": \"*\",\n    \"url\": \"https://example.com/webhook/79d769db-1b8d-4483-bf2b-b242eae0fa9b\",\n    \"content_type_header\": \"application/json\",\n    \"is_enabled\": true,\n    \"signing_key\": \"signing-key-hmac256\",\n    \"auth_token\": \"auth-token\",\n    \"created_at\": \"2026-04-16T05:18:29+00:00\",\n    \"updated_at\": \"2026-04-16T05:18:29+00:00\"\n}"}],"_postman_id":"c114023f-5021-4bb5-b041-fb9c0e816e2c"},{"name":"Redispatch Failed Webhook","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"a675064c-9ccb-4adb-956c-7e7b5d110ee9"}}],"id":"9edd94d9-1b97-4b8b-bd97-629fcc33f752","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id/logs/:log_id/redispatch","description":"<p>Retries a failed webhook delivery. Useful for recovering from temporary failures or after fixing configuration issues.</p>\n<p>The webhook will be queued for immediate dispatch unless the original payload model no longer exists in the database.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id","logs",":log_id","redispatch"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"35b2cb65-4f62-41ae-8cf0-b005583ca0b8","description":{"content":"<p>The unique ID of the webhook subscription</p>\n","type":"text/plain"},"type":"any","value":"29","key":"webhook_id"},{"id":"ecf2cf6a-752b-4480-94c3-5a58499479b8","description":{"content":"<p>The unique ID of the webhook delivery log entry</p>\n","type":"text/plain"},"type":"any","value":"246","key":"log_id"}]}},"response":[{"id":"d58fbfc1-a733-49f0-ab28-13c28b6323ab","name":"Redispatch Failed Webhook","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id/logs/:log_id/redispatch","host":["{{base_url}}"],"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id","logs",":log_id","redispatch"],"variable":[{"key":"webhook_id","value":"29"},{"key":"log_id","value":"246"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"56"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"success\": true,\n        \"message\": \"Redispatch requested for log 246\",\n        \"event\": \"Events\\\\Courses\\\\Completion_created\"\n    }\n}"}],"_postman_id":"9edd94d9-1b97-4b8b-bd97-629fcc33f752"},{"name":"Relay Webhook Contents","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"7a902c92-80c3-4794-9ad9-f119801a8f85"}}],"id":"1d5ee6d9-9c34-47b8-9351-d8e3c8a6b977","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"Events\\\\Courses\\\\Completion_created\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/relay","description":"<p>Sends a sample webhook event of the specified type to all subscribed endpoints for that event. Useful for testing webhook integrations without waiting for a real LMS event. The body's <code>event</code> field specifies the fully-qualified event name to relay (e.g., <code>Events\\\\Users\\\\Created</code>).</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks","relay"],"host":["{{base_url}}"],"query":[],"variable":[]}},"response":[{"id":"72712038-6e5e-48ae-8e86-9507c82fc91a","name":"Relay Webhook Contents","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"event\": \"Events\\\\Courses\\\\Completion_created\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/relay"},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"success\": true,\n        \"data\": {\n            \"event\": \"Events\\\\Courses\\\\Completion_created\",\n            \"payload\": {\n                \"completion\": {\n                    \"id\": 1,\n                    \"user_id\": 3,\n                    \"user\": {\n                        \"id\": 3,\n                        \"username\": \"john.smith@example.com\",\n                        \"email\": \"john.smith@example.com\",\n                        \"firstname\": \"John\",\n                        \"lastname\": \"Smith\"\n                    },\n                    \"userdata\": [],\n                    \"content_id\": 3,\n                    \"content_type\": \"Course\",\n                    \"content\": {\n                        \"id\": 3,\n                        \"fullname\": \"Example Course\",\n                        \"summary\": \"This is an example course\",\n                        \"timecreated\": 1730333561\n                    },\n                    \"contentdata\": [],\n                    \"certificate_link\": \"\",\n                    \"time_enrolled\": \"2026-04-15T23:02:59+00:00\",\n                    \"time_started\": \"2026-04-15T23:02:59+00:00\",\n                    \"time_completed\": \"2026-04-15T23:03:00+00:00\"\n                }\n            },\n            \"now\": 1776294179\n        }\n    }\n}"}],"_postman_id":"1d5ee6d9-9c34-47b8-9351-d8e3c8a6b977"},{"name":"Update Webhook","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"fb1e59e9-860c-4d1c-828b-85735cedd598"}},{"listen":"prerequest","script":{"packages":{},"type":"text/javascript","id":"a20c4543-8079-4fe0-93a1-eef03eb3f30a"}}],"id":"4e320476-67b8-48f3-ade1-38fb29db120b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"is_enabled\": false,\n    \"url\": \"https://example.com/webhook/e1a03fe3-be2b-490d-a23b-020793f2d046\"\n}"},"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id","description":"<p>Updates an existing webhook subscription. All fields are optional - only include the fields you want to change.</p>\n<p><strong>Updatable fields:</strong></p>\n<ul>\n<li><code>event</code> - Change the event type</li>\n<li><code>url</code> - Change the destination URL (must be HTTPS)</li>\n<li><code>auth_type</code> - Change authentication method</li>\n<li><code>auth_token</code> - Update bearer token or HMAC secret</li>\n<li><code>signing_key</code> - Update signing key</li>\n<li><code>content_type_header</code> - Change content type</li>\n<li><code>is_enabled</code> - Enable/disable the webhook</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"d122ae7d-5bcc-4ca8-b4ea-0a3c1621a284","description":{"content":"<p>The unique ID of the webhook subscription</p>\n","type":"text/plain"},"type":"any","value":"30","key":"webhook_id"}]}},"response":[{"id":"a1275506-987b-418f-b05e-19acc5759602","name":"Update Webhook","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/json","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"url\": \"https://example.com/webhook/e1a03fe3-be2b-490d-a23b-020793f2d046\"\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id","host":["{{base_url}}"],"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id"],"variable":[{"key":"webhook_id","value":"30"}]}},"status":"OK","code":200,"_postman_previewlanguage":"Text","header":[{"key":"Content-Type","value":"application/json"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 30,\n    \"event\": \"Events\\\\Courses\\\\*\",\n    \"url\": \"https://example.com/webhook/e1a03fe3-be2b-490d-a23b-020793f2d046\",\n    \"content_type_header\": \"application/json\",\n    \"is_enabled\": true,\n    \"signing_key\": \"••••••••c256\",\n    \"auth_token\": \"••••••••oken\",\n    \"created_at\": \"2026-04-16T05:11:33+00:00\",\n    \"updated_at\": \"2026-04-16T05:14:18+00:00\"\n}"}],"_postman_id":"4e320476-67b8-48f3-ade1-38fb29db120b"},{"name":"Delete Webhook","event":[{"listen":"test","script":{"exec":[""],"type":"text/javascript","packages":{},"requests":{},"id":"42dbbb39-6329-4ed4-8d2b-f02a69ada37b"}},{"listen":"prerequest","script":{"packages":{},"type":"text/javascript","id":"7bf1ace0-0ae5-4e1f-a1b9-4a41a392debc"}}],"id":"0858fd22-d58a-4859-a357-3690e277986b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id","description":"<p>Soft-deletes a webhook subscription. The subscription is marked as deleted but retained in the database for audit purposes. No further events will be dispatched to this webhook.</p>\n<p>Returns 204 No Content on success.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}},"urlObject":{"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id"],"host":["{{base_url}}"],"query":[],"variable":[{"id":"b4885955-86e4-4e71-a20c-55185ac3fd01","description":{"content":"<p>The unique ID of the webhook subscription</p>\n","type":"text/plain"},"type":"any","value":"127","key":"webhook_id"}]}},"response":[{"id":"323c2bed-fb8d-483c-b637-38a3c940dd83","name":"Delete Webhook","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/json","type":"text"}],"url":{"raw":"{{base_url}}/api/v2/{{tenancy_id}}/webhooks/:webhook_id","host":["{{base_url}}"],"path":["api","v2","{{tenancy_id}}","webhooks",":webhook_id"],"variable":[{"key":"webhook_id","value":"29"}]}},"status":"No Content","code":204,"_postman_previewlanguage":"Text","header":[{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"0858fd22-d58a-4859-a357-3690e277986b"}],"id":"d6107146-44bb-45c5-8d94-9c0c4fccc9e2","description":"<p>Webhook APIs V2 provide a per-subscription model for managing event-driven integrations with the LMS. Each webhook is an independent record with its own ID, URL, authentication configuration, and delivery log history — list, get, update, or delete individual subscriptions by ID.</p>\n<p>Key differences from V1:</p>\n<ul>\n<li><strong>Per-webhook subscriptions</strong> — V1 operated at the event-key level (one subscription per event). V2 lets you create multiple subscriptions for the same event with different URLs, secrets, or configurations.</li>\n<li><strong>HMAC signature authentication</strong> — outgoing payloads are signed using the subscription's <code>signing_key</code>. Verify the signature on your endpoint to confirm the payload came from Acorn and wasn't tampered with in transit.</li>\n<li><strong>Wildcard event support</strong> — subscribe to <code>Events\\Users\\*</code> (or <code>*</code> for all events) to receive every event in a category without creating one webhook per event type.</li>\n<li><strong>Soft-delete</strong> — <code>DELETE</code> marks a subscription as deleted but retains the record in the database for audit. No further events fire on the deleted subscription.</li>\n<li><strong>Secret masking</strong> — <code>signing_key</code> and <code>auth_token</code> are masked in GET responses (<code>••••••••</code> followed by the last 4 characters) to prevent leakage.</li>\n<li><strong>Per-webhook delivery logs</strong> — delivery attempt history (success/failure status, response codes, retry counts) is retrievable per webhook via <code>/webhooks/:webhook_id/logs</code>.</li>\n</ul>\n<p>All endpoints require authentication via an API Key (Bearer token).</p>\n","_postman_id":"d6107146-44bb-45c5-8d94-9c0c4fccc9e2","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]},"isInherited":true,"source":{"_postman_id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","id":"ce70c407-49f1-4b49-82b4-04f54a8c950b","name":"Acorn API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{api_key}}"}]}},"event":[{"listen":"prerequest","script":{"type":"text/javascript","requests":{},"exec":[""],"id":"7e7af6bb-a5a9-492d-a217-769e9583c086"}},{"listen":"test","script":{"type":"text/javascript","requests":{},"exec":[""],"id":"6dbbacc3-c844-4278-9731-11b10c563c8a"}}]}