openapi: 3.1.0 info: title: AppOmni SCIM 2.0 API description: 'SCIM 2.0 user and group provisioning endpoints used to connect an identity provider to AppOmni. Derived faithfully from the AppOmni public Postman collection published by AppOmni at https://api.appomni.com/ — every path, method, parameter, request body and example response below is taken verbatim from that collection. No operation was invented.' version: 1.0.0 contact: name: AppOmni url: https://appomni.com/support/ license: name: Proprietary url: https://appomni.com/terms-of-service/ x-generated-from: AppOmni public Postman collection (publishedId 2sBXc7Mjib, published 2026-02-04) x-generated-source: https://api.appomni.com/api/collections/45135595/2sBXc7Mjib?segregateAuth=true&versionTag=latest x-generated-method: derived x-generated-date: '2026-09-04' servers: - url: https://{instance}.appomni.com description: AppOmni tenant. Replace {instance} with your AppOmni subdomain — e.g. `acme` if you log in at acme.appomni.com. variables: instance: default: example description: Your AppOmni tenant subdomain security: - bearerAuth: [] tags: - name: SCIM User Management description: "Use SCIM to connect your identity provider to AppOmni, and utilize this API to:\n\n- Get\ \ all users in a company\n\n- Activate or deactivate users\n\n- Update a user’s name, password, user\ \ name, email address\n\n- To update a user’s role, AppOmni SCIM Mappings must be enabled\n\n Note\ \ : Patch operations are not supported.\n\n See AppOmni’s documentation for creating SCIM mappings.\ \ The first step is enabling SC" paths: /scim/v2/Users/{user_id}: put: operationId: updateUsers summary: Update users tags: - SCIM User Management description: "Updates all of the user fields for a user by user id.\n\n If the user ID is not known,\ \ you can run a GET Request such as {{url}}/scim/v2/Users\n\n This will return a list of users\ \ with their user information such as IDs, usernames, groups, etc, which you can use in the body\ \ of the PUT request to ensure you are not changing additional settings. For this reason PUT operations\ \ are considered a best SCIM practice for updates.\n\n Request Body\n\n Field \n Data Type \n\ \ Required \n Description \n Example \n\n schemas \n Array[String] \n Yes \n SCIM schema identifiers\ \ \n Array of schema URIs \n\n userName \n String \n Yes \n The username for the user \n user@example.com\ \ \n\n password \n String \n No \n The password of the user \n mySecurePassword123 \n\n name.givenName\ \ \n String \n No \n The first name of the user \n John \n\n name.familyName \n String \n No \n\ \ The last name of the user \n Doe \n\n externalId \n String \n No \n External identifier from\ \ SAML provider \n ext123456 \n\n locale \n String \n No \n User location/locale \n en-US \n\n\ \ active \n Boolean \n No \n Whether the identity is active \n true \n\n emails \n Array[Object]\ \ \n No \n List of user email objects \n Array of email objects \n\n Response Fields\n\n Field\ \ \n Data Type \n Description \n Example \n\n id \n String \n Unique identifier generated by SCIM\ \ endpoint \n 12345 \n\n schemas \n Array[String] \n SCIM schema identifiers \n Array of schema\ \ URIs \n\n userName \n String \n The username for the user \n user@example.com \n\n name \n Object\ \ \n User name object \n Object with givenName, familyName, formatted \n\n displayName \n String\ \ \n Display name of the user \n John Doe \n\n emails \n Array[Object] \n List of user email objects\ \ \n Array of email objects \n\n active \n Boolean \n Whether the identity is active \n true \n\ \n groups \n Array[Object] \n List of groups the user belongs to \n Array of group objects \n\n\ \ externalId \n String \n External identifier from SAML provider \n ext123456 \n\n meta \n Object\ \ \n Metadata about the resource \n Object with resourceType, created, lastModified, location" parameters: - name: user_id in: path required: true description: Path parameter user_id schema: type: string requestBody: required: true content: application/json: schema: type: object example: schemas: - urn:ietf:params:scim:schemas:core:2.0:User userName: '{{username}}' password: '{{password}}' name: givenName: '{{first_name}}' familyName: '{{last_name}}' externalId: '{{external_id}}' locale: en-US active: true emails: - value: '{{email}}' primary: true responses: '200': description: Successful response '401': description: Unauthorized — missing or invalid AppOmni API token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden — the token lacks permission for this resource content: application/json: schema: $ref: '#/components/schemas/Error' get: operationId: user summary: User tags: - SCIM User Management description: "Returns a specified user by ID.\n\n Response Fields\n\n Field \n Data Type \n Description\ \ \n Example \n\n id \n String \n Unique identifier generated by SCIM endpoint \n 891 \n\n externalId\ \ \n String or null \n External identifier from SAML provider \n null \n\n schemas \n Array[String]\ \ \n SCIM schema identifiers \n Array of schema URIs \n\n userName \n String \n The username for\ \ the user \n user@example.com \n\n name \n Object \n User's name object \n Object with givenName,\ \ familyName, formatted \n\n displayName \n String \n Display name of the user \n John Doe \n\n\ \ emails \n Array[Object] \n List of user email objects \n Array of email objects \n\n active\ \ \n Boolean \n Whether the identity is active \n true \n\n groups \n Array[Object] \n List of\ \ groups the user belongs to \n Array of group objects \n\n meta \n Object \n Metadata about the\ \ resource \n Object with resourceType, created, lastModified, location" parameters: - name: user_id in: path required: true description: Path parameter user_id schema: type: string responses: '200': description: User '401': description: Unauthorized — missing or invalid AppOmni API token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden — the token lacks permission for this resource content: application/json: schema: $ref: '#/components/schemas/Error' /scim/v2/Users: get: operationId: allUsers summary: All users tags: - SCIM User Management description: "Returns all users.\n\n Response Fields\n\n Field \n Data Type \n Description \n Example\ \ \n\n schemas \n Array[String] \n SCIM schema identifiers \n Array of schema URIs \n\n totalResults\ \ \n Integer \n Total number of users \n 1 \n\n itemsPerPage \n Integer \n Number of items per\ \ page \n 50 \n\n startIndex \n Integer \n Starting index for pagination \n 1 \n\n Resources \n\ \ Array[Object] \n Array of user objects \n Array of user objects \n\n User Object Schema\n\n\ \ Field \n Data Type \n Description \n Example \n\n id \n String \n Unique identifier generated\ \ by SCIM endpoint \n 891 \n\n externalId \n String or null \n External identifier from SAML provider\ \ \n null \n\n schemas \n Array[String] \n SCIM schema identifiers \n Array of schema URIs \n\n\ \ userName \n String \n The username for the user \n user@example.com \n\n name \n Object \n User's\ \ name object \n Object with givenName, familyName, formatted \n\n displayName \n String \n Display\ \ name of the user \n John Doe \n\n emails \n Array[Object] \n List of user email objects \n Array\ \ of email objects \n\n active \n Boolean \n Whether the identity is active \n true \n\n groups\ \ \n Array[Object] \n List of groups the user belongs to \n Array of group objects \n\n meta \n\ \ Object \n Metadata about the resource \n Object with resourceType, created, lastModified, location" responses: '200': description: List Users content: text/plain: schema: type: string example: "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\ \n ],\n \"totalResults\": 1,\n \"itemsPerPage\": 50,\n \"startIndex\": 1,\n \ \ \"Resources\": [\n {\n \"id\": \"891\",\n \"externalId\":\ \ null,\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\ \n ],\n \"userName\": \"user@example.com\",\n \"name\":\ \ {\n \"givenName\": \"John\",\n \"familyName\": \"Doe\",\n\ \ \"formatted\": \"John Doe\"\n },\n \"displayName\"\ : \"John Doe\",\n \"emails\": [\n {\n \"value\"\ : \"user@example.com\",\n \"primary\": true\n }\n \ \ ],\n \"active\": true,\n \"groups\": [\n {\n\ \ \"value\": \"315\",\n \"$ref\": \"https://example.appomni.com/scim/v2/Groups/315\"\ ,\n \"display\": \"Administrators\"\n }\n ],\n\ \ \"meta\": {\n \"resourceType\": \"User\",\n \"\ created\": \"2021-07-06T15:17:44.031973+00:00\",\n \"lastModified\": \"\ 2025-04-08T21:00:45.291578+00:00\",\n \"location\": \"https://example.appomni.com/scim/v2/Users/891\"\ \n }\n }\n}\n" '401': description: Unauthorized — missing or invalid AppOmni API token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden — the token lacks permission for this resource content: application/json: schema: $ref: '#/components/schemas/Error' /scim/v2/Users/: get: operationId: userWithFilter summary: User with filter tags: - SCIM User Management description: "Returns a specified user with filtered results.\n\n Response Fields\n\n Field \n Data\ \ Type \n Description \n Example \n\n schemas \n Array[String] \n SCIM schema identifiers \n Array\ \ of schema URIs \n\n totalResults \n Integer \n Total number of matching users \n 2 \n\n itemsPerPage\ \ \n Integer \n Number of items per page \n 50 \n\n startIndex \n Integer \n Starting index for\ \ pagination \n 1 \n\n Resources \n Array[Object] \n Array of matching user objects \n Array of\ \ user objects \n\n User Object Schema\n\n Field \n Data Type \n Description \n Example \n\n id\ \ \n String \n Unique identifier generated by SCIM endpoint \n 891 \n\n externalId \n String or\ \ null \n External identifier from SAML provider \n null \n\n schemas \n Array[String] \n SCIM\ \ schema identifiers \n Array of schema URIs \n\n userName \n String \n The username for the user\ \ \n user@example.com \n\n name \n Object \n User's name object \n Object with givenName, familyName,\ \ formatted \n\n displayName \n String \n Display name of the user \n John Doe \n\n emails \n\ \ Array[Object] \n List of user email objects \n Array of email objects \n\n active \n Boolean\ \ \n Whether the identity is active \n true \n\n groups \n Array[Object] \n List of groups the\ \ user belongs to \n Array of group objects \n\n meta \n Object \n Metadata about the resource\ \ \n Object with resourceType, created, lastModified, location" parameters: - name: filter in: query required: false description: Query parameter filter schema: type: string responses: '200': description: User with filter content: application/json: schema: type: object examples: Userwithfilter: summary: User with filter value: schemas: - urn:ietf:params:scim:api:messages:2.0:ListResponse totalResults: 2 itemsPerPage: 50 startIndex: 1 Resources: - id: '891' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:User userName: user@example.com name: givenName: John familyName: Doe formatted: John Doe displayName: John Doe emails: - value: user@example.com primary: true active: true groups: - value: '315' $ref: https://example.appomni.com/scim/v2/Groups/315 display: Administrators meta: resourceType: User created: '2021-07-06T15:17:44.031973+00:00' lastModified: '2025-04-08T21:00:45.291578+00:00' location: https://example.appomni.com/scim/v2/Users/891 - id: '32078' externalId: user1 schemas: - urn:ietf:params:scim:schemas:core:2.0:User userName: user@example.onmicrosoft.com name: givenName: John familyName: Doe formatted: John Doe displayName: John Doe emails: - value: user@example.onmicrosoft.com primary: true active: true groups: - value: '315' $ref: https://example.appomni.com/scim/v2/Groups/315 display: Administrators meta: resourceType: User created: '2024-09-17T19:31:33.590464+00:00' lastModified: '2024-09-17T19:31:33.927287+00:00' location: https://example.appomni.com/scim/v2/Users/32078 '401': description: Unauthorized — missing or invalid AppOmni API token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden — the token lacks permission for this resource content: application/json: schema: $ref: '#/components/schemas/Error' /scim/v2/Groups: get: operationId: listGroups summary: List groups tags: - SCIM User Management description: "Returns a list of all groups.\n\n Note : Only Get operations are available for groups.\n\ \n Response Fields\n\n Field \n Data Type \n Description \n Example \n\n schemas \n Array[String]\ \ \n SCIM schema identifiers \n Array of schema URIs \n\n totalResults \n Integer \n Total number\ \ of groups \n 13 \n\n itemsPerPage \n Integer \n Number of items per page \n 50 \n\n startIndex\ \ \n Integer \n Starting index for pagination \n 1 \n\n Resources \n Array[Object] \n Array of\ \ group objects \n Array of group objects \n\n Group Object Schema\n\n Field \n Data Type \n Description\ \ \n Example \n\n id \n String \n Unique identifier for the group \n 315 \n\n externalId \n String\ \ or null \n External identifier from SAML provider \n null \n\n schemas \n Array[String] \n SCIM\ \ schema identifiers \n Array of schema URIs \n\n displayName \n String \n Display name of the\ \ group \n Administrators \n\n members \n Array[Object] \n List of group members \n Array of member\ \ objects \n\n meta \n Object \n Metadata about the resource \n Object with resourceType and location" responses: '200': description: List Groups content: application/json: schema: type: object examples: ListGroups: summary: List Groups value: schemas: - urn:ietf:params:scim:api:messages:2.0:ListResponse totalResults: 13 itemsPerPage: 50 startIndex: 1 Resources: - id: '315' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Administrators members: - value: '32078' $ref: https://example.appomni.com/scim/v2/Users/32078 display: John Doe - value: '891' $ref: https://example.appomni.com/scim/v2/Users/891 display: John Doe meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/315 - id: '317' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Readonly members: - value: '32360' $ref: https://example.appomni.com/scim/v2/Users/32360 display: Jane Smith - value: '36521' $ref: https://example.appomni.com/scim/v2/Users/36521 display: Read Only - value: '34763' $ref: https://example.appomni.com/scim/v2/Users/34763 display: Bob Johnson meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/317 - id: '611' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Service Onboarder members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/611 - id: '816' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Insights Manager members: - value: '32360' $ref: https://example.appomni.com/scim/v2/Users/32360 display: Jane Smith meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/816 - id: '817' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Issues Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/817 - id: '818' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Users Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/818 - id: '819' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Monitored Service Role Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/819 - id: '1566' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Policies Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/1566 - id: '1695' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Service Admin members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/1695 - id: '1979' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Threat Detection Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/1979 - id: '2805' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role External Ticketing Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/2805 - id: '2806' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role External Ticketing User members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/2806 - id: '4087' externalId: null schemas: - urn:ietf:params:scim:schemas:core:2.0:Group displayName: Role Findings Manager members: [] meta: resourceType: Group location: https://example.appomni.com/scim/v2/Groups/4087 '401': description: Unauthorized — missing or invalid AppOmni API token content: application/json: schema: $ref: '#/components/schemas/Error' '403': description: Forbidden — the token lacks permission for this resource content: application/json: schema: $ref: '#/components/schemas/Error' components: securitySchemes: bearerAuth: type: http scheme: bearer description: 'AppOmni API access token, created and managed in the AppOmni platform under Settings > API Settings. Sent as `Authorization: Bearer `.' schemas: Error: type: object title: Error description: Standard Django REST Framework error envelope returned by the AppOmni API. properties: detail: type: string description: Human readable error message