Moment Sleeves API

The Sleeves API from Moment — 4 operation(s) for sleeves.

Operations 6

POST /v1/account/{account_id}/sleeve/ Create a sleeve within an account #
PATCH /v1/account/{account_id}/sleeve/{sleeve_id}/ Update a sleeve #
DELETE /v1/account/{account_id}/sleeve/{sleeve_id}/ Delete a sleeve #
PUT /v1/account/{account_id}/sleeve/{sleeve_id}/assign-lots/ Specify which lots are assigned to a sleeve #
PUT /v1/account/{account_id}/sleeve/{sleeve_id}/model/ Assigns a sleeve to a model #
DELETE /v1/account/{account_id}/sleeve/{sleeve_id}/model/ Unassigns a sleeve from a model #

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-account-snapshot-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-post-order-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-cashflow-target-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-customizations-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-model-assignment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-account-setting-key-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-cash-raise-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-projected-cash-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-organization-account-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-organization-advisor-code-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-advisor-account-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-cent-amount-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-portfolio-stats-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-yield-grid-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-markup-price-yield-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-yields-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-current-holdings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-corporate-actions-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-corporate-action-detail-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-mark-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-instruments-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-prices-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-instrument-info-detail-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-live-inventory-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-maturity-bucket-percentile-batch-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-maturity-bucket-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-live-inventory-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-live-inventory-response-post-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-maturity-bucket-percentile-batch-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-organization-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-ipallowlist-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-add-fixipallowlist-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-order-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-optimization-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-replacement-candidates-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-preview-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-backtest-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-backtest-result-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-full-order-book-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-custom-fee-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-hydrated-quote-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-pre-fee-quote-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/moment/refs/heads/main/json-schema/moment-fixed-income-schema.json

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/moment:moment-sleeves-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

moment-sleeves-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Account Management Sleeves API
  description: Moment's Account Management API allows Clients to manage their accounts and associated data.
  version: 1.0.0
  contact:
    name: Moment Support
    email: support@withmoment.com
    url: https://withmoment.com/support
