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

# GetExperimentPolicyAPI mirrors erdo_get_experiment_policy — the decision


> policy's latest state (posteriors, allocation, stop probabilities).




## OpenAPI

````yaml /api/openapi.json get /v1/experiments/{experimentSlug}/policy
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, and experiments. Authenticate with
    a Bearer API key (erdo_api_...) or scoped token (erdo_token_...).
  version: '2026-07-25'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/experiments/{experimentSlug}/policy:
    get:
      summary: |
        GetExperimentPolicyAPI mirrors erdo_get_experiment_policy — the decision
      description: |
        policy's latest state (posteriors, allocation, stop probabilities).
      operationId: GET:mcp.GetExperimentPolicyAPI
      parameters:
        - allowEmptyValue: true
          explode: false
          in: path
          name: experimentSlug
          required: true
          schema:
            type: string
          style: simple
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  calibration_pairs:
                    format: int64
                    title: >
                      CalibrationPairs / CalibrationZTestPassed report the gate
                      state at step time.
                    type: integer
                  calibration_z_test_passed:
                    type: boolean
                  decision_reason:
                    type: string
                  effects:
                    items:
                      $ref: '#/components/schemas/types.ExperimentPolicyEffect'
                    type: array
                  large_step:
                    type: boolean
                  primary_metric:
                    type: string
                  prior_pseudo_sessions:
                    description: >
                      prediction carried into the priors (0 when the gate was
                      closed).
                    title: >
                      PriorPseudoSessions is n₀ — the calibration-gated weight
                      the panel
                    type: number
                  recommended_decision:
                    description: >
                      stop | inconclusive. RecommendedVariant names the variant
                      to ship, if any.
                    title: >
                      RecommendedDecision is the stopping evaluator's call:
                      continue | ship |
                    type: string
                  recommended_variant:
                    type: string
                  stepped_at:
                    description: |
                      observed\_at). Zero when only a stop reading exists.
                    format: date-time
                    title: >
                      SteppedAt is when the policy last ran (the allocation_step
                      observation's
                    type: string
                  total_movement:
                    description: |
                      LargeStep flags a step past the attention threshold.
                    format: int64
                    title: >
                      TotalMovement is the sum of absolute allocation changes
                      the last step made;
                    type: integer
                  variants:
                    items:
                      $ref: '#/components/schemas/types.ExperimentPolicyVariant'
                    type: array
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    types.ExperimentPolicyEffect:
      description: |
        control — reported, never gating. Both estimates carry a 95% CI.
      properties:
        augmented_ci_high:
          type: number
        augmented_ci_low:
          type: number
        augmented_effect:
          type: number
        naive_ci_high:
          type: number
        naive_ci_low:
          type: number
        naive_effect:
          type: number
        variant_key:
          type: string
      title: >
        ExperimentPolicyEffect is the HAIPW readout for one treatment variant vs
        the
      type: object
    types.ExperimentPolicyVariant:
      properties:
        allocation:
          format: int64
          type: integer
        expected_loss:
          type: number
        guardrail_veto:
          type: boolean
        is_control:
          type: boolean
        key:
          type: string
        kill_eligible:
          type: boolean
        posterior_alpha:
          type: number
        posterior_beta:
          type: number
        posterior_mean_rate:
          type: number
        predicted_rate:
          type: number
        prob_beat_control:
          title: >
            ProbBeatControl / ExpectedLoss are the stopping stats (0 for the
            control).
          type: number
        ship_eligible:
          type: boolean
        stopped:
          type: boolean
        successes:
          type: number
        trials:
          type: number
        win_frequency:
          type: number
      title: >
        ExperimentPolicyVariant is one variant's belief + allocation + stop
        stats.
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````