Savings and caching
Every request goes to your tenant’s own host, https://<tenant id>.atlanticagenticlabs.com, and is scoped to that tenant by row-level security. The examples read AAL_TENANT, AAL_KEY and your Access service token from the environment: see Authentication.
Caching Read
Section titled “Caching Read”GET /api/v1/caching
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the JSON document this route reads. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/caching" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.get(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/caching", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/caching`, { headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());Rate Limits Read
Section titled “Rate Limits Read”GET /api/v1/rate-limits
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the JSON document this route reads. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/rate-limits" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.get(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/rate-limits", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/rate-limits`, { headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());Savings Ledger
Section titled “Savings Ledger”GET /api/v1/savings
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the JSON document this route reads. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/savings" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.get(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/savings", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/savings`, { headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());Savings Headline
Section titled “Savings Headline”GET /api/v1/savings/headline
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the JSON document this route reads. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/savings/headline" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.get(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/savings/headline", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/savings/headline`, { headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());Retrieval Savings
Section titled “Retrieval Savings”GET /api/v1/savings/retrieval
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the JSON document this route reads. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/savings/retrieval" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.get(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/savings/retrieval", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/savings/retrieval`, { headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());Get Savings Settings
Section titled “Get Savings Settings”GET /api/v1/savings/settings
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the JSON document this route reads. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/savings/settings" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.get(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/savings/settings", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/savings/settings`, { headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());Put Savings Settings
Section titled “Put Savings Settings”PUT /api/v1/savings/settings
Authentication: A person’s session, or a machine key with your Access service token, as the route’s role allows. A route that approves, decides, pays or changes a limit refuses a machine key (person_required).
| Status | Meaning |
|---|---|
| 200 | OK: the request was carried out. The answer is JSON. |
| 4XX | Refused: {error, message} with a fixed error code, listed under Errors. |
curl -X PUT "https://$AAL_TENANT.atlanticagenticlabs.com/api/v1/savings/settings" \ -H "Authorization: Bearer $AAL_KEY" \ -H "CF-Access-Client-Id: $CF_ACCESS_CLIENT_ID" \ -H "CF-Access-Client-Secret: $CF_ACCESS_CLIENT_SECRET"import os
import httpx
headers = { "Authorization": f"Bearer {os.environ['AAL_KEY']}", "CF-Access-Client-Id": os.environ["CF_ACCESS_CLIENT_ID"], "CF-Access-Client-Secret": os.environ["CF_ACCESS_CLIENT_SECRET"],}r = httpx.put(f"https://{os.environ['AAL_TENANT']}.atlanticagenticlabs.com/api/v1/savings/settings", headers=headers)r.raise_for_status()print(r.json())const res = await fetch( `https://${process.env.AAL_TENANT}.atlanticagenticlabs.com/api/v1/savings/settings`, { method: "PUT", headers: { Authorization: `Bearer ${process.env.AAL_KEY}`, "CF-Access-Client-Id": process.env.CF_ACCESS_CLIENT_ID!, "CF-Access-Client-Secret": process.env.CF_ACCESS_CLIENT_SECRET!, }, },);if (!res.ok) throw new Error(`${res.status}: ${(await res.json()).error}`);console.log(await res.json());