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

# Get Results

Retrieve the results of a previously submitted [content check](/2026-04-15/session/check-session). You can look up a session either by its internal ID path or by your external ID query. Both lookup styles return the same `{ session, artifacts }` envelope as `POST /api/session`.

## Route Shapes

Use one of these routes:

| Route                                      | Use when                                                                |
| ------------------------------------------ | ----------------------------------------------------------------------- |
| `GET /api/session/{internal_session_id}`   | You have the system-generated session ID from a previous response       |
| `GET /api/session?external_session_id=...` | You want to look up the latest matching session by your own external ID |

`deployment_id` remains optional on both routes. If you omit it, White Circle uses the deployment associated with your API key.

<Info>`GET /api/session?external_session_id=...` returns the most recently submitted matching session within the same deployment.</Info>

## Example Requests

Using the internal session ID:

```bash theme={null}
curl -X GET "https://eu.whitecircle.com/api/session/123e4567-e89b-12d3-a456-426614174000" \
  -H "Authorization: Bearer wc-your-api-key" \
  -H "whitecircle-version: 2026-04-15"
```

Using your external session ID:

```bash theme={null}
curl -X GET "https://eu.whitecircle.com/api/session?external_session_id=user-session-123" \
  -H "Authorization: Bearer wc-your-api-key" \
  -H "whitecircle-version: 2026-04-15"
```

## Response

The endpoint returns the same session envelope as `POST /api/session`:

* `session` — The session-level verdict, IDs, and policy statuses
* `artifacts` — The artifact result objects for content associated with that session response

<Tip>If you provided an <code>external\_session\_id</code> during the original check, you can use it for stable lookups across systems. If you need an exact immutable lookup target, store the returned <code>internal\_session\_id</code>.</Tip>


## OpenAPI

````yaml GET /api/session/{internal_session_id}
openapi: 3.1.0
info:
  title: WhiteCircle API Backend
  description: 'Authentication: Bearer API Key Required'
  license:
    name: ''
  version: '2026-04-15'
servers:
  - url: https://eu.whitecircle.com
  - url: https://us.whitecircle.com
security: []
tags:
  - name: Session
    description: Session-based content checking and moderation
  - name: User
    description: User risk assessment and scoring
  - name: Policy
    description: Policy management CRUD
  - name: Metric
    description: Metric management CRUD
  - name: Artifact
    description: Standalone artifact moderation
paths:
  /api/session/{internal_session_id}:
    get:
      tags:
        - Session
      operationId: get_by_id_v4
      parameters:
        - name: whitecircle-version
          in: header
          description: API Version
          required: true
          schema:
            type: string
          example: '2026-04-15'
        - name: internal_session_id
          in: path
          description: Find a session by its internal session ID
          required: true
          schema:
            type: string
        - name: deployment_id
          in: query
          description: Optional deployment ID to validate session ownership
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionEnvelopeV4'
        '400':
          description: Bad Request
      security:
        - bearerAuth: []
components:
  schemas:
    SessionEnvelopeV4:
      type: object
      required:
        - session
        - artifacts
      properties:
        session:
          $ref: '#/components/schemas/CheckResponseV4'
        artifacts:
          type: array
          items:
            $ref: '#/components/schemas/ArtifactCheckResponse'
      example:
        session:
          flagged: true
          internal_session_id: 123e4567-e89b-12d3-a456-426614174000
          external_session_id: user-session-001
          policies:
            70289e06-9111-463e-b121-7247c2b7bfbd:
              flagged: true
              flagged_source:
                - text
              name: No PII Sharing
        artifacts:
          - flagged: true
            policies:
              70289e06-9111-463e-b121-7247c2b7bfbd:
                flagged: true
                flagged_source:
                  - image
                name: No PII Sharing
            kind: image
            status: completed
            updated_at: '2026-04-15T12:00:00Z'
            internal_artifact_id: 223e4567-e89b-12d3-a456-426614174000
            external_artifact_id: artifact-001
            external_session_id: user-session-001
            internal_session_id: 123e4567-e89b-12d3-a456-426614174000
            created_at: '2026-04-15T12:00:00Z'
    CheckResponseV4:
      type: object
      required:
        - flagged
        - internal_session_id
        - policies
      properties:
        flagged:
          type: boolean
        internal_session_id:
          type: string
        external_session_id:
          type:
            - string
            - 'null'
        policies:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PolicyStatusV3'
          propertyNames:
            type: string
        note:
          type:
            - string
            - 'null'
      example:
        flagged: true
        internal_session_id: 123e4567-e89b-12d3-a456-426614174000
        external_session_id: user-session-001
        policies:
          70289e06-9111-463e-b121-7247c2b7bfbd:
            flagged: true
            flagged_source:
              - text
            name: No PII Sharing
    ArtifactCheckResponse:
      type: object
      required:
        - status
        - kind
        - internal_artifact_id
        - policies
      properties:
        flagged:
          type:
            - boolean
            - 'null'
        policies:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ArtifactPolicyStatus'
          propertyNames:
            type: string
        kind:
          type: string
        status:
          type: string
        updated_at:
          type:
            - string
            - 'null'
        internal_artifact_id:
          type: string
        external_artifact_id:
          type:
            - string
            - 'null'
        external_session_id:
          type:
            - string
            - 'null'
        internal_session_id:
          type:
            - string
            - 'null'
        created_at:
          type:
            - string
            - 'null'
        note:
          type:
            - string
            - 'null'
    PolicyStatusV3:
      type: object
      required:
        - flagged
        - flagged_source
        - name
      properties:
        flagged:
          type: boolean
        flagged_source:
          type: array
          items:
            $ref: '#/components/schemas/ViolationSource'
        name:
          type: string
    ArtifactPolicyStatus:
      type: object
      required:
        - flagged
        - flagged_source
        - name
      properties:
        flagged:
          type: boolean
        flagged_source:
          type: array
          items:
            type: string
        name:
          type: string
    ViolationSource:
      type: string
      enum:
        - text
        - image
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'API Key required. Format: Bearer wc-your-api-key'

````