servers:
- url: https://live.moment-api.com
- url: https://paper.moment-api.com
tags:
- name: Sleeves
paths:
  /v1/account/{account_id}/sleeve/:
    parameters:
    - name: account_id
      in: path
      required: true
      description: Account ID
      schema:
        type: string
    post:
      tags:
      - Sleeves
      summary: Create a sleeve within an account
      operationId: createSleeve
      requestBody:
        description: Initial sleeve parameters
        content:
          application/json:
            schema:
              properties:
                name:
                  description: A descriptive name for the sleeve
                  type: string
                allocation_basis:
                  description: The basis for calculating the allocation of the sleeve.
                  default: weight
                  $ref: '#/components/schemas/AllocationBasis'
                priority:
                  description: The priority in which cash is allocated to sleeves based on their target allocations. Lower values are allocated first.
                  type: integer
                  default: 0
                min_allocation:
                  description: The lowest proportion of the total market value of the account's non-cash holdings we'd like assigned to this sleeve
                  allOf:
                  - $ref: '#/components/schemas/Decimal'
                target_allocation:
                  description: The desired proportion of the total market value of the account's non-cash holdings we'd like assigned to this sleeve
                  allOf:
                  - $ref: '#/components/schemas/Decimal'
                max_allocation:
                  description: The highest proportion of the total market value of the account's non-cash holdings we'd like assigned to this sleeve
                  allOf:
                  - $ref: '#/components/schemas/Decimal'
                required_market_value:
                  description: An optional absolute floor, in account currency (USD), on the sleeve's target market value. When omitted, no market value floor is applied.
                  allOf:
                  - $ref: '#/components/schemas/Decimal'
                is_managed:
                  description: Whether the advisor manages this sleeve. Managed sleeves are billed, count toward the account's managed value and are optimized; unmanaged sleeves are excluded from all three. Defaults to true. A sleeve created with a model assignment cannot be unmanaged.
                  type: boolean
                  default: true
                model_assignment:
                  $ref: '#/components/schemas/ModelAssignment'
                extra:
                  description: Arbitrary user-specified sleeve metadata
                  type: object
                  additionalProperties:
                    type: string
                client_id:
                  description: An optional caller-supplied external identifier for the sleeve. Must be unique within the account. When omitted, it defaults to the generated sleeve_id.
                  type: string
              required:
              - name
              - min_allocation
              - target_allocation
              - max_allocation
              - extra
        required: true
      responses:
        '201':
          description: Sleeve created
          content:
            application/json:
              schema:
                type: object
                properties:
                  sleeve_id:
                    description: A unique identifier generated by the server
                    type: string
                  client_id:
                    description: The caller-supplied external identifier for the sleeve, or the generated sleeve_id when none was supplied.
                    type: string
                  message:
                    type: string
                required:
                - sleeve_id
                - client_id
                - message
              example:
                sleeve_id: slv_01JBFQZXMWZ08XDMTG08P2Z4XT
                client_id: slv_01JBFQZXMWZ08XDMTG08P2Z4XT
                message: Sleeve created.
        '400':
          description: Invalid request parameters, or accounts-api refused the sleeve because its target does not fit the account's remaining allocation. On a refusal, error_details.allocation_sum carries the account's AllocationSum as computed before the write, so a caller can show how much room is left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSleeveError'
        '409':
          description: A sleeve with the same client_id or name already exists in the account.
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
  /v1/account/{account_id}/sleeve/{sleeve_id}/:
    parameters:
    - name: account_id
      in: path
      required: true
      description: Account ID
      schema:
        type: string
    - name: sleeve_id
      in: path
      required: true
      description: Sleeve ID
      schema:
        type: string
    patch:
      tags:
      - Sleeves
      summary: Update a sleeve
      operationId: updateSleeve
      requestBody:
        description: Initial sleeve parameters
        content:
          application/json:
            schema:
              properties:
                name:
                  description: A descriptive name for the sleeve
                  type: string
                allocation_basis:
                  $ref: '#/components/schemas/AllocationBasis'
                priority:
                  description: The priority in which cash is allocated to sleeves based on their target
                  type: integer
                min_allocation:
                  description: The lowest proportion of the total market value of the account's non-cash holdings we'd like assigned to this sleeve
                  type: number
                  format: double
                target_allocation:
                  description: The desired proportion of the total market value of the account's non-cash holdings we'd like assigned to this sleeve
                  type: number
                  format: double
                max_allocation:
                  description: The highest proportion of the total market value of the account's non-cash holdings we'd like assigned to this sleeve
                  type: number
                  format: double
                required_market_value:
                  description: An optional absolute floor, in account currency (USD), on the sleeve's target market value. When omitted, no market value floor is applied.
                  type: number
                  format: double
                is_managed:
                  description: Whether the advisor manages this sleeve. Managed sleeves are billed, count toward the account's managed value and are optimized; unmanaged sleeves are excluded from all three. Left unchanged when omitted. A sleeve holding a strategy cannot be unmanaged, and the funding sleeve is always managed.
                  type: boolean
                extra:
                  description: Arbitrary user-specified sleeve metadata
                  type: object
                  additionalProperties:
                    type: string
        required: true
      responses:
        '200':
          description: Sleeve updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  sleeve_id:
                    type: string
                required:
                - message
                - sleeve_id
              example:
                message: Sleeve updated.
                sleeve_id: slv_123
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
        '404':
          description: Account or sleeve not found
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
    delete:
      tags:
      - Sleeves
      summary: Delete a sleeve
      operationId: deleteSleeve
      responses:
        '204':
          description: Sleeve deleted
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
        '404':
          description: Account or sleeve not found
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
  /v1/account/{account_id}/sleeve/{sleeve_id}/assign-lots/:
    parameters:
    - name: account_id
      in: path
      required: true
      description: Account ID
      schema:
        type: string
    - name: sleeve_id
      in: path
      required: true
      description: Sleeve ID
      schema:
        type: string
    put:
      tags:
      - Sleeves
      summary: Specify which lots are assigned to a sleeve
      operationId: assignLotsToSleeve
      requestBody:
        description: Lot IDs of lots that are assigned to this sleeve
        content:
          application/json:
            schema:
              properties:
                lots:
                  description: Array of lot IDs
                  type: array
                  items:
                    type: string
              required:
              - lots
      responses:
        '204':
          description: Lots assigned to sleeve
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
        '404':
          description: Account or sleeve not found
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
  /v1/account/{account_id}/sleeve/{sleeve_id}/model/:
    parameters:
    - name: account_id
      in: path
      required: true
      description: Account ID
      schema:
        type: string
    - name: sleeve_id
      in: path
      required: true
      description: Sleeve ID
      schema:
        type: string
    put:
      tags:
      - Sleeves
      summary: Assigns a sleeve to a model
      operationId: assignSleeveToModel
      requestBody:
        description: The model, assignment_date, cashflow_targets, and customizations to assign to the sleeve
        content:
          application/json:
            schema:
              type: object
              required:
              - model_id
              - assignment_date
              - customizations
              properties:
                model_id:
                  type: string
                  description: The ID of the model to of which the sleeve should be assigned
                assignment_date:
                  type: string
                  format: date
                  description: Assignment dates are used to align ladders and determine grace periods for the first ladder bucket before dynamic ladder rebalancing kicks in
                customizations:
                  $ref: '#/components/schemas/Customizations'
                meta:
                  type: object
                  description: Arbitrary key-value store for additional metadata
                  additionalProperties: true
                rebalance_strategy:
                  $ref: '#/components/schemas/RebalanceStrategy'
                cashflow_targets:
                  type: array
                  items:
                    $ref: '#/components/schemas/CashflowTarget'
      responses:
        '204':
          description: Sleeve assigned to model
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
        '404':
          description: Account or sleeve not found
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
    delete:
      tags:
      - Sleeves
      summary: Unassigns a sleeve from a model
      operationId: unassignSleeveFromModel
      responses:
        '204':
          description: Sleeve unassigned from model
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
        '404':
          description: Account or sleeve not found
          content:
            application/json:
              schema:
                $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
