ForceX

Developer

Xtract usage history

get_developer_usage · Developer · Free

Use this when the user asks what their Xtract usage has been. Your recent Xtract credit usage as daily rows per endpoint, covering up to `months` (1-12, default 12) back. This is the asynchronous reporting rollup and it is USER-WIDE: rows span ALL your API keys and BOTH environments (live + test mixed) unless `environment` is set; each row carries its environment and key_prefix. Do not equate its sum with get_developer_me's live period counter — different scope. 0 credits.

Page Sections

Request

Send a tools/call request to the MCP endpoint /xtract/mcp:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_developer_usage",
    "arguments": {}
  }
}

Parameters

NameTypeRequiredDescription
environmentstring — one of: live, testnoRestrict rows to keys of one environment (live | test). Omitted: rows span all your keys and BOTH environments.
monthsintegernoMonths of history to cover (1-12, default 12).
Full input schema
{
  "additionalProperties": false,
  "properties": {
    "environment": {
      "description": "Restrict rows to keys of one environment (live | test). Omitted: rows span all your keys and BOTH environments.",
      "enum": [
        "live",
        "test"
      ],
      "type": "string"
    },
    "months": {
      "default": 12,
      "description": "Months of history to cover (1-12, default 12).",
      "maximum": 12,
      "minimum": 1,
      "type": "integer"
    }
  },
  "type": "object"
}

Response

The outputSchema is the CLOSED model contract for structuredContent (top-level additionalProperties: false), answer-first fixed key order: source, tool, endpoint, request (echoed arguments), answer (authoritative result summary — answer from this and data), data (the complete result), included/included_digest (full expansion rows + a compact digest, when paid include expansions were served), units, answerable_fields, warnings, citations (complete visible citation array), usage (per-call cost truth), validation, and pagination (cursor/has_more/effective_limit/requested_limit). The single content block is a short plain-text answer card mirroring the same facts (header, Answer, Units, Warnings, Usage, Source). Errors return a plain-text error card and attach NO structuredContent. See How to cite ForceX MCP results.

Full output schema
{
  "additionalProperties": false,
  "description": "Answer-first model contract: source, tool, endpoint, request, answer, data, included?, included_digest?, units, answerable_fields, warnings, citations, usage, validation, pagination?. Errors attach NO structuredContent (plain-text error card in content).",
  "properties": {
    "answer": {
      "description": "Authoritative result summary — answer from this and `data`.",
      "type": "string"
    },
    "answerable_fields": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "citations": {
      "items": {
        "additionalProperties": true,
        "description": "Visible citation (optional keys null-elided).",
        "properties": {
          "docs_url": {
            "type": "string"
          },
          "endpoint": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "tool": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "source",
          "tool",
          "endpoint",
          "docs_url"
        ],
        "type": "object"
      },
      "type": "array"
    },
    "data": {
      "items": {
        "additionalProperties": true,
        "properties": {
          "credit_cost_sum": {
            "type": "integer"
          },
          "day": {
            "type": "string"
          },
          "endpoint": {
            "type": "string"
          },
          "environment": {
            "type": [
              "string",
              "null"
            ]
          },
          "error_count": {
            "type": "integer"
          },
          "key_prefix": {
            "type": [
              "string",
              "null"
            ]
          },
          "request_count": {
            "type": "integer"
          }
        },
        "type": "object"
      },
      "type": "array"
    },
    "endpoint": {
      "type": "string"
    },
    "pagination": {
      "type": [
        "object",
        "null"
      ]
    },
    "request": {
      "type": "object"
    },
    "source": {
      "type": "string"
    },
    "tool": {
      "type": "string"
    },
    "units": {
      "type": "object"
    },
    "usage": {
      "additionalProperties": true,
      "description": "Per-call cost truth; cost_note only when the charge exceeds the Free cap.",
      "properties": {
        "base_credit_cost": {
          "type": "integer"
        },
        "credit_cost": {
          "type": [
            "integer",
            "null"
          ]
        },
        "include_credit_costs": {
          "type": "object"
        },
        "rate_limit": {
          "type": [
            "object",
            "null"
          ]
        }
      },
      "required": [
        "credit_cost",
        "base_credit_cost",
        "include_credit_costs"
      ],
      "type": "object"
    },
    "validation": {
      "additionalProperties": false,
      "description": "Validation state; not_applicable_reason when not chain-scope.",
      "properties": {
        "lag_blocks": {
          "type": [
            "integer",
            "null"
          ]
        },
        "not_applicable_reason": {
          "type": "string"
        },
        "scope": {
          "type": [
            "string",
            "null"
          ]
        },
        "status": {
          "type": [
            "string",
            "null"
          ]
        },
        "validated_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "validated_height": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "status"
      ],
      "type": "object"
    },
    "warnings": {
      "items": {
        "type": "string"
      },
      "type": "array"
    }
  },
  "required": [
    "source",
    "tool",
    "endpoint",
    "request",
    "answer",
    "data",
    "units",
    "answerable_fields",
    "warnings",
    "citations",
    "usage",
    "validation"
  ],
  "title": "Xtract usage history result",
  "type": "object"
}

Notes

  • Cost: Free. Costs and tier limits match the wrapped Xtract REST endpoint — see get_developer_limits.
  • Wrapped REST endpoint: /xtract/docs/reference/developer-usage/ — the full parameter, response, and methodology reference.
  • Data-retrieval tool: it never creates blockchain transactions, signs messages, publishes content, or changes third-party state (openWorldHint=false, destructiveHint=false). Successful calls consume Xtract credits and record usage on your ForceX account, so readOnlyHint=false.