> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentlinkops.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Estimate shared credits

> Estimate shared Monitor credits before a check, lookup, crawl or schedule change.

`estimate_usage`

Estimate shared Monitor credits before a check, lookup, crawl or schedule change. Reads only; provider availability and admission are rechecked at start. Saved reports and exports use no new credits.

> [!NOTE]
>
> This command name is absent from deployment evidence dated 2026-10-17. Hosted availability for this current definition is unverified; inspect your connected catalog before invoking it. Verify the command and its input schema in the selected environment.

| Access | Behavior |
| - | - |
| `projects:read` | Reads saved data |

This read does not start a verification job.

## Example request

Connect through [MCP](/guides/connect-mcp), [CLI](/guides/connect-cli), or [HTTP](/guides/connect-http). Replace example identifiers with records from your workspace.

```json MCP theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "estimate_usage",
    "arguments": {
      "action": "lookup",
      "quantity": 1
    }
  }
}
```

```bash CLI theme={null}
agentlinkops call estimate_usage --args '{"action":"lookup","quantity":1}'
```

```bash HTTP theme={null}
curl --fail-with-body https://app.agentlinkops.com/v1/commands/estimate_usage \
  -H "Authorization: Bearer $AGENTLINKOPS_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"action":"lookup","quantity":1}'
```

## Returned result

Illustrative data validated against the documented response schema. IDs and dates are examples, not a live account capture. MCP returns this data in `structuredContent` and in a text content block; generic HTTP and CLI return the JSON result directly.

```json theme={null}
{
  "estimate": {
    "policyVersion": 1,
    "selectedPolicy": "monitor_shared_credits_v1",
    "enforcementActive": false,
    "workspaceId": "ws_example",
    "projectId": null,
    "action": "lookup",
    "maximumCredits": 1000,
    "period": {
      "id": "period_example",
      "startsAt": "2026-10-21T12:00:00.000Z",
      "endsAt": "2026-11-21T12:00:00.000Z"
    },
    "remainingCredits": 30000,
    "protectedCredits": 6000,
    "availableCredits": 24000,
    "afterActionCredits": 29000,
    "canAfford": true,
    "canProceed": true,
    "shortfallCredits": 0,
    "forecastMonitoringCredits": 6000,
    "assumptions": [
      "Estimate only; admission rechecks current allowance and monitoring protection atomically.",
      "Saved reads/reports do not start fresh provider collection. Existing provider admission remains required."
    ],
    "expiresAt": "2026-10-21T12:05:00.000Z",
    "intentHash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  }
}
```

## Input fields

Omit optional fields when you do not want to supply them. Null is accepted only where listed. Unknown input properties are rejected.

| Field | Type | Presence | Meaning and constraints |
| - | - | - | - |
| `action` | string | Required | Backend action to estimate. Reports use retained evidence; this never enables a provider. values: `"check"`, `"check_target"`, `"lookup"`, `"crawl"`, `"retained_read"`, `"ai_citation_report"`, `"monitor"`, `"scan_schedule"` |
| `quantity` | integer | Optional | Number of logical actions or selected links; defaults to one. minimum: `1`; maximum: `100000`; default: `1` |
| `projectId` | string | Optional | project ID from create/list. minLength: `1`; maxLength: `200` |
| `watchIds` | array | Optional | Accessible watches whose proposed schedule is being estimated. minItems: `1`; maxItems: `1000` |
| `targetIds` | array | Optional | Accessible destination records whose proposed schedule is being estimated. minItems: `1`; maxItems: `1000` |
| `cadenceSeconds` | integer | Optional | Proposed recurrence interval in seconds. minimum: `3600`; maximum: `2592000` |
| `pageLimit` | integer | Optional | Maximum pages in each proposed website scan. minimum: `1`; maximum: `100000` |

### Validation and omitted values

Read-only estimate: it creates no reservation or financial hold, starts no check or crawl, and does not activate a provider.

An accepted shared-credit Monitor contract is required. Legacy subscriptions keep their existing allowance; use get\_usage for authoritative usage and billing terms.

The response reports maximumCredits for the proposed work, alongside current-period remainingCredits, protectedCredits for scheduled monitoring, and availableCredits for new work. The period is null when none is current. Protection is a forecast, not another financial hold; enforcementActive states whether shared-credit protection is active.