components:
  schemas:
    RebalanceStrategy:
      type: string
      description: 'The rebalance strategy for the sleeve. Determines how and when the sleeve is rebalanced. - unspecified: The rebalance strategy is not set. - never: Disables all rebalancing. - violations_only: Only rebalances when there are violations. - enabled: Enables regular rebalancing.'
      enum:
      - unspecified
      - never
      - violations_only
      - enabled
    AllocationSumBase:
      type: object
      properties:
        managed_target_sum:
          type: string
          description: 'The sum of target_allocation over the sleeves in included_sleeve_ids: standard, managed, non-default, non-transitioning, weight-basis sleeves that carry weights.'
        buffer_cash_target_percent:
          type: string
          description: The account's buffer_cash_target_percent setting. Omitted when the account has none.
        total:
          type: string
          description: managed_target_sum plus buffer_cash_target_percent (0 when unset).
        included_sleeve_ids:
          type: array
          items:
            type: string
          description: The sleeves summed into managed_target_sum.
        notional_sleeve_ids:
          type: array
          items:
            type: string
          description: The market-value-basis sleeves excluded from the sum.
        notional_total:
          type: string
          description: The dollar targets of notional_sleeve_ids summed, in account currency (USD).
        template_owned:
          type: boolean
          description: Whether some sleeve on the account carries a live asset allocation template id (one that is not transitioning). Under-allocation is a violation only on a template-owned account; over-allocation always is.
        violation:
          type: boolean
          description: 'accounts-api''s policy result: over_allocated, or under_allocated on a template-owned account. Render warnings from this flag rather than re-deriving the rule; the guarded sleeve writes refuse on it.'
      required:
      - managed_target_sum
      - total
      - included_sleeve_ids
      - notional_sleeve_ids
      - notional_total
      - template_owned
      - violation
    AllocationSumUnderAllocated:
      allOf:
      - $ref: '#/components/schemas/AllocationSumBase'
      - type: object
        properties:
          verdict:
            type: string
            enum:
            - under_allocated
          remaining:
            type: string
            description: How far total falls short of 1.
        required:
        - verdict
        - remaining
    AllocationSum:
      description: How an account's managed sleeve targets plus its buffer cash target compare to 100%, as computed by accounts-api. The verdict is balanced when the total is within 1e-6 of 1, under_allocated below that, and over_allocated above it. Fractions are decimals in [0, 1] serialized as strings — e.g. "0.05" means 5%.
      discriminator:
        propertyName: verdict
        mapping:
          balanced: '#/components/schemas/AllocationSumBalanced'
          under_allocated: '#/components/schemas/AllocationSumUnderAllocated'
          over_allocated: '#/components/schemas/AllocationSumOverAllocated'
      oneOf:
      - $ref: '#/components/schemas/AllocationSumBalanced'
      - $ref: '#/components/schemas/AllocationSumUnderAllocated'
      - $ref: '#/components/schemas/AllocationSumOverAllocated'
    Customizations:
      type: object
      description: 'Sleeve customizations, keyed by asset class. Entries live under an asset-class bucket: fixed-income constraints under `fixed_income`. A bare map of entries at the top level (no asset-class bucket) is a legacy shape that is still accepted but is normalized into `fixed_income` on write; new integrations should send the container shape.'
      additionalProperties: true
      x-go-type: json.RawMessage
      properties:
        fixed_income:
          type: object
          description: Fixed-income constraints, keyed by a caller-supplied entry id (e.g. "allocation_20260609"). Each entry is a universe filter or an allocation target.
          additionalProperties: true
      example:
        fixed_income:
          universe_example:
            type: universe
            filter:
              maturity_in_years:
                greater_than_or_equal_to: 0.5
          allocation_example:
            type: allocation
            filter:
              maturity_date:
                less_than: '2030-01-01'
            min_market_value: 100000
    CashflowTarget:
      type: object
      properties:
        amount:
          type: number
          description: The amount of cashflow to target per period
        start_date:
          type: string
          format: date
          description: The date on which the cashflow target starts being applied. This date is inclusive. Must be in the format YYYYMMDD, i.e. 20250101. If not provided, the cashflow target will start on the current date.
        end_date:
          type: string
          format: date
          description: The date on which the cashflow target stops being applied. This date is exclusive. Must be in the format YYYYMMDD, i.e. 20251231.
        frequency:
          type: string
          description: 'The frequency of the cashflow.


            * one_time: Cashflow is a one-time payment.

            * monthly: Cashflow is distributed monthly.

            * bimonthly: Cashflow is distributed every two months.

            * quarterly: Cashflow is distributed quarterly.

            * semiannually: Cashflow is distributed twice per year.

            * annually: Cashflow is distributed annually.'
          enum:
          - one_time
          - monthly
          - bimonthly
          - quarterly
          - semiannually
          - annually
        source:
          type: string
          description: 'The source of the cashflow.


            * coupon: Cashflow is derived from coupon payments.

            * principal: Cashflow is derived from principal payments.

            * coupon_and_principal: Cashflow is derived from both coupon and principal payments.'
          enum:
          - coupon
          - principal
          - coupon_and_principal
        call_assumption:
          type: string
          description: 'The assumption made about when bonds will be called.


            * maturity_date: Assumes bonds are held until maturity.

            * workout_date: Assumes bonds are called at the workout date.

            * next_call_date: Assumes bonds are called at the next call date.'
          enum:
          - maturity_date
          - workout_date
          - next_call_date
        overrides:
          type: object
          description: 'Custom cashflow amounts to override specific buckets. Keys are bucket date ranges in format

            "YYYYMMDD_YYYYMMDD" (start_end), values are the override amount.

            Example: {"20250301_20250401": 13000} overrides the March 2025 bucket for a monthly frequency starting on the 1st.'
          additionalProperties: true
          x-go-type: json.RawMessage
      required:
      - amount
      - end_date
      - frequency
      - source
      - call_assumption
      - overrides
    CreateSleeveError:
      allOf:
      - $ref: '#/paths/~1v1~1account~1document~1/post/responses/403/content/application~1json/schema'
      - type: object
        properties:
          error_details:
            $ref: '#/components/schemas/CreateSleeveErrorDetails'
    CreateSleeveErrorDetails:
      type: object
      description: Present only when the create was refused because the sleeve's target does not fit the account's remaining allocation.
      properties:
        allocation_sum:
          $ref: '#/components/schemas/AllocationSum'
      required:
      - allocation_sum
    AllocationSumBalanced:
      allOf:
      - $ref: '#/components/schemas/AllocationSumBase'
      - type: object
        properties:
          verdict:
            type: string
            enum:
            - balanced
        required:
        - verdict
    Decimal:
      type: number
      format: double
      x-go-type: decimal.Decimal
      x-go-type-import:
        path: github.com/shopspring/decimal
        name: decimal
    AllocationSumOverAllocated:
      allOf:
      - $ref: '#/components/schemas/AllocationSumBase'
      - type: object
        properties:
          verdict:
            type: string
            enum:
            - over_allocated
          excess:
            type: string
            description: How far total exceeds 1.
        required:
        - verdict
        - excess
    AllocationBasis:
      type: string
      title: Allocation Basis
      description: Specifies how allocation targets and bounds are specified.
      enum:
      - weight
      - market_value
    ModelAssignment:
      type: object
      properties:
        model_id:
          type: string
          description: The ID of the model to of which the sleeve should be assigned
        model_name:
          type: string
          description: The name of the model to which the sleeve is assigned
          readOnly: true
        assignment_date:
          type: string
          format: date
          description: Assignment dates are used to align ladders and determine grace periods for the first ladder bucket before dynamic ladder rebalancing kicks in
        customizations:
          $ref: '#/components/schemas/Customizations'
        meta:
          type: object
          description: Arbitrary key-value store for additional metadata
          additionalProperties:
            type: string
        rebalance_strategy:
          $ref: '#/components/schemas/RebalanceStrategy'
        cashflow_targets:
          type: array
          items:
            $ref: '#/components/schemas/CashflowTarget'
      required:
      - model_id
      - assignment_date
      - customizations
      - meta
      - cashflow_targets
