AppZen User Groups API

The User Groups API from AppZen — 3 operation(s) for user groups.

Operations 3

GET /user-groups Returns all user groups for the customer
POST /user-group Creates/updates a user group
GET /user-group/{external-group-id} Returns a user group

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appzen-user-groups-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appzen-user-groups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Autonomous AP APIs Chart of Accounts User Groups API
  description: Public APIs for integrating with Autonomous AP
  version: 2.0.3
servers:
- url: https://<env>.appzen.com/dictionary-data-services
security:
- API Key Header: []
  Customer Id Header: []
  Customer Key Header: []
tags:
- name: User Groups
paths:
  /user-groups:
    get:
      tags:
      - User Groups
      summary: Returns all user groups for the customer
      description: Returns every user group for the customer as an array. Each element has the same shape as the single-group GET response.
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/user-group'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-400-error-response'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-401-error-response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-403-error-response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-404-error-response'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-500-error-response'
  /user-group:
    post:
      tags:
      - User Groups
      summary: Creates/updates a user group
      description: 'Creates a user group, or updates the existing one with the same `external_group_id` (upsert).

        An update is a full replace of the group, including its `members`. Setting `status` to

        `DISABLED` archives the group, and is allowed even while the group is referenced by in-flight

        invoices or automations. Members that are not existing AppZen users are skipped and returned

        in `unresolved_user_ids` (the request still succeeds).

        '
      parameters:
      - $ref: '#/components/parameters/user-group-json-schema'
      responses:
        200:
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user-group-sync-result'
        201:
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user-group-sync-result'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-400-error-response'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-401-error-response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-403-error-response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-404-error-response'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-500-error-response'
  /user-group/{external-group-id}:
    get:
      tags:
      - User Groups
      summary: Returns a user group
      description: Returns the details (including members) of the group matching the external group id.
      parameters:
      - $ref: '#/components/parameters/external-group-id'
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/user-group'
        400:
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-400-error-response'
        401:
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-401-error-response'
        403:
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-403-error-response'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-404-error-response'
        500:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/http-500-error-response'
