<div class="section-label"><span class="num">01</span> API</div>
<div class="section-title">The hosted <em>RBP Engine</em>.</div>
Run Grid, MaxFit, and PSR over HTTPS. You send outcomes and attributes, and you get a forecast with the same insights as the engine on your machine. Math runs in the CSA cloud, not on your laptop.
Your CSA account manager issues an organization API key and a user access id. Set them as environment variables, then start with a language client.
| Variable | Purpose |
| --- | --- |
| <span class="mono">CSA_API_KEY</span> | Organization API key |
| <span class="mono">CSA_ACCESS_ID</span> | Your user access id |
```python
from rbp_engine_api_client import RbpEngineApiClient
client = RbpEngineApiClient()
envelope = client.predict_grid(
y=[0.1, 0.2, 0.3],
X=[[1.0, 0.0], [0.0, 1.0], [1.0, 1.0]],
)
yhat = envelope["results"]["yhat"]
```
Grid is the usual analysis path. The client submits the job and waits until the forecast is ready. What the numbers mean: [[Functions/Grid Prediction|Grid Prediction]] · [[Results/Grid Insights|Grid Insights]].
<div class="pillars">
<div class="pillar">
<div class="pillar-num">↳ 01</div>
<div class="pillar-title">Python</div>
<div class="pillar-text">Install the client, call predict_grid, read yhat. The fastest way to a first result.</div>
</div>
<div class="pillar">
<div class="pillar-num">↳ 02</div>
<div class="pillar-title">R</div>
<div class="pillar-text">Same methods as a named list of options. predict_grid is the starting call.</div>
</div>
<div class="pillar">
<div class="pillar-num">↳ 03</div>
<div class="pillar-title">MATLAB</div>
<div class="pillar-text">Download the client in MATLAB, addpath, then predictGrid. Pass apiKey= if Desktop does not see your environment.</div>
</div>
</div>
<p> </p>
<div class="section-label"><span class="num">02</span> In this chapter</div>
<div class="solution-list">
<div class="solution-row">
<div class="solution-num">/01</div>
<div class="solution-title"><a href="/API/Clients/Introduction">Clients</a></div>
<div class="solution-desc">Start here. Python, R, and MATLAB packages that submit a job and wait for the forecast.</div>
</div>
<div class="solution-row">
<div class="solution-num">/02</div>
<div class="solution-title"><a href="/API/Endpoints/Grid">Endpoints</a></div>
<div class="solution-desc">The HTTP calls themselves, if you are not using a language client.</div>
</div>
<div class="solution-row">
<div class="solution-num">/03</div>
<div class="solution-title"><a href="/API/Limits/Arrays">Limits</a></div>
<div class="solution-desc">How to shape y, X, and theta; payload size; and request quota.</div>
</div>
</div>
<div class="solution-list">
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Clients/Python">Python</a></div>
<div class="solution-desc">pip package. Grid first, then MaxFit and PSR.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Clients/R">R</a></div>
<div class="solution-desc">rbpengineapi from GitHub. predict_grid, predict_maxfit, predict_psr.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Clients/MATLAB">MATLAB</a></div>
<div class="solution-desc">rbpengineapi. Download in MATLAB, then predictGrid, predictMaxfit, predictPsr.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Endpoints/Grid">Grid</a></div>
<div class="solution-desc">POST /grid: composite forecast across attribute combinations.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Endpoints/MaxFit">MaxFit</a></div>
<div class="solution-desc">POST /maxfit: strongest fit on a fixed attribute set.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Endpoints/PSR">PSR</a></div>
<div class="solution-desc">POST /psr: prediction at thresholds you choose.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Endpoints/Results">Results</a></div>
<div class="solution-desc">How to poll a job, read yhat, and fetch one field.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Limits/Arrays">Arrays</a></div>
<div class="solution-desc">y as a list, X as rows of attributes, theta as one or many circumstances.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Limits/Payload%20Limits">Payload size</a></div>
<div class="solution-desc">Keep X under 5 MiB, or let the Python client upload it.</div>
</div>
<div class="solution-row">
<div class="solution-num">↳</div>
<div class="solution-title"><a href="/API/Limits/Throttle%20Limits">Quota</a></div>
<div class="solution-desc">Each POST counts against your plan. Reads do not.</div>
</div>
</div>
> [!tip]
> New here? Install the [[API/Clients/Python|Python client]] and run Grid. To run the same math on your machine instead, see [[Install/Get Started|Install]].
<div class="btn-row center">
<a class="btn-primary" href="/API/Clients/Python">Start with Python</a>
<a class="btn-ghost" href="/API/Clients/Introduction">All clients</a>
</div>