# Introduction

A SureSheet is a workbook that resets every time you reload it. An example SureSheet:

* [Investment Growth SureSheet](https://www.equalto.com/suresheet/view/abc7cbef-2491-4787-94f8-6542fab12a4e)

The SureSheet Collab API allows you to run "what-if" scenarios against a SureSheet. For example, in the above Investment Growth SureSheet, we can calculate the "capital at end of term" (`C13`) if our initial investment (`C6`) is increased from `$10,000` to `$50,000` with this simple `GET` request:

* [https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={"Sheet1":{"C6":50000}}\&outputs={"Sheet1":\["C13"\]}](https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={%22Sheet1%22:{%22C6%22:50000}}\&outputs={%22Sheet1%22:\[%22C13%22]})

Note that a simulation **does not** modify a SureSheet. This means the Simulation API is a robust way for business users to create spreadsheets that developers subsequently incorporate into websites / applications.

## /api/v1/simulate/{workbook\_id}

Supports either `GET` or `POST`

Parameters:

* `inputs` : specify the input values in the simulation.
  * `{<sheet name>: {<cell ref>: <value>}}`
  * Example: `{"Sheet1":{"A1": 100}}`
* `outputs` : specify the output cells to retrieve as part of the simulation
  * `{<sheet name>: [<cell ref|range>]}`
  * Example: `{"Sheet1":["B1", "C2:D3"]}`

The request response will contain the values requested by the `outputs` parameter.

### Simple example

```
inputs={"Sheet1":{"C6":25000}}
outputs={"Sheet1":["C13"]}
response={
  "Sheet1": {
    "C13": 50783.31719489607
  }
}
```

[https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={"Sheet1":{"C6":25000}}\&outputs={"Sheet1":\["C13](https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={%22Sheet1%22:{%22C6%22:25000}}\&outputs={%22Sheet1%22:\[%22C13%22]})["](https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={%22Sheet1%22:{%22C6%22:25000}}\&outputs={%22Sheet1%22:\[%22C13%22]})[\]}](https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={%22Sheet1%22:{%22C6%22:25000}}\&outputs={%22Sheet1%22:\[%22C13%22]})

### Advanced example - with ranges

```
inputs={"Sheet1":{"C6":25000}}
outputs={"Sheet1":["C13", "B14:C16"]}
response={
  "Sheet1": {
    "C13": 50783.31719489607,
    "B14:C16": [
      ["   Initial investment amount:", 25000.0],
      ["   Additional contributions:", 10500.0],
      ["   Interest earned:", 15283.31719489607]
    ]
  }
}
```

[https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={"Sheet1":{"C6":25000}}\&outputs={"Sheet1":\["C13","B14:C16"\]}](https://www.equalto.com/suresheet/api/v1/simulate/abc7cbef-2491-4787-94f8-6542fab12a4e?inputs={%22Sheet1%22:{%22C6%22:25000}}\&outputs={%22Sheet1%22:\[%22C13%22,%20%22B14:C16%22]})
