agentfabric-dev API

agentfabric-dev API as documented publicly: 31 operations. Contract generated from the documentation by API Evangelist (2026-10-30); not the provider's own document.

Operations 31

GET /v1/api-keys List API keys. #
POST /v1/api-keys Create a new API key #
POST /v1/api-keys/{keyid}/revoke Revoke an existing API key #
POST /v1/api-keys/{keyid}/rotate Rotate an API key, revoking the old one and creating a new admin key #
POST /v1/auth/confirm-forgot-password POST /v1/auth/confirm-forgot-password #
POST /v1/auth/forgot-password POST /v1/auth/forgot-password #
POST /v1/auth/refresh POST /v1/auth/refresh #
POST /v1/auth/signin POST /v1/auth/signin #
GET /v1/me GET /v1/me #
GET /v1/review-items Look them up by your own identifiers with GET /v1/review-items #
GET /v1/review-requests GET /v1/review-requests #
POST /v1/review-requests POST /v1/review-requests #
POST /v1/review-requests/{requestid}/comments/{commentid}/unresolve Unresolve a comment thread. #
GET /v1/review-requests/{requestid}/items GET /v1/review-requests/{requestId}/items #
POST /v1/review/exchange Exchange a reviewer auth code for a token #
GET /v1/review/{requestid} Get review request details for a reviewer #
GET /v1/review/{requestid}/comments List comments for a reviewer #
POST /v1/review/{requestid}/comments Create a comment as a reviewer #
POST /v1/review/{requestid}/decision Submit a decision for the review request. #
POST /v1/review/{requestid}/notify The "I'm done" signal: emails the tenant's subscribers a digest of this reviewer's comments and verdicts now, instead of waiting out the 30‑minute quiet period. #
POST /v1/review/{requestid}/opened Record a link opened audit event #
GET /v1/signup Sign up (no auth) #
POST /v1/signup POST /v1/signup #
GET /v1/users List users. #
POST /v1/users Create a new user. #
DELETE /v1/users/{userid} Delete a user. #
PATCH /v1/users/{userid} Update a user's role. #
GET /v1/webhooks List webhook endpoints #
POST /v1/webhooks Create a webhook endpoint #
DELETE /v1/webhooks/{endpointid} Delete a webhook endpoint #
POST /your/endpoint Receive a webhook delivery #

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/agentfabric-dev:agentfabric-dev-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

agentfabric-dev-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: agentfabric-dev API
  version: '2026-10-30'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-30: 31 operation(s) read from 4 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; agentfabric-dev has published no machine-readable contract that
    the pipeline could find. Engine: local.'
  x-evidence-tiers:
    code-example: 2
    documentation: 29
    pages-with-code: 2
    pages-read: 4
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-30'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://agentfabric.dev/docs
  - https://dev.agentfabric.dev/docs
  - https://agentfabric.dev/docs/rest
  - https://agentfabric.dev/llms.txt
