# Portal Sagecontinuum — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Monitor environmental sensor networks in real-time by accessing node status, sensor readings, and application performance data from the Sage portal. Query historical time-series measurements, browse available sensors and applications, and track job details across your distributed environmental monitoring infrastructure.

**Category:** Other | **Website:** [portal.sagecontinuum.org/](https://portal.sagecontinuum.org/) | **Docs:** [parse.bot/marketplace/38abea86-aae4-40bc-8a2e-adab1291b054/portal-sagecontinuum-org-api](https://parse.bot/marketplace/38abea86-aae4-40bc-8a2e-adab1291b054/portal-sagecontinuum-org-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get app detail

Get details for a specific version of an app from the Sage ECR App Catalog. All three parameters (namespace, name, version) are required; there is no 'latest' version alias.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `NAME` | string | Yes | App name (e.g., goes-data, cl61-plot) |
| `NAMESPACE` | string | Yes | App namespace/owner (e.g., andrewsm, bhupendraraut) |
| `VERSION` | string | Yes | App version string (e.g., 0.1.1, 0.25.4.23). Obtain from list_apps results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-app-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"NAME":"<string>","NAMESPACE":"<string>","VERSION":"<string>"}'
```

### Get job detail

Get details for a specific job by job ID. Returns full job definition including plugins with specs, node assignments, science rules, success criteria, and state.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `JOB_ID` | string | Yes | Numeric job ID as a string (e.g., 1, 2, 10) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-job-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"JOB_ID":"<string>"}'
```

### Get node app history

Get the plugin/app execution history for a node based on scheduler system logs (sys.scheduler.* events). Returns plugin completion and event records within the specified time window.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `START` | string | No | Start time for history lookup relative to now. Format: -<number><unit> where unit is m (minutes), h (hours), or d (days). Examples: -1d, -7d, -30d. |
| `VSN` | string | Yes | Node VSN identifier (e.g., W02C, H007) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-node-app-history \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"START":"<string>","VSN":"<string>"}'
```

### Get node computes

Get the compute hardware units attached to a specific node. Returns model, manufacturer, serial number, and capabilities for each compute unit.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `VSN` | string | Yes | Node VSN identifier (e.g., W0B8, H007) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-node-computes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"VSN":"<string>"}'
```

### Get node latest records

Get the most recent sensor and system measurement records for a node within a specified lookback window. Returns timestamped measurements with name, value, and metadata.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `LOOKBACK` | string | No | Time lookback period relative to now. Format: -<number><unit> where unit is m (minutes), h (hours), or d (days). Examples: -10m, -1h, -1d. |
| `VSN` | string | Yes | Node VSN identifier (e.g., W0B8, H007) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-node-latest-records \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"LOOKBACK":"<string>","VSN":"<string>"}'
```

### Get node sensors

Get the full hardware manifest for a specific node including sensors, resources, LoRaWAN connections, and compute units. Uses the manifests API for detailed hardware information including datasheets and descriptions.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `VSN` | string | Yes | Node VSN identifier (e.g., W0B8, H007, W02C) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-node-sensors \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"VSN":"<string>"}'
```

### Get node status

Get the reporting status and metadata for a specific node by its VSN. Returns node details including project, focus, location, GPS coordinates, registration info, and lists of attached sensors and compute units. Also checks whether the node is currently reporting data by looking for recent sys.uptime signals.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `VSN` | string | Yes | Node VSN identifier (e.g., W0B8, H007, W02C) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-node-status \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"VSN":"<string>"}'
```

### Get sensor detail

Get details for a specific sensor hardware model including capabilities, manufacturer, datasheet URL, description, and list of nodes using it.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `MODEL` | string | Yes | Sensor hardware model name (e.g., BME680, MPU6050, ES-642) |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/get-sensor-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"MODEL":"<string>"}'
```

### List all nodes

List all nodes registered in the system, regardless of reporting status. Includes nodes from all projects and phases.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/list-all-nodes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List apps

List all public applications in the Sage Edge Code Repository (ECR) App Catalog. Returns app metadata including name, namespace, version, description, source, and build info.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/list-apps \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List jobs

List all jobs across the Sage platform. Returns job definitions including plugins, node assignments, scheduling rules, and current state.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/list-jobs \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List nodes

List all active nodes that are currently reporting data. Checks for recent sys.uptime signals within the last 15 minutes to determine reporting status. Returns nodes with full metadata including sensors, computes, GPS, and reporting status.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/list-nodes \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List sensors

List all sensor hardware models in the Sage catalog. Returns detailed sensor information including capabilities, datasheets, descriptions, and which nodes use each sensor.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/list-sensors \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Query data

Raw query to the Sage time-series data API. Accepts a JSON query with start time, filters, and optional tail parameter. Returns NDJSON-parsed measurement records with timestamp, name, value, and meta fields.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `QUERY_JSON` | string | Yes | JSON string with query parameters. Required key: 'start' (relative time like '-1h' or '-1d'). Optional keys: 'filter' (object with field filters like 'vsn', 'name'), 'tail' (integer, max records to return). Example: {"start":"-1h","filter":{"vsn":"W0B8","name":"env.temperature"},"tail":10} |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/portal-sagecontinuum/query-data \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"QUERY_JSON":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.