x-provenance:
  method: searched
  source: https://docs.moment.com/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.moment.com/reference/accountdetail-1.md
  - https://docs.moment.com/reference/assignlotstosleeve.md
  - https://docs.moment.com/reference/assignsleevetomodel.md
  - https://docs.moment.com/reference/batchgetaccountstatistics.md
  - https://docs.moment.com/reference/cancelorder.md
  - https://docs.moment.com/reference/createsleeve.md
  - https://docs.moment.com/reference/deletesleeve.md
  - https://docs.moment.com/reference/get_v1-account-account-id-stats-1.md
  - https://docs.moment.com/reference/get_v1-advisor-advisor-id-stats-1.md
  - https://docs.moment.com/reference/getaccountlots.md
  - https://docs.moment.com/reference/getaccountstatistics.md
  - https://docs.moment.com/reference/placeorder.md
  - https://docs.moment.com/reference/unassignsleevefrommodel.md
  - https://docs.moment.com/reference/updateaccountrestrictions.md
  - https://docs.moment.com/reference/updateaccountsettings.md
  - https://docs.moment.com/reference/updatecashallocation.md
  - https://docs.moment.com/reference/updatedonottrade.md
  - https://docs.moment.com/reference/updatesleeve.md
  - https://docs.moment.com/reference/uploadaccountdocument.md
  - https://docs.moment.com/reference/upsertlotoverrides.md
  merge:
    pages: 20
    deduped: 54
    conflicts_kept_first: 0