servers:
- url: https://rest.agentfabric.dev
paths:
  /v1/api-keys:
    get:
      operationId: get_v1_api_keys
      tags:
      - Api Keys
      summary: List API keys.
      description: Returns a list of API keys. Admin role / admin API key required.
      x-source: https://agentfabric.dev/docs/rest
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1ApiKeysResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_api_keys
      tags:
      - Api Keys
      summary: Create a new API key
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1ApiKeysRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ApiKeysResponse'
      x-evidence:
        kind: documentation
  /v1/api-keys/{keyid}/revoke:
    post:
      operationId: post_v1_api_keys_keyid_revoke
      tags:
      - Api Keys
      summary: Revoke an existing API key
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: keyid
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ApiKeysKeyidRevokeResponse'
      x-evidence:
        kind: documentation
  /v1/api-keys/{keyid}/rotate:
    post:
      operationId: post_v1_api_keys_keyid_rotate
      tags:
      - Api Keys
      summary: Rotate an API key, revoking the old one and creating a new admin key
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: keyid
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ApiKeysKeyidRotateResponse'
      x-evidence:
        kind: documentation
  /v1/auth/confirm-forgot-password:
    post:
      operationId: post_v1_auth_confirm_forgot_password
      tags:
      - Auth
      summary: POST /v1/auth/confirm-forgot-password
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthConfirmForgotPasswordRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1AuthConfirmForgotPasswordResponse'
      x-evidence:
        kind: documentation
  /v1/auth/forgot-password:
    post:
      operationId: post_v1_auth_forgot_password
      tags:
      - Auth
      summary: POST /v1/auth/forgot-password
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthForgotPasswordRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1AuthForgotPasswordResponse'
      x-evidence:
        kind: documentation
  /v1/auth/refresh:
    post:
      operationId: post_v1_auth_refresh
      tags:
      - Auth
      summary: POST /v1/auth/refresh
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthRefreshRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1AuthRefreshResponse'
      x-evidence:
        kind: documentation
  /v1/auth/signin:
    post:
      operationId: post_v1_auth_signin
      tags:
      - Auth
      summary: POST /v1/auth/signin
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1AuthSigninRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1AuthSigninResponse'
      x-evidence:
        kind: documentation
  /v1/me:
    get:
      operationId: get_v1_me
      tags:
      - Me
      summary: GET /v1/me
      x-source: https://agentfabric.dev/docs/rest
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1MeResponse'
      x-evidence:
        kind: documentation
  /v1/review-items:
    get:
      operationId: get_v1_review_items
      tags:
      - Review Items
      summary: Look them up by your own identifiers with GET /v1/review-items
      x-source: https://agentfabric.dev/docs
      parameters:
      - name: filter[externalId]
        in: query
        required: false
        schema:
          type: string
        description: filter by externalId
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1ReviewItemsResponse'
      x-evidence:
        kind: documentation
  /v1/review-requests:
    get:
      operationId: get_v1_review_requests
      tags:
      - Review Requests
      summary: GET /v1/review-requests
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: filter[externalId]
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1ReviewRequestsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_review_requests
      tags:
      - Review Requests
      summary: POST /v1/review-requests
      x-source: https://agentfabric.dev/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1ReviewRequestsRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \"https://rest.agentfabric.dev/v1/review-requests\"  -H \"content-type: application/json\"  -H \"x-api-key: $AGENTFABRIC_API_KEY\"\
          \  -d '{\n \"title\": \"Approve landing page\",\n \"externalId\": \"landing-page-v2\",\n \"policy\": { \"type\": \"ALL_APPROVE\" },\n\
          \ \"reviewers\": [{ \"email\": \"reviewer@example.com\" }],\n \"items\": [{\n \"title\": \"Preview\",\n \"externalId\": \"preview-asset-1\"\
          ,\n \"document\": { \"type\": \"url\""
  /v1/review-requests/{requestid}/comments/{commentid}/unresolve:
    post:
      operationId: post_v1_review_requests_requestid_comments_commentid_unresolve
      tags:
      - Review Requests
      summary: Unresolve a comment thread.
      description: Thread root only, same as resolve.
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      - name: commentid
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ReviewRequestsRequestidCommentsCommentidUnresolveRespo'
      x-evidence:
        kind: documentation
  /v1/review-requests/{requestid}/items:
    get:
      operationId: get_v1_review_requests_requestid_items
      tags:
      - Review Requests
      summary: GET /v1/review-requests/{requestId}/items
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1ReviewRequestsRequestidItemsResponse'
      x-evidence:
        kind: documentation
  /v1/review/exchange:
    post:
      operationId: post_v1_review_exchange
      tags:
      - Review
      summary: Exchange a reviewer auth code for a token
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1ReviewExchangeRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ReviewExchangeResponse'
      x-evidence:
        kind: documentation
  /v1/review/{requestid}:
    get:
      operationId: get_v1_review_requestid
      tags:
      - Review
      summary: Get review request details for a reviewer
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1ReviewRequestidResponse'
      x-evidence:
        kind: documentation
  /v1/review/{requestid}/comments:
    get:
      operationId: get_v1_review_requestid_comments
      tags:
      - Review
      summary: List comments for a reviewer
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      - name: itemId
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1ReviewRequestidCommentsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_review_requestid_comments
      tags:
      - Review
      summary: Create a comment as a reviewer
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1ReviewRequestidCommentsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ReviewRequestidCommentsResponse'
      x-evidence:
        kind: documentation
  /v1/review/{requestid}/decision:
    post:
      operationId: post_v1_review_requestid_decision
      tags:
      - Review
      summary: Submit a decision for the review request.
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1ReviewRequestidDecisionRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ReviewRequestidDecisionResponse'
      x-evidence:
        kind: documentation
  /v1/review/{requestid}/notify:
    post:
      operationId: post_v1_review_requestid_notify
      tags:
      - Review
      summary: 'The "I''m done" signal: emails the tenant''s subscribers a digest of this reviewer''s comments and verdicts now, instead of waiting
        out the 30‑minute quiet period.'
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1ReviewRequestidNotifyResponse'
      x-evidence:
        kind: documentation
  /v1/review/{requestid}/opened:
    post:
      operationId: post_v1_review_requestid_opened
      tags:
      - Review
      summary: Record a link opened audit event
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: requestid
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /v1/signup:
    get:
      operationId: get_v1_signup
      tags:
      - Signup
      summary: Sign up (no auth)
      x-source: https://dev.agentfabric.dev/docs
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1SignupResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_signup
      tags:
      - Signup
      summary: POST /v1/signup
      x-source: https://agentfabric.dev/docs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1SignupRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST \"https://rest.agentfabric.dev/v1/signup\"  -H \"content-type: application/json\"  -d '{\n \"tenantName\": \"Acme\
          \ Agents\",\n \"ownerEmail\": \"ops@example.com\",\n \"ownerName\": \"Ops\",\n \"password\": \"change-me-now\"\n }' \n Response data\
          \ includes adminApiKey , consumerApiKey , tenant, and\n user. Pass keys as x-api-key (or Authorization: Bearer ak_… ).\n Create a review\
          \ request with POST /v1/review-reques"
  /v1/users:
    get:
      operationId: get_v1_users
      tags:
      - Users
      summary: List users.
      description: Returns a list of users. Admin role / admin API key required.
      x-source: https://agentfabric.dev/docs/rest
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1UsersResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_users
      tags:
      - Users
      summary: Create a new user.
      description: Creates a new user. Admin role / admin API key required.
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1UsersRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1UsersResponse'
      x-evidence:
        kind: documentation
  /v1/users/{userid}:
    delete:
      operationId: delete_v1_users_userid
      tags:
      - Users
      summary: Delete a user.
      description: Deletes a user. Admin role / admin API key required.
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: userid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteV1UsersUseridResponse'
      x-evidence:
        kind: documentation
    patch:
      operationId: patch_v1_users_userid
      tags:
      - Users
      summary: Update a user's role.
      description: Updates the role of a user. Admin role / admin API key required.
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: userid
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchV1UsersUseridRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatchV1UsersUseridResponse'
      x-evidence:
        kind: documentation
  /v1/webhooks:
    get:
      operationId: get_v1_webhooks
      tags:
      - Webhooks
      summary: List webhook endpoints
      x-source: https://agentfabric.dev/docs/rest
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1WebhooksResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_webhooks
      tags:
      - Webhooks
      summary: Create a webhook endpoint
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1WebhooksRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1WebhooksResponse'
      x-evidence:
        kind: documentation
  /v1/webhooks/{endpointid}:
    delete:
      operationId: delete_v1_webhooks_endpointid
      tags:
      - Webhooks
      summary: Delete a webhook endpoint
      x-source: https://agentfabric.dev/docs/rest
      parameters:
      - name: endpointid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteV1WebhooksEndpointidResponse'
      x-evidence:
        kind: documentation
  /your/endpoint:
    post:
      operationId: post_your_endpoint
      tags:
      - Your
      summary: Receive a webhook delivery
      x-source: https://agentfabric.dev/docs/rest
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostYourEndpointRequest'
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    GetV1ApiKeysResponse:
      type: object
      properties:
        apiKeys:
          type: array
          description: Array of ApiKeyRecord objects without keyHash; active only.
    PostV1ApiKeysRequest:
      type: object
      properties:
        label:
          type: string
        scope:
          type: string
          description: defaults to consumer
      required:
      - label
    PostV1ApiKeysResponse:
      type: object
      properties:
        apiKey:
          type: string
        apiKeyRecord:
          type: object
          description: ApiKeyRecord without keyHash
    PostV1ApiKeysKeyidRevokeResponse:
      type: object
      properties:
        keyId:
          type: string
        status:
          type: string
          description: '"revoked"'
    PostV1ApiKeysKeyidRotateResponse:
      type: object
      properties:
        apiKey:
          type: string
        apiKeyRecord:
          type: object
          description: ApiKeyRecord without keyHash
    PostV1AuthConfirmForgotPasswordRequest:
      type: object
      properties:
        email:
          type: string
        code:
          type: string
        newPassword:
          type: string
      required:
      - email
      - code
      - newPassword
    PostV1AuthConfirmForgotPasswordResponse:
      type: object
      properties:
        reset:
          type: boolean
    PostV1AuthForgotPasswordRequest:
      type: object
      properties:
        email:
          type: string
      required:
      - email
    PostV1AuthForgotPasswordResponse:
      type: object
      properties:
        sent:
          type: boolean
    PostV1AuthRefreshRequest:
      type: object
      properties:
        refreshToken:
          type: string
      required:
      - refreshToken
    PostV1AuthRefreshResponse:
      type: object
      properties:
        tokens:
          type: object
    PostV1AuthSigninRequest:
      type: object
      properties:
        email:
          type: string
        password:
          type: string
      required:
      - email
      - password
    PostV1AuthSigninResponse:
      type: object
      properties:
        tokens:
          type: object
        user:
          type: string
    GetV1MeResponse:
      type: object
      properties:
        user:
          type: string
        role:
          type: string
        apiKey:
          type: string
    GetV1ReviewItemsResponse:
      type: object
      properties:
        data:
          type: array
          description: list of review items
    GetV1ReviewRequestsResponse:
      type: object
      properties:
        array:
          type: string
    PostV1ReviewRequestsRequest:
      type: object
      properties:
        title:
          type: string
        externalId:
          type: string
        policy:
          type: object
          properties:
            type:
              type: string
        reviewers:
          type: array
          items:
            type: object
            properties:
              email:
                type: string
        items:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              externalId:
                type: string
              document:
                type: object
                properties:
                  type:
                    type: string
                  url:
                    type: string
              metadata:
                type: object
                properties:
                  branch:
                    type: string
    PostV1ReviewRequestsRequestidCommentsCommentidUnresolveRespo:
      type: object
      properties:
        status:
          type: string
          description: open
    GetV1ReviewRequestsRequestidItemsResponse:
      type: object
      properties:
        array:
          type: string
    PostV1ReviewExchangeRequest:
      type: object
      properties:
        authCode:
          type: string
      required:
      - authCode
    PostV1ReviewExchangeResponse:
      type: object
      properties:
        token:
          type: string
        requestId:
          type: string
        reviewerId:
          type: string
    GetV1ReviewRequestidResponse:
      type: object
      properties:
        request:
          type: object
          description: ReviewRequest
        items:
          type: array
          description: ReviewItem list
        reviewer:
          type: object
          description: Reviewer (this reviewer)
        itemDecisions:
          type: array
          description: this reviewer's item decisions
        comments:
          type: array
          description: ReviewComment list
        deleted:
          type: boolean
        evaluationScope:
          type: string
        reviewerAggregate:
          type: string
    GetV1ReviewRequestidCommentsResponse:
      type: object
      properties:
        comments:
          type: array
          description: ReviewComment objects
    PostV1ReviewRequestidCommentsRequest:
      type: object
      properties:
        body:
          type: string
        itemId:
          type: string
        parentCommentId:
          type: string
        metadata:
          type: object
      required:
      - body
      - itemId
    PostV1ReviewRequestidCommentsResponse:
      type: object
      properties:
        comment:
          type: object
          description: ReviewComment
    PostV1ReviewRequestidDecisionRequest:
      type: object
      properties:
        decision:
          type: string
          description: '"approved" | "rejected" | "changes_required"'
        itemId:
          type: string
          description: ID of the item the decision applies to
        comment:
          type: string
          description: optional note (creates a comment)
      required:
      - decision
    PostV1ReviewRequestidDecisionResponse:
      type: object
      properties:
        status:
          type: string
          description: '"pending" | "approved" | "rejected" | "changes_required" | …'
        itemDecision:
          type: object
          description: ReviewItemDecision, if itemId set
        reviewerAggregate:
          type: string
          description: '"pending" | "approved" | "rejected" | "changes_required"'
    PostV1ReviewRequestidNotifyResponse:
      type: object
      properties:
        outcome:
          type: string
          description: '"sent" | "idle" | "claimed_by_other"'
        recipients:
          type: array
          description: list of email addresses that received the digest
    GetV1SignupResponse:
      type: object
      properties:
        adminApiKey:
          type: string
        consumerApiKey:
          type: string
        tenant:
          type: object
        user:
          type: object
    PostV1SignupRequest:
      type: object
      properties:
        tenantName:
          type: string
        ownerEmail:
          type: string
        ownerName:
          type: string
        password:
          type: string
    GetV1UsersResponse:
      type: object
      properties:
        users:
          type: array
          description: Array of AppUser objects.
    PostV1UsersRequest:
      type: object
      properties:
        email:
          type: string
        name:
          type: string
        role:
          type: string
          description: Defaults to consumer.
      required:
      - email
      - name
    PostV1UsersResponse:
      type: object
      properties:
        user:
          type: object
          description: Created AppUser.
        temporaryPassword:
          type: string
    DeleteV1UsersUseridResponse:
      type: object
      properties:
        userId:
          type: string
        deleted:
          type: boolean
    PatchV1UsersUseridRequest:
      type: object
      properties:
        role:
          type: string
          description: admin or consumer.
      required:
      - role
    PatchV1UsersUseridResponse:
      type: object
      properties:
        user:
          type: object
          description: Updated AppUser.
    GetV1WebhooksResponse:
      type: object
      properties:
        webhooks:
          type: array
          description: WebhookEndpoint objects with secretHint instead of secret
        events:
          type: array
          description: All event types you can subscribe to
    PostV1WebhooksRequest:
      type: object
      properties:
        url:
          type: string
        description:
          type: string
        events:
          type: array
          description: If omitted, receive all events
      required:
      - url
      - description
    PostV1WebhooksResponse:
      type: object
      properties:
        webhook:
          type: object
          description: WebhookEndpoint
        secret:
          type: string
          description: whsec_… returned only on create
    DeleteV1WebhooksEndpointidResponse:
      type: object
      properties:
        deleted:
          type: boolean
          description: 'true'
    PostYourEndpointRequest:
      type: object
      properties:
        agentfabric-event:
          type: string
          description: event type header
        agentfabric-delivery:
          type: string
          description: delivery identifier
        agentfabric-signature:
          type: string
          description: HMAC signature header
        data:
          type: object
          description: event payload
      required:
      - agentfabric-event
      - agentfabric-delivery
      - agentfabric-signature
      - data
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
security:
- apiKey: []
tags:
- name: Api Keys
- name: Auth
- name: Me
- name: Review
- name: Review Items
- name: Review Requests
- name: Signup
- name: Users
- name: Webhooks
- name: Your