<div class="section-label"><span class="num">01</span> Arrays</div>
<div class="section-title">How to send <em>y</em>, <em>X</em>, and <em>theta</em>.</div>
Every prediction needs outcomes <span class="mono">y</span> and attributes <span class="mono">X</span>. Circumstances <span class="mono">theta</span> are optional. Language clients accept ordinary vectors and matrices; they encode JSON for you.
| Field | Shape | Meaning |
| --- | --- | --- |
| <span class="mono">y</span> | N numbers | Observed outcomes |
| <span class="mono">X</span> | N rows of K numbers | Attributes aligned with y |
| <span class="mono">theta</span> | K numbers, or M rows of K | Circumstances for this task |
```json
{
"y": [0.1, 0.2, 0.3],
"X": [[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]],
"theta": [0.0, 1.0]
}
```
N is observations, K is variables, M is how many circumstance rows you send at once. Values are 64-bit floating point.
If you omit `theta`, the engine uses the last row of `X`. If you send several circumstance rows (`M > 1`), one call becomes that many jobs. The client waits for all of them; see [[API/Endpoints/Results#Experiments|several circumstances]].
## Related
- [[API/Introduction|API]]
- [[API/Limits/Payload Limits|Payload size]] · [[API/Clients/Introduction|Clients]]