Bem

Bem Review Queue API

The reviewer-facing read surface for entity curation, available on the dashboard (JWT) only. - **`GET /v3/review-queue`** returns a cursor-paginated set of entities awaiting curation, scoped to your account+environment (and optional `bucket`). Each row is a full entity plus a small preview (up to 2) of its first mentions, so a reviewer can triage without opening every entity. Filters AND together. `status` (repeatable) defaults to the pre-terminal states `extracted` + `proposed` when omitted. `type` (repeatable `ety_…` IDs) matches the entity's *effective* type — its assigned type id, or, for entities with no assigned type, its bem-inferred type name. `assignedTo` (`me` or a `usr_…` ID) restricts to entities whose effective type the user reviews. `since` (RFC3339) filters by creation time. Pagination is cursor-based on `entityID` ascending; default limit 50, maximum 200.

Operations 1

GET /v3/review-queue List Review Queue #

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/bem-review-queue-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

bem-review-queue-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bem Review Queue API
  version: 1.0.0
  description: "The reviewer-facing read surface for entity curation, available on the\ndashboard (JWT) only.\n\n- **`GET /v3/review-queue`** returns a cursor-paginated set of entities\n  awaiting curation, scoped to your account+environment (and optional\n  `bucket`). Each row is a full entity plus a small preview (up to 2) of\n  its first mentions, so a reviewer can triage without opening every\n  entity.\n\nFilters AND together. `status` (repeatable) defaults to the pre-terminal\nstates `extracted` + `proposed` when omitted. `type` (repeatable `ety_…`\nIDs) matches the entity's *effective* type — its assigned type id, or, for\nentities with no assigned type, its bem-inferred type name. `assignedTo`\n(`me` or a `usr_…` ID) restricts to entities whose effective type the user\nreviews. `since` (RFC3339) filters by creation time. Pagination is\ncursor-based on `entityID` ascending; default limit 50, maximum 200."
servers:
- url: https://api.bem.ai
  description: US Region API
  variables: {}
- url: https://api.eu1.bem.ai
  description: EU Region API
  variables: {}
security:
- API Key: []
tags:
- name: Review Queue
  description: "The reviewer-facing read surface for entity curation, available on the\ndashboard (JWT) only.\n\n- **`GET /v3/review-queue`** returns a cursor-paginated set of entities\n  awaiting curation, scoped to your account+environment (and optional\n  `bucket`). Each row is a full entity plus a small preview (up to 2) of\n  its first mentions, so a reviewer can triage without opening every\n  entity.\n\nFilters AND together. `status` (repeatable) defaults to the pre-terminal\nstates `extracted` + `proposed` when omitted. `type` (repeatable `ety_…`\nIDs) matches the entity's *effective* type — its assigned type id, or, for\nentities with no assigned type, its bem-inferred type name. `assignedTo`\n(`me` or a `usr_…` ID) restricts to entities whose effective type the user\nreviews. `since` (RFC3339) filters by creation time. Pagination is\ncursor-based on `entityID` ascending; default limit 50, maximum 200."
paths:
  /v3/review-queue:
    get:
      operationId: v3-list-review-queue
      summary: List Review Queue
      description: '**List entities awaiting curation, for a human reviewer''s queue.**


        Returns a cursor-paginated set of entities scoped to your

        account+environment (and optional `bucket`), each carrying a small preview

        of its first mentions so a reviewer can triage without opening every

        entity. All filters AND together.


        - **`status`** (repeatable) restricts to the given lifecycle states.

        Omitting it defaults to the pre-terminal states `extracted` and

        `proposed`.

        - **`type`** (repeatable, `ety_...` IDs) matches the entity''s *effective*

        type: an entity matches when its assigned type is one of these IDs, or it

        has no assigned type and its bem-inferred type name matches one of them.

        - **`assignedTo`** (`me` or a `usr_...` ID) restricts to entities whose

        effective type the given user reviews. `me` resolves to the calling user.

        - **`since`** (RFC3339) restricts to entities created at or after the time.


        Pagination is cursor-based on `entityID` ascending; default limit is 50,

        maximum 200.'
      parameters:
      - name: status
        in: query
        required: false
        description: Restrict to these lifecycle states. Defaults to `extracted` + `proposed`.
        schema:
          type: array
          items:
            type: string
      - name: type
        in: query
        required: false
        description: Restrict to entities whose effective type is one of these `ety_...` IDs.
        schema:
          type: array
          items:
            type: string
      - name: assignedTo
        in: query
        required: false
        description: '`me` or a `usr_...` ID — restrict to entities whose effective type that user reviews.'
        schema:
          type: string
        explode: false
      - name: since
        in: query
        required: false
        description: RFC3339 timestamp — restrict to entities created at or after this time.
        schema:
          type: string
        explode: false
      - name: cursor
        in: query
        required: false
        description: Cursor — an `entityID` defining your place in the list.
        schema:
          type: string
        explode: false
      - name: bucket
        in: query
        required: false
        description: Optional bucket public ID (`bkt_...`) to scope to. Omit for all buckets.
        schema:
          type: string
        explode: false
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          format: int32
          minimum: 1
          maximum: 200
          default: 50
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReviewQueueResponseV3'
      tags:
      - Review Queue
