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

# Get Blueprint run results

> Retrieve output records or temporary download URLs from a completed Blueprint run.

Returns outputs from a completed Blueprint run using the same result contract as
Blueprint webhooks.

```bash theme={null}
curl -s "$RUBIE_API_URL/api/v1/blueprint-runs/run_.../results?deliveryMethod=direct" \
  -H "Authorization: Bearer $RUBIE_API_KEY"
```

`runId` accepts either the opaque `run_...` id or the UUID `run_key` from the
trigger response.

## Delivery methods

| `deliveryMethod` | Response `results` values                              |
| ---------------- | ------------------------------------------------------ |
| `direct`         | Objects containing `totalRecords` and inline `records` |
| `presigned_url`  | Temporary URLs for Brotli-compressed JSON files        |

The default is `presigned_url`. A direct request automatically switches to
presigned URLs when the estimated payload is 5 MB or larger. Check the returned
`dataDeliveryMethod` before reading `results`. Presigned URLs expire after two
hours.

Results are keyed by Blueprint output node reference key. If one node has
multiple output handles, the key includes both values, for example
`node_ref.handle_key`.

The endpoint returns `409` until the run is complete and `400` if its retained
output data has been purged. See [Triggering Blueprint runs](/guides/blueprint-runs)
for the complete trigger, poll, and fetch flow.


## OpenAPI

````yaml GET /blueprint-runs/{runId}/results
openapi: 3.0.3
info:
  title: Rubie API
  version: 1.0.0
  description: >
    Collect end-user credentials through a Rubie-hosted form, then run Rubie

    Blueprints against them asynchronously.


    This API is deliberately thin. Rubie does not model your domain: what a

    Blueprint accepts as input, what it does with a connected system, and what
    it

    produces are all defined by that Blueprint's configuration. The endpoints

    below are the transport around it.


    All endpoints require bearer authentication. Responses use opaque prefixed
    IDs

    (`cred_`, `sess_`, `ecs_`, `strat_`, `run_`, `bp_`), snake_case fields, and
    a

    single top-level error envelope — never a `success` wrapper.
servers:
  - url: https://app.rubiehq.com/api/v1
    description: Production
security:
  - BearerAuth: []
tags:
  - name: Credential Sessions
    description: Start and poll Rubie-hosted credential collection flows.
  - name: Embedded Credential Sessions
    description: Embed a Blueprint picker and credential capture flow in your product.
  - name: Credentials
    description: Revoke vaulted credentials.
  - name: Blueprints
    description: Trigger a Rubie Blueprint run.
  - name: Blueprint Runs
    description: Poll run status and retrieve completed outputs.
paths:
  /blueprint-runs/{runId}/results:
    get:
      tags:
        - Blueprint Runs
      summary: Get Blueprint run results
      description: >
        Returns output records or temporary download URLs for a completed
        Blueprint run. The response uses the same result contract as Blueprint
        webhooks. Direct delivery automatically switches to presigned URLs when
        the estimated payload is 5 MB or larger.
      operationId: getBlueprintRunResults
      parameters:
        - name: runId
          in: path
          required: true
          schema:
            type: string
          description: >-
            Opaque `run_...` id from the trigger response (UUID run_key also
            accepted).
          example: run_MQ
        - name: deliveryMethod
          in: query
          required: false
          description: Requested delivery method. Defaults to `presigned_url`.
          schema:
            type: string
            enum:
              - direct
              - presigned_url
            default: presigned_url
      responses:
        '200':
          description: Completed Blueprint outputs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlueprintRunResultsResponse'
              examples:
                direct:
                  summary: Inline records
                  value:
                    dataDeliveryMethod: direct
                    results:
                      customers:
                        totalRecords: 1
                        records:
                          - data:
                              external_id: '1042'
                              name: Acme Corp
                            errors: []
                            isValid: true
                    executionMetadata:
                      runKey: 550e8400-e29b-41d4-a716-446655440000
                      metadata:
                        source_system: acme-prod
                      timings:
                        executionBeganAt: '2026-07-31T17:10:05.000Z'
                        executionCompletedAt: '2026-07-31T17:12:00.000Z'
                presigned:
                  summary: Temporary result URLs
                  value:
                    dataDeliveryMethod: presigned_url
                    results:
                      customers: https://example.com/temporary-result
                    executionMetadata:
                      runKey: 550e8400-e29b-41d4-a716-446655440000
                      metadata: {}
                      timings:
                        executionBeganAt: '2026-07-31T17:10:05.000Z'
                        executionCompletedAt: '2026-07-31T17:12:00.000Z'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
components:
  schemas:
    BlueprintRunResultsResponse:
      type: object
      required:
        - dataDeliveryMethod
        - results
        - executionMetadata
      properties:
        dataDeliveryMethod:
          type: string
          enum:
            - direct
            - presigned_url
          description: >-
            The actual delivery method. Large direct responses automatically use
            presigned URLs.
        results:
          type: object
          description: >-
            Output values keyed by node reference key, or `node_ref.handle_key`
            for multi-output nodes.
          additionalProperties:
            oneOf:
              - $ref: '#/components/schemas/BlueprintDirectResult'
              - type: string
                format: uri
        executionMetadata:
          $ref: '#/components/schemas/BlueprintExecutionMetadata'
    BlueprintDirectResult:
      type: object
      required:
        - totalRecords
        - records
      properties:
        totalRecords:
          type: integer
          minimum: 0
        records:
          type: array
          items:
            $ref: '#/components/schemas/BlueprintResultRecord'
    BlueprintExecutionMetadata:
      type: object
      required:
        - runKey
        - metadata
        - timings
      properties:
        runKey:
          type: string
          format: uuid
        metadata:
          type: object
          additionalProperties:
            type: string
        timings:
          type: object
          required:
            - executionBeganAt
            - executionCompletedAt
          properties:
            executionBeganAt:
              type: string
              format: date-time
            executionCompletedAt:
              type: string
              format: date-time
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
    BlueprintResultRecord:
      type: object
      required:
        - data
        - errors
        - isValid
      properties:
        data:
          type: object
          additionalProperties: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/BlueprintResultValidationError'
        isValid:
          type: boolean
    Error:
      type: object
      required:
        - type
        - message
      properties:
        type:
          type: string
          enum:
            - authentication_error
            - authorization_error
            - not_found
            - validation_error
            - conflict
            - rate_limit_exceeded
            - internal_error
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
    BlueprintResultValidationError:
      type: object
      required:
        - path
        - error
      properties:
        path:
          type: string
        error:
          type: string
    ErrorDetail:
      type: object
      required:
        - message
      properties:
        message:
          type: string
        code:
          type: string
          nullable: true
        field:
          type: string
          nullable: true
  responses:
    ValidationError:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: API key is not authorized for this resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found in this account
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Conflict:
      description: Request conflicts with the current resource state
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: APIKey
      description: Your Rubie API key as a bearer token.

````