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

# Get forward-backward operation

> Retrieves the current status and result of a forward-backward operation.



## OpenAPI

````yaml openapi.yaml GET /rl/training-sessions/{session_id}/operations/forward-backward/{operation_id}
openapi: 3.1.0
info:
  title: Together APIs
  description: The Together REST API. See https://docs.together.ai for more details.
  version: 2.0.0
  termsOfService: https://www.together.ai/terms-of-service
  contact:
    name: Together Support
    url: https://www.together.ai/contact
  license:
    name: MIT
    url: https://github.com/togethercomputer/openapi/blob/main/LICENSE
servers:
  - url: https://api.together.ai/v1
    description: Default environment for APIs
  - url: https://api-inference.together.ai/v2
    description: Optimized environment for inference
security:
  - bearerAuth: []
paths:
  /rl/training-sessions/{session_id}/operations/forward-backward/{operation_id}:
    get:
      tags:
        - RL
      summary: Get forward-backward operation
      description: Retrieves the current status and result of a forward-backward operation.
      operationId: getForwardBackwardOperation
      parameters:
        - name: session_id
          in: path
          required: true
          schema:
            description: Training session ID
            type: string
        - name: operation_id
          in: path
          required: true
          schema:
            description: Operation ID
            type: string
      responses:
        '200':
          description: Forward-backward operation details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RL.ForwardBackwardOperation'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorData'
components:
  schemas:
    RL.ForwardBackwardOperation:
      type: object
      description: Async forward-backward pass operation
      required:
        - id
        - status
      properties:
        id:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
          description: Operation ID
        status:
          $ref: '#/components/schemas/RL.TrainingOperationStatus'
          example: TRAINING_OPERATION_STATUS_PENDING
          description: Operation status
        output:
          $ref: '#/components/schemas/RL.ForwardBackwardResult'
          description: Result on success
        error:
          $ref: '#/components/schemas/RL.TrainingOperationError'
          description: Error details on failure
    ErrorData:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              nullable: false
            type:
              type: string
              nullable: false
            param:
              type: string
              nullable: true
              default: null
            code:
              type: string
              nullable: true
              default: null
          required:
            - type
            - message
    RL.TrainingOperationStatus:
      type: string
      enum:
        - TRAINING_OPERATION_STATUS_UNSPECIFIED
        - TRAINING_OPERATION_STATUS_PENDING
        - TRAINING_OPERATION_STATUS_RUNNING
        - TRAINING_OPERATION_STATUS_COMPLETED
        - TRAINING_OPERATION_STATUS_FAILED
      default: TRAINING_OPERATION_STATUS_UNSPECIFIED
    RL.ForwardBackwardResult:
      type: object
      description: Result of a scored forward or forward-backward operation
      required:
        - loss
      properties:
        loss:
          type: number
          example: 2.345
          description: Loss value
        metrics:
          type: object
          description: Loss-specific metrics (e.g., KL divergence, clip fraction for GRPO)
          example:
            loss/clip/high_fraction: 0.1
            loss/kl_ref/mean: 0.05
          additionalProperties:
            type: number
        loss_fn_outputs:
          type: array
          description: >-
            Per-sample loss function outputs, in request order. Empty unless the
            request set `return_loss_fn_outputs`.
          items:
            $ref: '#/components/schemas/RL.LossFnOutput'
    RL.TrainingOperationError:
      type: object
      description: Error details for a failed training operation
      properties:
        code:
          $ref: '#/components/schemas/RL.TrainingOperationErrorCode'
          description: Application error code
          example: TRAINING_OPERATION_ERROR_CODE_TIMEOUT
        message:
          description: Human-readable error message
          type: string
          example: Operation timed out
    RL.LossFnOutput:
      type: object
      description: Output tensors produced by the loss function for one sample.
      required:
        - tensors
      properties:
        tensors:
          type: object
          description: >-
            Output tensors keyed by name. Built-in losses return `logprobs`: the
            model's float32 per-token log-probabilities under the current
            policy, one value per token of the sample's input. Positions
            excluded from the loss, such as zero-weight positions, are masked to
            zero rather than true log-probabilities.
          additionalProperties:
            $ref: '#/components/schemas/RL.TensorData'
    RL.TrainingOperationErrorCode:
      type: string
      description: Application error code for a failed training operation
      enum:
        - TRAINING_OPERATION_ERROR_CODE_UNSPECIFIED
        - TRAINING_OPERATION_ERROR_CODE_RESOURCE_EXHAUSTED
        - TRAINING_OPERATION_ERROR_CODE_TIMEOUT
        - TRAINING_OPERATION_ERROR_CODE_INTERNAL_ERROR
        - TRAINING_OPERATION_ERROR_CODE_SESSION_NOT_ACTIVE
        - TRAINING_OPERATION_ERROR_CODE_INVALID_INPUT
        - TRAINING_OPERATION_ERROR_CODE_NON_FINITE_LOSS
      default: TRAINING_OPERATION_ERROR_CODE_UNSPECIFIED
    RL.TensorData:
      type: object
      description: A tensor encoded as flattened row-major values, with an optional shape.
      required:
        - data
        - dtype
      properties:
        data:
          type: array
          description: Flattened one-dimensional values encoded as JSON numbers.
          example:
            - 1
            - 2
            - 3
          items:
            type: number
            format: double
        dtype:
          type: string
          enum:
            - int64
            - float32
          description: Tensor element type, either `int64` or `float32`.
          example: int64
        shape:
          type: array
          description: >-
            Optional tensor shape; training operations accept one-dimensional
            tensors only, and the dimension must match the data length.
          example:
            - 3
          items:
            type: integer
        sparse_crow_indices:
          type: array
          description: Unsupported for training operations. Omit this field.
          example:
            - 0
            - 2
          items:
            type: integer
        sparse_col_indices:
          type: array
          description: Unsupported for training operations. Omit this field.
          example:
            - 0
            - 2
          items:
            type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      x-bearer-format: bearer
      x-default: default

````

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