components:
  schemas:
    ReviewQueueResponseV3:
      type: object
      required:
      - entities
      - hasMore
      properties:
        entities:
          type: array
          items:
            $ref: '#/components/schemas/ReviewQueueEntityV3'
          description: The page of entities awaiting curation.
        hasMore:
          type: boolean
          description: Whether more rows exist beyond this page.
        nextCursor:
          type: string
          description: Opaque cursor to pass as `?cursor=` for the next page. Empty when `hasMore` is false.
      description: '`GET /v3/review-queue` response. Cursor-paginated by `entityID` ascending.'
    ReviewQueueMentionV3:
      type: object
      required:
      - mentionID
      - entityID
      - referenceID
      - page
      - surface
      - createdAt
      properties:
        mentionID:
          type: string
          description: Public ID (`emn_...`) of this mention.
        entityID:
          type: string
          description: Public ID (`ent_...`) of the entity this mention resolves to.
        referenceID:
          type: string
          description: The user-provided document handle this mention came from.
        transformationID:
          type: string
          description: Public ID of the parse transformation that produced this mention, when known.
        page:
          type: integer
          format: int32
          description: 1-indexed page number within the source document.
        sectionLabel:
          type: string
          description: The parse-emitted section label this mention sat under, when present.
        surface:
          type: string
          description: The exact surface string Parse extracted on the page.
        createdAt:
          type: string
          format: date-time
          description: When this mention was recorded.
      description: A single per-document occurrence of an entity, used in review-queue previews.
    ReviewQueueEntityV3:
      type: object
      required:
      - entityID
      - canonical
      - type
      - mentionCount
      - surfaceForms
      - createdAt
      - updatedAt
      - status
      - previewMentions
      properties:
        entityID:
          type: string
          description: Public ID (`ent_...`) of the entity.
        canonical:
          type: string
          description: The canonical (longest / most descriptive) surface form.
        type:
          type: string
          description: The effective type name (assigned override if set, else bem-inferred).
        description:
          type: string
          description: Free-form description of the entity, when present.
        mentionCount:
          type: integer
          format: int32
          description: Total mentions across all parsed documents.
        surfaceForms:
          type: array
          items:
            type: string
          description: Distinct surface forms that have resolved to this entity.
        createdAt:
          type: string
          format: date-time
          description: When the entity was created.
        updatedAt:
          type: string
          format: date-time
          description: When the entity was last updated.
        status:
          type: string
          description: 'Curation lifecycle state: `extracted`, `proposed`, `approved`, `rejected`.'
        typeID:
          type: string
          description: Public ID (`ety_...`) of the customer-assigned type, when one is set.
        validatedAt:
          type: string
          format: date-time
          description: When a human approved/rejected the entity. Omitted while un-validated.
        validatedByUserID:
          type: string
          description: Public ID (`usr_...`) of the user who validated the entity, when known.
        previewMentions:
          type: array
          items:
            $ref: '#/components/schemas/ReviewQueueMentionV3'
          description: 'A capped preview (up to 2) of the entity''s first mentions, ordered by

            page then time, so a reviewer can triage without opening each entity.'
      description: 'One row of the review queue: an entity plus a small preview of its mentions.'
  securitySchemes:
    API_Key:
      type: apiKey
      in: header
      name: x-api-key
      description: Authenticate using API Key in request header