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

# Unmet demand

> What people asked the tools for and did not get, by week and combination asked, only where at least the minimum of distinct people asked it.



## OpenAPI

````yaml openapi/en/cell.json GET /v1/measure/unmet-demand
openapi: 3.1.0
info:
  title: Niadra data API
  version: '1'
  description: >-
    Writing, context, history, objects, identity, privacy and governance of one
    space. Every space has a stable address, with the space and the region in
    its name.
servers:
  - url: https://{space}.{region}.api.niadra.com
    variables:
      space:
        default: acme-prod
        description: The space, which comes in the source key.
      region:
        default: us-east-2
        description: The region of the space, which also comes in the key.
security: []
paths:
  /v1/measure/unmet-demand:
    get:
      tags:
        - signals
      summary: Unmet demand
      description: >-
        What people asked the tools for and did not get, by week and combination
        of what was asked, where at

        least the space's minimum of distinct people asked it: never per person.


        **Authentication.** Console person token with the `analysis` role (or
        admin), or a source key with the `admin` scope. It answers only in a
        space with the `measurement` feature on (the `features` document); in a
        space without it, 404.
      operationId: unmet_demand_v1_measure_unmet_demand_get
      parameters:
        - in: query
          name: since
          required: true
          schema:
            format: date
            title: Since
            type: string
        - in: query
          name: until
          required: true
          schema:
            format: date
            title: Until
            type: string
        - in: query
          name: tool
          required: false
          schema:
            anyOf:
              - maxLength: 64
                type: string
              - type: 'null'
            title: Tool
        - in: query
          name: cursor
          required: false
          schema:
            anyOf:
              - maxLength: 200
                type: string
              - type: 'null'
            title: Cursor
        - in: query
          name: limit
          required: false
          schema:
            default: 50
            maximum: 200
            minimum: 1
            title: Limit
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnmetDemandPage'
          description: Successful Response
        '422':
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
          description: The request does not match the contract.
      security:
        - sourceKey: []
        - personToken: []
components:
  schemas:
    UnmetDemandPage:
      additionalProperties: false
      properties:
        items:
          items:
            $ref: '#/components/schemas/UnmetDemand'
          title: Items
          type: array
        min_people:
          title: Min People
          type: integer
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
        since:
          format: date
          title: Since
          type: string
        until:
          format: date
          title: Until
          type: string
      required:
        - since
        - until
        - min_people
        - items
      title: UnmetDemandPage
      type: object
    Problem:
      additionalProperties: false
      description: RFC 9457 problem details; `code` comes from the versioned error catalog.
      properties:
        code:
          title: Code
          type: string
        detail:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Detail
        request_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Request Id
        status:
          title: Status
          type: integer
        title:
          title: Title
          type: string
        type:
          default: about:blank
          title: Type
          type: string
      required:
        - title
        - status
        - code
      title: Problem
      type: object
    UnmetDemand:
      additionalProperties: false
      description: >-
        One combination people asked a tool for, in one week, that came back
        with nothing or with fewer than

        three results. Never a person: a combination fewer than the space's
        minimum of people asked is left

        out.
      properties:
        asked:
          description: >-
            What the tool's arguments asked, on the type registry's fields,
            values normalized; empty when the arguments named none.
          items:
            $ref: '#/components/schemas/AskedAttribute'
          title: Asked
          type: array
        calls:
          title: Calls
          type: integer
        empty:
          description: Calls that returned nothing; the rest returned one or two results.
          title: Empty
          type: integer
        people:
          description: Distinct people who asked it that week.
          title: People
          type: integer
        tool:
          title: Tool
          type: string
        week:
          description: The Monday the week starts on.
          format: date
          title: Week
          type: string
      required:
        - week
        - tool
        - asked
        - calls
        - empty
        - people
      title: UnmetDemand
      type: object
    AskedAttribute:
      additionalProperties: false
      properties:
        attr:
          pattern: ^[a-z][a-z0-9_]{0,39}\.[a-z][a-z0-9_]{0,63}$
          title: Attr
          type: string
        op:
          enum:
            - in
            - not_in
            - eq
            - ne
            - lt
            - lte
            - gt
            - gte
            - between
          title: Op
          type: string
        values:
          items:
            anyOf:
              - type: boolean
              - type: integer
              - type: number
              - maxLength: 256
                type: string
          title: Values
          type: array
      required:
        - attr
        - op
        - values
      title: AskedAttribute
      type: object
  securitySchemes:
    sourceKey:
      type: http
      scheme: bearer
      description: nia_sk_...
    personToken:
      type: http
      scheme: bearer
      bearerFormat: JWT

````