---
title: "/calculate"
url: "https://developers.rest.rodeo/apis/calculator/versions/d9c14a0b-d050-4f2d-8c38-1cb43a2f68f6/operations/calculate"
---

> Full API specification: https://developers.rest.rodeo/apis/calculator/versions/d9c14a0b-d050-4f2d-8c38-1cb43a2f68f6.md

# /calculate

`POST` `/calculate`

Operation ID: `calculate`

Folds the operation left-to-right across `data`. A single-element `data` array returns that element unchanged.

## Request body (required)

Content types: `application/json`

## Responses

- `200` - The computed result
- `400` - Malformed JSON, unknown operation, or invalid `data`
- `405` - Method not allowed

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: Calculator API
  version: 1.0.0
servers:
  - url: https://api.rest.rodeo/calculator/api/v1
    description: Production
paths:
  /calculate:
    post:
      operationId: calculate
      summary: /calculate
      description: Folds the operation left-to-right across `data`. A single-element
        `data` array returns that element unchanged.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CalculateRequest"
            examples:
              multiply:
                value:
                  operation: multiply
                  data:
                    - 2
                    - 1
              subtract:
                value:
                  operation: subtract
                  data:
                    - 2
                    - 1
              addition:
                value:
                  operation: addition
                  data:
                    - 2
                    - 1
      responses:
        "200":
          description: The computed result
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CalculateResponse"
              examples:
                multiply:
                  value:
                    result: 2
                subtract:
                  value:
                    result: 1
                addition:
                  value:
                    result: 3
        "400":
          description: Malformed JSON, unknown operation, or invalid `data`
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "405":
          description: Method not allowed
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
components:
  schemas:
    CalculateRequest:
      type: object
      required:
        - operation
        - data
      additionalProperties: false
      properties:
        operation:
          type: string
          description: The arithmetic operation to apply.
          enum:
            - addition
            - subtract
            - multiply
        data:
          type: array
          description: Operands, folded left-to-right.
          minItems: 1
          items:
            type: number
    CalculateResponse:
      type: object
      required:
        - result
      additionalProperties: false
      properties:
        result:
          type: number
    Error:
      type: object
      required:
        - error
      additionalProperties: false
      properties:
        error:
          type: string
```
