Knock Members API

The Members API from Knock — 2 operation(s) for members.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

knock-app-members-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Knock Audiences Accounts Members API
  version: '1.0'
  description: Manage static Audiences and their members. Audiences power lifecycle messaging — when a user joins an audience, configured workflows fire automatically.
  contact:
    name: Knock
    url: https://knock.app
  license:
    name: Proprietary
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
tags:
- name: Members
paths:
  /v1/members/{id}:
    delete:
      callbacks: {}
      description: Removes a member from the account.
      operationId: removeMember
      parameters:
      - description: The ID of the member to remove.
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
          x-struct: null
          x-validate: null
      responses:
        '204':
          description: No Content
      summary: Remove a member
      tags:
      - Members
    get:
      callbacks: {}
      description: Returns a single member by their ID.
      operationId: getMember
      parameters:
      - description: The ID of the member to retrieve.
        in: path
        name: id
        required: true
        schema:
          format: uuid
          type: string
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
          description: OK
      summary: Get a member
      tags:
      - Members
  /v1/members:
    get:
      callbacks: {}
      description: Returns a paginated list of members for the current account. Optionally filter by role.
      operationId: listMembers
      parameters:
      - description: 'Filter members by role. One of: owner, admin, member, production_only_member, billing, support.'
        in: query
        name: role
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: Filter members by email address (exact match).
        in: query
        name: email
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries after.
        in: query
        name: after
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The cursor to fetch entries before.
        in: query
        name: before
        required: false
        schema:
          type: string
          x-struct: null
          x-validate: null
      - description: The number of entries to fetch per-page.
        in: query
        name: limit
        required: false
        schema:
          type: integer
          x-struct: null
          x-validate: null
      responses:
        '200':
          content:
            application/json:
              schema:
                description: A paginated list of Member. Contains a list of entries and page information.
                example:
                  entries:
                  - created_at: '2024-01-15T10:30:00Z'
                    id: d4b8e8e0-1234-5678-9abc-def012345678
                    role: admin
                    updated_at: '2024-06-20T14:45:00Z'
                    user:
                      avatar_url: https://www.gravatar.com/avatar/abc123
                      created_at: '2024-01-10T08:00:00Z'
                      email: jane@example.com
                      id: a1b2c3d4-5678-9abc-def0-123456789abc
                      name: Jane Doe
                      updated_at: '2024-06-18T12:00:00Z'
                  page_info:
                    after: null
                    before: null
                    page_size: 25
                properties:
                  entries:
                    description: A list of entries.
                    items:
                      $ref: '#/components/schemas/Member'
                    nullable: false
                    type: array
                    x-struct: null
                    x-validate: null
                  page_info:
                    $ref: '#/components/schemas/PageInfo'
                required:
                - entries
                - page_info
                title: PaginatedMemberResponse
                type: object
                x-struct: null
                x-validate: null
          description: OK
      summary: List members
      tags:
      - Members
components:
  schemas:
    PageInfo:
      description: The information about a paginated result.
      example:
        after: null
        before: null
        page_size: 25
      properties:
        after:
          description: The cursor to fetch entries after. Will only be present if there are more entries to fetch.
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        before:
          description: The cursor to fetch entries before. Will only be present if there are more entries to fetch before the current page.
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        page_size:
          description: The number of entries to fetch per-page.
          type: integer
          x-struct: null
          x-validate: null
      required:
      - page_size
      title: PageInfo
      type: object
      x-struct: Elixir.ControlWeb.V1.Specs.PageInfo
      x-validate: null
    MemberUser:
      description: Information about a user within the Knock dashboard. Not to be confused with an external user (recipient) of a workflow.
      example:
        avatar_url: https://www.gravatar.com/avatar/abc123
        created_at: '2024-01-10T08:00:00Z'
        email: jane@example.com
        id: a1b2c3d4-5678-9abc-def0-123456789abc
        name: Jane Doe
        updated_at: '2024-06-18T12:00:00Z'
      properties:
        avatar_url:
          description: The URL of the user's avatar image.
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        created_at:
          description: The timestamp of when the user was created.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
        email:
          description: The user's email address.
          format: email
          type: string
          x-struct: null
          x-validate: null
        id:
          description: The user's unique identifier.
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        name:
          description: The user's display name.
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        updated_at:
          description: The timestamp of when the user was last updated.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
      required:
      - id
      - email
      - created_at
      - updated_at
      title: MemberUser
      type: object
      x-struct: Elixir.ControlWeb.V1.Specs.MemberUser
      x-validate: null
    Member:
      description: A member of the account.
      example:
        created_at: '2024-01-15T10:30:00Z'
        id: d4b8e8e0-1234-5678-9abc-def012345678
        role: admin
        updated_at: '2024-06-20T14:45:00Z'
        user:
          avatar_url: https://www.gravatar.com/avatar/abc123
          created_at: '2024-01-10T08:00:00Z'
          email: jane@example.com
          id: a1b2c3d4-5678-9abc-def0-123456789abc
          name: Jane Doe
          updated_at: '2024-06-18T12:00:00Z'
      properties:
        created_at:
          description: The timestamp of when the member joined the account.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
        id:
          description: The unique identifier of the member.
          format: uuid
          type: string
          x-struct: null
          x-validate: null
        role:
          description: The member's role in the account.
          enum:
          - owner
          - admin
          - member
          - production_only_member
          - billing
          - support
          type: string
          x-struct: null
          x-validate: null
        updated_at:
          description: The timestamp of when the member was last updated.
          format: date-time
          type: string
          x-struct: null
          x-validate: null
        user:
          $ref: '#/components/schemas/MemberUser'
      required:
      - id
      - role
      - user
      - created_at
      - updated_at
      title: Member
      type: object
      x-struct: Elixir.ControlWeb.V1.Specs.Member
      x-validate: null
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Knock API key as a Bearer token. Use a public key (pk_...) for client-side requests or a secret key (sk_...) for server-side.