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

# Calculator API

OpenAPI specification document.

```json
{"openapi":"3.0.3","info":{"title":"Calculator API","description":"Applies an arithmetic operation across a list of numbers.","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"}}}}}}
```