The quote expires after five minutes or at the current billing-period end, whichever comes first. Starting work rechecks current admission, allowance, monitoring protection and provider availability.

For action check with watchIds, maximumCredits is two credits per selected watch for the composite source and destination checks. Without watchIds, check uses quantity; check\_target estimates explicit destination checks.

For action monitor, proposed source or destination schedules replace the selected records' existing forecast. maximumCredits is the nonnegative increase, projectedMonitoringCredits is their proposed total, and forecastMonitoringCredits is the revised workspace total. Enabling a schedule itself is uncharged.

For action scan\_schedule, maximumCredits aggregates bounded scans through the current period using a first scan now and then weekly (604800 seconds) or monthly (2592000 seconds). This is a forecast; actual starts depend on retained runs and current controls. Operational page and daily caps still apply.

A lookup is 1000 credits including its initial verification. A crawl is 20 credits per newly admitted page including ordinary rendering and bounded retries. Retained reads and saved AI citation reports use no new credits and do not collect new provider answers.

Omitting quantity uses one logical action. For crawl and scan\_schedule, the page maximum uses pageLimit, then an explicit quantity, otherwise 300 pages; scan\_schedule defaults to weekly. For monitor, selected records keep their cadence unless cadenceSeconds is supplied; without selected records, the defaults are one record and daily checks.

### Defaults when omitted

| Field | Default |
| - | - |
| `quantity` | `1` |

## Output fields

Fields inside optional or nullable parents apply only when that parent exists. [Common schema conventions](/reference/schemas) explain evidence states, empty lists and extensions.

* **`estimate`** (object, required).

> **All fields and nested objects**
>
> | Field | Type | Presence | Meaning and constraints |
> | - | - | - | - |
> | `estimate` | object | Required | |
> | `estimate.policyVersion` | number | Required | must equal `1` |
> | `estimate.selectedPolicy` | string | Required | must equal `"monitor_shared_credits_v1"` |
> | `estimate.enforcementActive` | boolean | Required | |
> | `estimate.workspaceId` | string | Required | Identifier returned by the related operation. |
> | `estimate.projectId` | string / null | Required | Identifier returned by the related operation. |
> | `estimate.action` | string | Required | values: `"check"`, `"check_target"`, `"lookup"`, `"crawl"`, `"retained_read"`, `"ai_citation_report"`, `"monitor"`, `"scan_schedule"` |
> | `estimate.maximumCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.remainingCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.protectedCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.availableCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.afterActionCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.forecastMonitoringCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.projectedMonitoringCredits` | integer | Optional | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.canAfford` | boolean | Required | |
> | `estimate.canProceed` | boolean | Required | |
> | `estimate.shortfallCredits` | integer | Required | minimum: `0`; maximum: `9007199254740991` |
> | `estimate.period` | object / null | Required | |
> | `estimate.period.id` | string | Required | Resource identifier returned by the operation. |
> | `estimate.period.startsAt` | string | Required | |
> | `estimate.period.endsAt` | string | Required | |
> | `estimate.assumptions` | array | Required | |
> | `estimate.expiresAt` | string | Required | |
> | `estimate.intentHash` | string | Required | |

[Download input schema](/schemas/estimate_usage.input.json) · [Download output schema](/schemas/estimate_usage.output.json)

## Errors and retries

Follow the error recovery before retrying this read. Preserve the selected workspace, project, filters and feed. Recovering a read does not require an idempotency key or another verification job. Operation-specific errors include `BILLING_MONITOR_PLAN_REQUIRED`, `PROJECT_ACCESS_DENIED`, `INVALID_CADENCE`.

See [error recovery](/reference/errors) for status, scope, cooldown, cursor and retry handling. Unknown observations are result data and do not establish loss.

## HTTP resource routes

This operation has no separate resource alias. Use its generic command route in a matching environment.

## Continue

[get\_usage](/reference/commands/get_usage) · [get\_workspace](/reference/commands/get_workspace)

Follow the [related workflow](/guides/connect-http), inspect [capability status](/capability-status), or return to the [command index](/reference/index).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.