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

# Create a batch proposal with ordered child actions

> Create a sealed batch of ordered child proposals. API keys, OAuth apps, the Journeybee app's assistant and the hosted MCP server may call it. An AI channel can propose but can never approve, confirm, exclude or execute. The agent scope is advertised for discovery; the action's own permission is what is enforced.



## OpenAPI

````yaml /openapi.json post /proposals/batch
openapi: 3.1.0
info:
  title: Journeybee API
  description: >-
    Public REST API for the Journeybee PRM platform.


    Manage partners, leads, deals, products, pricing calculators, tasks, and
    more programmatically.


    All endpoints require authentication via API key. Use `Authorization: Bearer
    <api_key>` or `Api-Key <api_key>` header.


    See the [Authentication guide](/guides/authentication) for details.
  version: 1.0.0
servers:
  - url: https://api.journeybee.io/v1
    description: Production
security:
  - apiKey: []
tags:
  - name: Account
    description: >-
      Authenticated company account info, API key permissions, and enabled
      modules
  - name: Agreement Templates
  - name: Agreements
  - name: Analytics
    description: >-
      Dashboard analytics and reporting — commission, engagement, LMS, and
      partner revenue metrics
  - name: Assets
    description: File and media asset management
  - name: Attributions
    description: Attribution type definitions
  - name: Audit Log
    description: Unified audit log of company activity (read-only)
  - name: Automations
    description: Workflow automation rule configurations
  - name: Campaign Audience
    description: Audience filters on a campaign
  - name: Campaign Partners
    description: Partners shared into a campaign audience
  - name: Campaigns
    description: Partner marketing campaigns
  - name: Card Assignees
    description: Assigned users on a card
  - name: Card Partners
    description: Partners linked to a card
  - name: Card Tags
    description: Tags on a card
  - name: Cards
    description: Kanban project cards
  - name: Categories
    description: Partner categories
  - name: Certification Categories
    description: Categories on a certification
  - name: Certification Enrollments
    description: User enrollments in a certification
  - name: Certification Folders
    description: Folders on a certification
  - name: Certification Resources
    description: Curriculum resources in a certification
  - name: Certifications
    description: LMS certifications
  - name: Commissions
    description: >-
      Commission rule configurations with calculation entries,
      tier/category/partnership scoping
  - name: Contacts
    description: Partner contacts across partnerships
  - name: Currencies
    description: Available currencies
  - name: Custom Field Options
    description: Options on select/multi-select custom fields
  - name: Custom Field Rules
    description: Visibility and requirement rules on custom fields
  - name: Custom Field Values
    description: Custom field values
  - name: Custom Fields
    description: Custom field definitions
  - name: Deal Commission
    description: Commission calculation on a deal
  - name: Deal Custom Field Values
    description: Custom field values on a deal
  - name: Deal Notes
    description: Notes on a deal
  - name: Deal Partner Roles
    description: Roles a supporting (co-sell) partner can hold on a deal
  - name: Deal Partners
    description: Supporting (co-sell) partners on a deal
  - name: Deal Payments
    description: Payment records on a deal (read-only)
  - name: Deal Products
    description: Products attached to a deal
  - name: Deal Stages
    description: Deal pipeline stages
  - name: Deal Tags
    description: Tags on a deal
  - name: Deal Tasks
    description: Tasks on a deal
  - name: Deals
    description: Deal management
  - name: Event Subscriptions
  - name: Event Types
  - name: Folders
    description: Content folders
  - name: Integrations
    description: Company integration settings
  - name: Lead Attributions
    description: Attribution records on a lead
  - name: Lead Contacts
    description: Partner contacts on a lead
  - name: Lead Custom Field Values
    description: Custom field values on a lead
  - name: Lead Distributor
    description: Distributors for a lead
  - name: Lead Notes
    description: Notes on a lead
  - name: Lead Products
    description: Products attached to a lead
  - name: Lead Quotes
    description: >-
      Quotes on a lead — generated from pricing calculators with line items and
      totals
  - name: Lead Tags
    description: Tags on a lead
  - name: Lead Tasks
    description: Tasks on a lead
  - name: Lead Users
    description: Assigned users on a lead
  - name: Leads
    description: Lead management
  - name: Marketing Templates
    description: Marketing email templates
  - name: Partner Contacts
    description: Contacts on a partner
  - name: Partner Custom Field Values
    description: Custom field values on a partner
  - name: Partner Domains
    description: Domains on a partner
  - name: Partner Notes
    description: Notes on a partner
  - name: Partner Resellers
    description: Reseller assignments on a distributor
  - name: Partner Stages
    description: Partner pipeline stages
  - name: Partner Tags
    description: Tags on a partner
  - name: Partner Users
    description: Assigned users on a partner
  - name: Partners
    description: Core partner CRUD
  - name: Pricing Calculator Fields
    description: Input fields on a pricing calculator
  - name: Pricing Calculator Formulas
    description: Discount/tax/surcharge formulas on a pricing calculator
  - name: Pricing Calculator Products
    description: Products attached to a pricing calculator
  - name: Pricing Calculators
    description: Pricing calculator configurations
  - name: Products
    description: Product catalog
  - name: Proposals
    description: >-
      Durable action proposals: an AI or API caller proposes a mutation, a
      person decides and runs it
  - name: Resource Blocks
    description: Content blocks within a resource
  - name: Resource Categories
    description: Categories on a resource
  - name: Resource Folders
    description: Folders on a resource
  - name: Resource Tags
    description: Tags on a resource
  - name: Resources
    description: Learning resources
  - name: Room Blocks
    description: Content blocks within a room
  - name: Room Categories
    description: Category-based room access control
  - name: Room Partnerships
    description: Direct partnership room access
  - name: Room Secure Files
    description: >-
      Private files in a secure_files room block: folders, multipart uploads,
      signed download links and download history
  - name: Room Stages
    description: Stage-based room access control
  - name: Room Tags
    description: Tag-based room access control
  - name: Room Tiers
    description: Tier-based room access control
  - name: Rooms
    description: Partner portal rooms
  - name: Tags
    description: Tag definitions
  - name: Task Users
    description: Assigned users on a task
  - name: Tasks
    description: Task management
  - name: Terminology
    description: Display names for leads and deals
  - name: Tiers
    description: Partner tiers
  - name: Users
    description: Company team members
  - name: Webhook Events
    description: Outbound webhook payloads sent to your configured URLs when events occur