components:
  schemas:
    http-403-error-response:
      type: object
      properties:
        timestamp:
          type: string
          example: 2019-01-17T16:12:45.977+0000
        status:
          type: string
          example: 403
        error:
          type: string
          example: Forbidden
        message:
          type: string
          example: 'Error code : 17e3338d - You do not have permission to access this resource'
    user-group-sync-result:
      type: object
      description: Result of a create/update (POST) operation.
      properties:
        group_id:
          type: string
          description: AppZen-assigned unique identifier for the group.
          example: '734512'
        external_group_id:
          type: string
          example: AP-GROUP-1001
        management_source:
          description: The `management_source` the group was created/updated with.
          allOf:
          - $ref: '#/components/schemas/group-management-source'
        status:
          type: string
          description: Outcome of the operation.
          enum:
          - CREATED
          - UPDATED
          example: CREATED
        unresolved_user_ids:
          type: array
          description: 'Member user ids that are not existing AppZen users. These members are skipped; the request

            still succeeds and the rest of the group is applied.

            '
          items:
            type: string
          example:
          - az-user-99999
    date-time:
      type: string
      format: date-time
      example: '2024-03-01T11:01:00Z'
      description: date should be in UTC format
    user-group:
      type: object
      description: A user group as returned by the API.
      properties:
        group_id:
          type: string
          description: AppZen-assigned unique identifier for the group (read-only).
          example: '734512'
        customer_id:
          type: string
          description: AppZen customer id (read-only).
          example: '488059'
        external_group_id:
          type: string
          example: AP-GROUP-1001
        management_source:
          $ref: '#/components/schemas/group-management-source'
        category:
          $ref: '#/components/schemas/group-category'
        product:
          $ref: '#/components/schemas/group-product'
        group_name:
          type: string
          example: AP Approvers - North America
        group_description:
          type: string
          example: Approvers for North America AP invoices
        group_email:
          type: string
          example: ap-approvers-na@abc.com
        notification_method:
          $ref: '#/components/schemas/group-notification-method'
        status:
          $ref: '#/components/schemas/group-status'
        members:
          type: array
          items:
            $ref: '#/components/schemas/user-group-member'
        source_created_at:
          allOf:
          - $ref: '#/components/schemas/date-time'
        source_last_updated_at:
          allOf:
          - $ref: '#/components/schemas/date-time'
        created_at:
          allOf:
          - $ref: '#/components/schemas/date-time'
        created_by:
          type: string
          example: az-user-00001
        updated_at:
          allOf:
          - $ref: '#/components/schemas/date-time'
        updated_by:
          type: string
          example: az-user-00001
    http-500-error-response:
      type: object
      properties:
        timestamp:
          type: string
          example: 2019-01-17T16:12:45.977+0000
        status:
          type: string
          example: 500
        error:
          type: string
          example: Internal Server Error
        message:
          type: string
          example: 'Error code : 17e3338d - Unable to process your request at this moment, please try again later'
    http-401-error-response:
      type: object
      properties:
        timestamp:
          type: string
          example: 2019-01-17T16:12:45.977+0000
        status:
          type: string
          example: 401
        error:
          type: string
          example: Unauthorized
        message:
          type: string
          example: 'Error code : 17e3338d - Unable to authenticate credentials'
    user-group-json-schema:
      type: object
      description: Request body for creating/updating a user group.
      properties:
        external_group_id:
          type: string
          description: Identifier of the group in the external system. Identity / upsert key.
          example: AP-GROUP-1001
        management_source:
          description: Required. Who owns the group.
          allOf:
          - $ref: '#/components/schemas/group-management-source'
        category:
          $ref: '#/components/schemas/group-category'
        product:
          $ref: '#/components/schemas/group-product'
        group_name:
          type: string
          description: Display name of the group. Optional.
          example: AP Approvers - North America
        group_description:
          type: string
          description: Description of the group. Optional.
          example: Approvers for North America AP invoices
        group_email:
          type: string
          description: Group email alias. Optional.
          example: ap-approvers-na@abc.com
        notification_method:
          $ref: '#/components/schemas/group-notification-method'
        status:
          $ref: '#/components/schemas/group-status'
        source_created_at:
          description: When the group was created in the source system. Optional.
          allOf:
          - $ref: '#/components/schemas/date-time'
        source_last_updated_at:
          description: When the group was last modified in the source system. Optional.
          allOf:
          - $ref: '#/components/schemas/date-time'
        members:
          type: array
          description: The group's members. Replaced in full on each create/update. Any user_id that is not an existing AppZen user is skipped and returned in `unresolved_user_ids`; the request still succeeds.
          items:
            $ref: '#/components/schemas/user-group-member-input'
      required:
      - external_group_id
      - management_source
      - category
      - product
    group-notification-method:
      type: string
      description: How notifications are delivered to the group.
      enum:
      - GROUP_NOTIFICATION_METHOD_SEND_TO_MEMBERS
      - GROUP_NOTIFICATION_METHOD_SEND_TO_GROUP_ALIAS
      - GROUP_NOTIFICATION_METHOD_SEND_TO_BOTH
      default: GROUP_NOTIFICATION_METHOD_SEND_TO_MEMBERS
      example: GROUP_NOTIFICATION_METHOD_SEND_TO_MEMBERS
    group-category:
      type: string
      description: Purpose of the group.
      enum:
      - TRANSACTION_ASSIGNMENT
      - BIZ_USER_ASSIGNMENT
      - APPROVAL_ASSIGNMENT
      example: APPROVAL_ASSIGNMENT
    http-400-error-response:
      type: object
      properties:
        timestamp:
          type: string
          example: 2019-01-17T16:12:45.977+0000
        status:
          type: string
          example: 400
        error:
          type: string
          example: Bad Request
        message:
          type: string
          example: 'Error code : 17e3338d - Invalid request, please fix and resend'
    group-management-source:
      type: string
      description: Who owns the group.
      enum:
      - APPZEN_MANAGED
      - EXTERNALLY_MANAGED
      example: EXTERNALLY_MANAGED
    user-group-member-input:
      type: object
      description: A group member to assign.
      properties:
        user_id:
          type: string
          description: The AppZen user id of the member. If it is not an existing AppZen user, the member is skipped and returned in `unresolved_user_ids`.
          example: az-user-90211
      required:
      - user_id
    group-product:
      type: string
      description: AppZen product the group belongs to.
      enum:
      - PRODUCT_AP
      - PRODUCT_EXPENSE
      - PRODUCT_SPEND_AUDIT
      - PRODUCT_AUTONOMOUS_INBOX
      - PRODUCT_AGENTS
      example: PRODUCT_AP
    user-group-member:
      type: object
      description: A group member as returned by the API.
      properties:
        user_id:
          type: string
          example: az-user-90211
        first_name:
          type: string
          example: John
        last_name:
          type: string
          example: Doe
        email:
          type: string
          example: john.doe@abc.com
        added_at:
          allOf:
          - $ref: '#/components/schemas/date-time'
        added_by:
          type: string
          description: AppZen user id who added this member.
          example: az-user-00001
    group-status:
      type: string
      description: Lifecycle status of the group.
      enum:
      - ACTIVE
      - DISABLED
      default: ACTIVE
      example: ACTIVE
    http-404-error-response:
      type: object
      properties:
        timestamp:
          type: string
          example: 2019-01-17T16:12:45.977+0000
        status:
          type: string
          example: 404
        error:
          type: string
          example: Not Found
        message:
          type: string
          example: 'Error code : 17e3338d - The resource you specified cannot be not found'
  parameters:
    user-group-json-schema:
      in: body
      required: true
      name: user-group-json-schema
      schema:
        $ref: '#/components/schemas/user-group-json-schema'
    external-group-id:
      in: path
      description: The group identifier in the source ERP system (e.g. "AP-GROUP-1001"). This is the stable identity of an externally managed group.
      required: true
      name: external-group-id
      schema:
        type: string
  securitySchemes:
    API_Key_Header:
      type: apiKey
      in: header
      name: x-api-key
    Customer_Id_Header:
      type: apiKey
      in: header
      name: customer-id
    Customer_Key_Header:
      type: apiKey
      in: header
      name: customer-key