> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sagescreen.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# List users for a council

> Returns all users belonging to a council, including primary council
users and multi-council members. Sorted alphabetically by display name.

Non-admin users are restricted to viewing their own council only.

Filters to allowed roles: `council_member`, `council_power_user`,
`council_admin`, `administrator`, `power_user`, `sales_admin`, `sales_user`.

Requires `list_users` capability.

Registered as `wp_ajax_sagescreen_get_council_users` — **login required**.




## OpenAPI

````yaml /openapi/private/specs/wp/wp-ajax-misc.yml post /wp-admin/admin-ajax.php?action=sagescreen_get_council_users
openapi: 3.1.0
info:
  title: SageScreen — Misc AJAX Modules (User · Council · Billing · Splash · Demo)
  version: 1.0.0
servers:
  - url: https://{domain}/wp-json/sagescreen/v1
    description: WordPress REST API
    variables:
      domain:
        default: api.sagescreen.app
security: []
tags:
  - name: User – REST
    description: Zapier-facing REST endpoints
  - name: User – AJAX
    description: Council user management AJAX endpoints
  - name: User – Profile
    description: Self-service profile updates
  - name: Council – REST
    description: Zapier-facing REST endpoints for council data sync
  - name: Council – AJAX
    description: Council user and sage management AJAX endpoints
  - name: Billing – Stripe
    description: Stripe webhook and subscription endpoints
  - name: Billing – Broadcast
    description: Postmark broadcast unsubscribe endpoint
  - name: Billing – Pipedrive
    description: Pipedrive CRM ID set-* webhook endpoints (called by Zapier)
  - name: Billing – AJAX
    description: Credit ledger, reactivation, and portal AJAX endpoints
  - name: Splash
    description: Splash banner AJAX endpoints
  - name: Demo
    description: Demo signup and management AJAX endpoints
  - name: CSV Upload
    description: Bulk candidate CSV upload
paths:
  /wp-admin/admin-ajax.php?action=sagescreen_get_council_users:
    post:
      tags:
        - Council – AJAX
      summary: List users for a council
      description: >
        Returns all users belonging to a council, including primary council

        users and multi-council members. Sorted alphabetically by display name.


        Non-admin users are restricted to viewing their own council only.


        Filters to allowed roles: `council_member`, `council_power_user`,

        `council_admin`, `administrator`, `power_user`, `sales_admin`,
        `sales_user`.


        Requires `list_users` capability.


        Registered as `wp_ajax_sagescreen_get_council_users` — **login
        required**.
      operationId: ajaxGetCouncilUsers
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/GetCouncilUsersRequest'
      responses:
        '200':
          description: Council users list
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/GetCouncilUsersSuccess'
                  - $ref: '#/components/schemas/CouncilInternalAjaxErrorResponse'
              examples:
                success:
                  summary: Users retrieved
                  value:
                    success: true
                    data:
                      - id: 456
                        name: Jane Doe
                        username: jane.doe
                        email: jane@greenville.gov
                        role: Council Admin
                        role_raw: council_admin
                        last_login: '2024-02-19 10:30:00'
                        council_id: c9d8e7f6-5a4b-3c2d-1e0f-a1b2c3d4e5f6
                        is_primary_council: true
                    count: 1
                    message: Council users retrieved successfully
                noNonce:
                  summary: Invalid nonce
                  value:
                    success: false
                    message: Security check failed
                noPermission:
                  summary: Insufficient permissions
                  value:
                    success: false
                    message: Insufficient permissions
      security:
        - wpAjaxNonce: []
components:
  schemas:
    GetCouncilUsersRequest:
      type: object
      required:
        - action
        - nonce
      properties:
        action:
          type: string
          const: sagescreen_get_council_users
        nonce:
          type: string
          description: WP nonce (`sagescreen_ajax_nonce` or `sagescreen_frontend_nonce`)
        council_id:
          type: string
          format: uuid
          description: Council UUID (optional — non-admins restricted to own council)
          examples:
            - c9d8e7f6-5a4b-3c2d-1e0f-a1b2c3d4e5f6
    GetCouncilUsersSuccess:
      type: object
      properties:
        success:
          type: boolean
          const: true
        data:
          type: array
          items:
            $ref: '#/components/schemas/CouncilUser'
        count:
          type: integer
          description: Number of users returned
          examples:
            - 5
        message:
          type: string
          examples:
            - Council users retrieved successfully
    CouncilInternalAjaxErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          const: false
        message:
          type: string
          examples:
            - Security check failed
    CouncilUser:
      type: object
      description: User record as returned in council user lists
      properties:
        id:
          type: integer
          description: WordPress user ID
          examples:
            - 456
        name:
          type: string
          description: Display name
          examples:
            - Jane Doe
        username:
          type: string
          description: WordPress username
          examples:
            - jane.doe
        email:
          type: string
          format: email
          description: Email address
          examples:
            - jane@greenville.gov
        role:
          type: string
          description: Human-readable role label
          examples:
            - Council Admin
        role_raw:
          type: string
          enum:
            - council_member
            - council_power_user
            - council_admin
            - administrator
            - power_user
            - sales_admin
            - sales_user
          description: Raw WordPress role slug
          examples:
            - council_admin
        last_login:
          type: string
          description: Last login timestamp
          examples:
            - '2024-02-19 10:30:00'
        council_id:
          type: string
          format: uuid
          description: Council UUID
          examples:
            - c9d8e7f6-5a4b-3c2d-1e0f-a1b2c3d4e5f6
        is_primary_council:
          type: boolean
          description: Whether this is the user's primary council
          examples:
            - true
  securitySchemes:
    wpAjaxNonce:
      type: apiKey
      in: query
      name: nonce
      description: WordPress AJAX nonce (passed as form field, verified per-action)

````