How to fix it

  1. Verify the authenticating user has the rest_service role by navigating to User Administration > Users, search for the user, and check the Roles related list.
  2. If missing, add the rest_service role by clicking 'Edit' on the Roles related list and adding it from the Collection tab.
  3. Check table-level ACL permissions by navigating to System Security > Access Control (ACL) and filtering by the target table name (e.g., incident).
  4. Review each ACL record for 'read', 'write', 'create', and 'delete' operations - ensure the user has roles that satisfy the Requires role field or that the Script field evaluates to true for this user.
  5. If using a Scripted REST API, navigate to System Web Services > Scripted Web Services > Scripted REST APIs and locate your API definition.
  6. Click into the specific HTTP method resource and verify the Requires authentication and Role required fields - ensure the user has the specified role.
  7. Check for IP restrictions by navigating to System Properties > Basic Configuration and searching for properties containing ip or whitelist.
  8. Review System Logs > System Log > All for entries containing 'REST', 'IP', or '403' around the time of your API call to identify specific blocking reasons.
  9. If IP allowlisting is the issue, add the caller's IP to the allowlist or modify the relevant system property to include the IP range.
  10. For rate limiting issues, navigate to System Definition > Tables and open sys_rt_schedule to check for active rate limiting rules affecting your endpoint.
💡

Test your fix immediately using the REST API Explorer (System Web Services > REST API Explorer) with the same user credentials to verify the 403 error is resolved.