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

# Get unpublished changes

> Summarizes the working set's unpublished changes and returns `working_set_revision`, the value to send as `expected_revision` when publishing or discarding. Requires an admin API key, the **Admin (tenant-wide)** key type, which only an owner or admin of this organization can create. **Workspace scoped** and **Tenant scoped** keys are refused with 403. The `x-user-token` scheme is the Minerva dashboard session token; with it, writes require an owner or admin.



## OpenAPI

````yaml /api-reference/admin-api.json get /custom-lists/v2/organizations/{orgId}/{listId}/pending-changes
openapi: 3.0.0
info:
  version: 1.0.0
  title: MinervaAI Admin API
  description: Admin endpoints for the Minerva application suite.
servers:
  - url: https://api.gominerva.com
    description: The production API server for Minerva.
security:
  - ApiKeyAuth: []
tags: []
paths:
  /custom-lists/v2/organizations/{orgId}/{listId}/pending-changes:
    get:
      tags:
        - Custom Lists
      summary: Get unpublished changes
      description: >-
        Summarizes the working set's unpublished changes and returns
        `working_set_revision`, the value to send as `expected_revision` when
        publishing or discarding. Requires an admin API key, the **Admin
        (tenant-wide)** key type, which only an owner or admin of this
        organization can create. **Workspace scoped** and **Tenant scoped** keys
        are refused with 403. The `x-user-token` scheme is the Minerva dashboard
        session token; with it, writes require an owner or admin.
      parameters:
        - in: path
          name: orgId
          required: true
          schema:
            type: string
          description: >-
            The organization (tenant) id. Must equal the tenant of the admin
            key.
        - in: path
          name: listId
          required: true
          schema:
            type: string
          description: The custom list id.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomListPendingChangesResponse'
              examples:
                pending:
                  summary: One staged record addition, not yet published.
                  value:
                    data:
                      working_set_revision: 1
                      added: 1
                      updated: 0
                      removed: 0
                      total_after: 1
                      has_changes: true
                      sample:
                        - record_uid: cl-0001
                          name: Acme Trading Ltd
                          change: added
                      config_changes: []
                clean:
                  summary: No unpublished changes.
                  value:
                    data:
                      working_set_revision: 2
                      added: 0
                      updated: 0
                      removed: 0
                      total_after: 1
                      has_changes: false
                      sample: []
                      config_changes: []
        '403':
          description: >-
            No credentials were sent; the API key was revoked, has expired, or
            its application is deactivated (`API-key authentication was
            denied.`); the key is not an admin application key (**Workspace
            scoped** and **Tenant scoped** keys are refused); it belongs to
            another organization; or its creator is no longer an owner or admin.
            For a user token, the user is not a member, or is not an owner or
            admin on a write. If the tenant is not entitled to custom lists, the
            body is a JSON `CustomListError` with `error: not_enabled` (`Custom
            lists are not enabled for this tenant.`); every other 403 is plain
            text. Branch on `Content-Type`.
          content:
            text/plain:
              schema:
                type: string
                example: 'Missing Authorization: Api-Key or x-api-key header.'
            application/json:
              schema:
                $ref: '#/components/schemas/CustomListError'
              examples:
                not-enabled:
                  summary: Tenant not entitled.
                  value:
                    error: not_enabled
                    message: Custom lists are not enabled for this tenant.
        '404':
          description: >-
            Custom list management is not enabled (`Custom list management is
            not enabled.`); the list, record, upload, job or workspace is not in
            this organization; or the application API key (`mrva-…`) is unknown
            (`API-key authentication was denied.`).
          content:
            text/plain:
              schema:
                type: string
                example: Custom list management is not enabled.
        '503':
          description: >-
            The authentication service is temporarily unavailable
            (`Authentication service is unavailable.`). Nothing was changed;
            retry with backoff.
          content:
            text/plain:
              schema:
                type: string
                example: Authentication service is unavailable.
      security:
        - AdminApiKeyAuth: []
        - UserTokenAuth: []
components:
  schemas:
    CustomListPendingChangesResponse:
      type: object
      description: '`{ data: CustomListPendingChanges }`'
      properties:
        data:
          $ref: '#/components/schemas/CustomListPendingChanges'
      required:
        - data
    CustomListError:
      type: object
      properties:
        error:
          type: string
          description: >-
            Machine-readable code, e.g. `validation_failed`, `limit_exceeded`,
            `conflict`, `not_enabled`, `upload_capacity_exceeded`,
            `upload_request_timeout`.
        message:
          type: string
        limit:
          type: string
          description: >-
            For `limit_exceeded`: the entitlement limit, e.g.
            `maxRecordsPerList`.
        max:
          type: integer
          description: 'For `limit_exceeded`: the configured maximum.'
        retryable:
          type: boolean
      additionalProperties: true
    CustomListPendingChanges:
      type: object
      properties:
        working_set_revision:
          type: integer
          description: Send as `expected_revision` when publishing or discarding.
        added:
          type: integer
        updated:
          type: integer
        removed:
          type: integer
        total_after:
          type: integer
        has_changes:
          type: boolean
        sample:
          type: array
          items:
            type: object
            properties:
              record_uid:
                type: string
              name:
                type: string
              change:
                type: string
                enum:
                  - added
                  - updated
                  - removed
            required:
              - record_uid
              - name
              - change
        config_changes:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              from:
                type: string
              to:
                type: string
            required:
              - field
              - from
              - to
      required:
        - added
        - updated
        - removed
        - total_after
        - has_changes
        - sample
        - config_changes
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Admin API key for authentication. Manage API keys in the Minerva
        dashboard under Administration > Developers.
    AdminApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        An admin application key: `Authorization: Api-Key <token>` (or legacy
        `x-api-key`). Only tenant owners and admins can create one. Standard
        keys are refused with 403 on workspace management and tenant
        configuration routes.
    UserTokenAuth:
      type: apiKey
      in: header
      name: x-user-token
      description: Firebase user token for authentication

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.