paths:
  /proposals/batch:
    post:
      tags:
        - Proposals
      summary: Create a batch proposal with ordered child actions
      description: >-
        Create a sealed batch of ordered child proposals. API keys, OAuth apps,
        the Journeybee app's assistant and the hosted MCP server may call it. An
        AI channel can propose but can never approve, confirm, exclude or
        execute. The agent scope is advertised for discovery; the action's own
        permission is what is enforced.
      operationId: createProposalBatch
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                children:
                  minItems: 1
                  maxItems: 64
                  type: array
                  items:
                    type: object
                    properties:
                      canonical_action:
                        type: object
                        properties:
                          source:
                            type: string
                            enum:
                              - internal
                              - mcp
                              - discovery
                              - openapi
                              - block_builder
                              - card_editor
                              - navigation
                          name:
                            type: string
                            minLength: 1
                          operationId:
                            type: string
                            minLength: 1
                          method:
                            type: string
                            enum:
                              - GET
                              - POST
                              - PUT
                              - PATCH
                              - DELETE
                          surface:
                            type: string
                            enum:
                              - admin
                              - partner
                        required:
                          - source
                          - name
                        additionalProperties: false
                      input:
                        type: object
                        additionalProperties: {}
                      risk_class:
                        type: string
                        enum:
                          - read
                          - write
                          - destructive
                          - financial
                          - outbound_communication
                          - external_side_effect
                      approval_policy:
                        type: string
                        enum:
                          - none
                          - configurable
                          - mandatory
                      rationale:
                        type: string
                        maxLength: 4000
                      idempotency_key:
                        type: string
                        minLength: 1
                        maxLength: 255
                      expires_at:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                      target_records:
                        maxItems: 64
                        type: array
                        items:
                          type: object
                          properties:
                            kind:
                              type: string
                              minLength: 1
                              maxLength: 64
                            uuid:
                              type: string
                              format: uuid
                              pattern: >-
                                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          required:
                            - kind
                            - uuid
                          additionalProperties: false
                      conversation_uuid:
                        description: >-
                          Only for the Journeybee app's assistant session
                          credential; refused for every other caller.
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                    required:
                      - canonical_action
                      - input
                      - risk_class
                      - approval_policy
                    additionalProperties: false
                rationale:
                  type: string
                  maxLength: 4000
                idempotency_key:
                  type: string
                  minLength: 1
                  maxLength: 255
                expires_at:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                conversation_uuid:
                  description: >-
                    Only for the Journeybee app's assistant session credential;
                    refused for every other caller.
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - children
              additionalProperties: false
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  proposal:
                    type: object
                    properties:
                      uuid:
                        type: string
                      version:
                        type: number
                      state:
                        type: string
                        enum:
                          - draft
                          - proposed
                          - approved
                          - executing
                          - succeeded
                          - partially_succeeded
                          - failed
                          - denied
                          - canceled
                          - expired
                      canonical_action:
                        type: object
                        properties:
                          source:
                            type: string
                            enum:
                              - internal
                              - mcp
                              - discovery
                              - openapi
                              - block_builder
                              - card_editor
                              - navigation
                          name:
                            type: string
                            minLength: 1
                          operationId:
                            type: string
                            minLength: 1
                          method:
                            type: string
                            enum:
                              - GET
                              - POST
                              - PUT
                              - PATCH
                              - DELETE
                          surface:
                            type: string
                            enum:
                              - admin
                              - partner
                        required:
                          - source
                          - name
                        additionalProperties: false
                      input_digest:
                        type: string
                      input:
                        anyOf:
                          - type: object
                            additionalProperties: {}
                          - type: 'null'
                      input_scrubbed_at:
                        anyOf:
                          - type: string
                          - type: 'null'
                      risk_class:
                        type: string
                        enum:
                          - read
                          - write
                          - destructive
                          - financial
                          - outbound_communication
                          - external_side_effect
                      approval_policy:
                        type: string
                        enum:
                          - none
                          - configurable
                          - mandatory
                      rationale:
                        anyOf:
                          - type: string
                          - type: 'null'
                      conversation_uuid:
                        anyOf:
                          - type: string
                          - type: 'null'
                      outcome:
                        anyOf:
                          - type: object
                            additionalProperties: {}
                          - type: 'null'
                      error_summary:
                        anyOf:
                          - type: string
                          - type: 'null'
                      execution_run_uuid:
                        anyOf:
                          - type: string
                          - type: 'null'
                      proposed_by_uuid:
                        anyOf:
                          - type: string
                          - type: 'null'
                      canceled_by_uuid:
                        anyOf:
                          - type: string
                          - type: 'null'
                      cancel_reason:
                        anyOf:
                          - type: string
                          - type: 'null'
                      source_host:
                        type: string
                        enum:
                          - buzz
                          - mcp
                          - v1
                          - workflow
                          - internal
                      expires_at:
                        type: string
                      proposed_at:
                        anyOf:
                          - type: string
                          - type: 'null'
                      decided_at:
                        anyOf:
                          - type: string
                          - type: 'null'
                      started_at:
                        anyOf:
                          - type: string
                          - type: 'null'
                      completed_at:
                        anyOf:
                          - type: string
                          - type: 'null'
                      parent_uuid:
                        anyOf:
                          - type: string
                          - type: 'null'
                      batch_seq:
                        anyOf:
                          - type: number
                          - type: 'null'
                    required:
                      - uuid
                      - version
                      - state
                      - canonical_action
                      - input_digest
                      - input
                      - risk_class
                      - approval_policy
                      - rationale
                      - conversation_uuid
                      - outcome
                      - error_summary
                      - execution_run_uuid
                      - proposed_by_uuid
                      - canceled_by_uuid
                      - cancel_reason
                      - source_host
                      - expires_at
                      - proposed_at
                      - decided_at
                      - started_at
                      - completed_at
                      - parent_uuid
                      - batch_seq
                    additionalProperties: false
                  children:
                    type: array
                    items:
                      type: object
                      properties:
                        uuid:
                          type: string
                        version:
                          type: number
                        state:
                          type: string
                          enum:
                            - draft
                            - proposed
                            - approved
                            - executing
                            - succeeded
                            - partially_succeeded
                            - failed
                            - denied
                            - canceled
                            - expired
                        canonical_action:
                          type: object
                          properties:
                            source:
                              type: string
                              enum:
                                - internal
                                - mcp
                                - discovery
                                - openapi
                                - block_builder
                                - card_editor
                                - navigation
                            name:
                              type: string
                              minLength: 1
                            operationId:
                              type: string
                              minLength: 1
                            method:
                              type: string
                              enum:
                                - GET
                                - POST
                                - PUT
                                - PATCH
                                - DELETE
                            surface:
                              type: string
                              enum:
                                - admin
                                - partner
                          required:
                            - source
                            - name
                          additionalProperties: false
                        input_digest:
                          type: string
                        input:
                          anyOf:
                            - type: object
                              additionalProperties: {}
                            - type: 'null'
                        input_scrubbed_at:
                          anyOf:
                            - type: string
                            - type: 'null'
                        risk_class:
                          type: string
                          enum:
                            - read
                            - write
                            - destructive
                            - financial
                            - outbound_communication
                            - external_side_effect
                        approval_policy:
                          type: string
                          enum:
                            - none
                            - configurable
                            - mandatory
                        rationale:
                          anyOf:
                            - type: string
                            - type: 'null'
                        conversation_uuid:
                          anyOf:
                            - type: string
                            - type: 'null'
                        outcome:
                          anyOf:
                            - type: object
                              additionalProperties: {}
                            - type: 'null'
                        error_summary:
                          anyOf:
                            - type: string
                            - type: 'null'
                        execution_run_uuid:
                          anyOf:
                            - type: string
                            - type: 'null'
                        proposed_by_uuid:
                          anyOf:
                            - type: string
                            - type: 'null'
                        canceled_by_uuid:
                          anyOf:
                            - type: string
                            - type: 'null'
                        cancel_reason:
                          anyOf:
                            - type: string
                            - type: 'null'
                        source_host:
                          type: string
                          enum:
                            - buzz
                            - mcp
                            - v1
                            - workflow
                            - internal
                        expires_at:
                          type: string
                        proposed_at:
                          anyOf:
                            - type: string
                            - type: 'null'
                        decided_at:
                          anyOf:
                            - type: string
                            - type: 'null'
                        started_at:
                          anyOf:
                            - type: string
                            - type: 'null'
                        completed_at:
                          anyOf:
                            - type: string
                            - type: 'null'
                        parent_uuid:
                          anyOf:
                            - type: string
                            - type: 'null'
                        batch_seq:
                          anyOf:
                            - type: number
                            - type: 'null'
                      required:
                        - uuid
                        - version
                        - state
                        - canonical_action
                        - input_digest
                        - input
                        - risk_class
                        - approval_policy
                        - rationale
                        - conversation_uuid
                        - outcome
                        - error_summary
                        - execution_run_uuid
                        - proposed_by_uuid
                        - canceled_by_uuid
                        - cancel_reason
                        - source_host
                        - expires_at
                        - proposed_at
                        - decided_at
                        - started_at
                        - completed_at
                        - parent_uuid
                        - batch_seq
                      additionalProperties: false
                required:
                  - proposal
                  - children
                additionalProperties: false
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: API key authentication. Use "Bearer <api_key>" or "Api-Key <api_key>".

````

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