robosystems-ai Graph Limits API

📏 Graph limits - Storage usage, operation limits, and tier configuration

Operations 1

GET /v1/graphs/{graph_id}/limits Get Graph Operational Limits #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/robosystems-ai:robosystems-ai-graph-limits-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

robosystems-ai-graph-limits-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: RoboSystems Graph Limits API
  description: 'The REST and GraphQL API for RoboSystems — an open-source, AI-native platform for accounting, financial reporting and investment management. It powers RoboLedger and RoboInvestor.


    ## Two surfaces


    **Platform** — `/v1/…` — graphs, queries, schema, documents, search, memory, connections, billing and access. Reads are REST `GET`s; every write is a named operation at `/operations/{name}` returning an `OperationEnvelope`, accepting an `Idempotency-Key`, and streaming progress at `/v1/operations/{id}/stream`.

    → API reference


    **Extensions** — `/extensions/…` — RoboLedger and RoboInvestor, scoped by `graph_id` in the URL. Reads are GraphQL at `POST /extensions/{graph_id}/graphql` and change nothing; writes are named operations at `/extensions/{domain}/{graph_id}/operations/{name}`; analytical views read the materialized graph.

    → Extensions reference · every GraphQL query


    ## Authenticating


    `X-API-Key: rfs…` on REST, GraphQL and per-graph MCP. Browser sessions use JWTs from `POST /v1/auth/login`. The graph-agnostic MCP endpoint `/v1/mcp` takes OAuth 2.1 bearer tokens only.


    ## Connecting an AI client


    Every graph is an MCP server at `POST /v1/graphs/{graph_id}/mcp`, and `POST /v1/mcp` serves OAuth clients that pick their graph at consent.

    → MCP guide


    ## Clients


    `robosystems-client` for Python, `@robosystems/client` for TypeScript.

    → Guides · Technical docs'
  version: 1.20.6
tags:
- name: Graph Limits
  description: 📏 Graph limits - Storage usage, operation limits, and tier configuration
paths:
  /v1/graphs/{graph_id}/limits:
    get:
      tags:
      - Graph Limits
      summary: Get Graph Operational Limits
      description: Limits vary by subscription tier (ladybug-standard, ladybug-large, ladybug-xlarge). Includes storage, query, backup, rate, credit, document, and instance usage limits.
      operationId: getGraphLimits
      security:
      - APIKeyHeader: []
      - BearerAuth: []
      parameters:
      - name: graph_id
        in: path
        required: true
        schema:
          type: string
          title: Graph Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphLimitsResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    DocumentLimits:
      properties:
        current_count:
          type: integer
          title: Current Count
          description: Uploaded documents currently stored for this graph
        max_documents:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Documents
          description: Maximum uploaded documents for this tier (null when uncapped)
        approaching_limit:
          type: boolean
          title: Approaching Limit
          description: Whether approaching document limit (>80%)
      type: object
      required:
      - current_count
      - approaching_limit
      title: DocumentLimits
      description: Knowledge-base document usage against the tier's cap.
    StorageItem:
      properties:
        type:
          type: string
          title: Type
          description: 'One of: graph, memory, subgraph, vectors, staging, transient (blue-green build artifact), orphan (a `{parent}_*` database, vector index, or staging file with no row in the graph registry — leftover of a deleted subgraph). Transient and orphan items are collected by the platform''s daily storage-reclaim job.'
        id:
          type: string
          title: Id
          description: Database or index identifier
        bytes:
          type: integer
          title: Bytes
          description: Size in bytes
      type: object
      required:
      - type
      - id
      - bytes
      title: StorageItem
      description: One itemized piece of a graph's on-disk footprint.
    CopyOperationLimits:
      properties:
        max_file_size_gb:
          type: number
          title: Max File Size Gb
          description: Maximum upload file size in GB
        supported_formats:
          items:
            type: string
          type: array
          title: Supported Formats
          description: Supported file formats
      type: object
      required:
      - max_file_size_gb
      - supported_formats
      title: CopyOperationLimits
      description: File upload limits.
    QueryLimits:
      properties:
        max_timeout_seconds:
          type: integer
          title: Max Timeout Seconds
          description: Per-query time ceiling the graph engine enforces, in seconds
        chunk_size:
          type: integer
          title: Chunk Size
          description: Default rows per streamed chunk (a request may set chunk_size, 10-10,000)
        max_rows_per_query:
          type: integer
          title: Max Rows Per Query
          description: Rows a non-streaming Cypher query returns before it stops (the response sets `truncated`); a streamed query returns up to 1,000,000
      type: object
      required:
      - max_timeout_seconds
      - chunk_size
      - max_rows_per_query
      title: QueryLimits
      description: Query operation limits.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    DatabaseStorageEntry:
      properties:
        graph_id:
          type: string
          title: Graph Id
          description: Database identifier
        is_parent:
          type: boolean
          title: Is Parent
          description: Whether this is the parent graph
          default: false
        size_mb:
          anyOf:
          - type: number
          - type: 'null'
          title: Size Mb
          description: Database size in MB
      type: object
      required:
      - graph_id
      title: DatabaseStorageEntry
      description: Storage for a single database on the instance.
    BackupLimits:
      properties:
        backup_retention_days:
          type: integer
          title: Backup Retention Days
          description: Backup retention period in days
        max_backups_per_day:
          type: integer
          title: Max Backups Per Day
          description: Maximum user-initiated backups per day (-1 for unlimited)
        max_downloads_per_month:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Downloads Per Month
          description: Backup downloads allowed per user per calendar month (UTC)
      type: object
      required:
      - backup_retention_days
      - max_backups_per_day
      title: BackupLimits
      description: Backup operation limits.
    StorageLimits:
      properties:
        current_usage_gb:
          anyOf:
          - type: number
          - type: 'null'
          title: Current Usage Gb
          description: Current storage usage in GB
        max_storage_gb:
          type: number
          title: Max Storage Gb
          description: Instance storage cap in GB; ingest and materialize are refused above it
        approaching_limit:
          type: boolean
          title: Approaching Limit
          description: Whether approaching storage limit (>80%)
      type: object
      required:
      - max_storage_gb
      - approaching_limit
      title: StorageLimits
      description: Storage limits information.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    SubgraphLimits:
      properties:
        current_count:
          type: integer
          minimum: 0.0
          title: Current Count
          description: Subgraphs currently provisioned under this graph
        max_allowed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Allowed
          description: Maximum subgraphs for this tier (null when uncapped)
        remaining:
          anyOf:
          - type: integer
          - type: 'null'
          title: Remaining
          description: Subgraphs that can still be created (null when uncapped)
        approaching_limit:
          type: boolean
          title: Approaching Limit
          description: Whether approaching subgraph limit (>80%)
      type: object
      required:
      - current_count
      - approaching_limit
      title: SubgraphLimits
      description: 'Subgraph count against the parent graph tier''s cap.


        Subgraphs are refused at the tier cap regardless of how small they are,

        so this is a count axis independent of the storage one — `instance`

        already itemizes their footprint.'
    GraphLimitsResponse:
      properties:
        graph_id:
          type: string
          title: Graph Id
          description: Graph database identifier
        subscription_tier:
          type: string
          title: Subscription Tier
          description: Rate-limit tier enforced for requests to this graph
        graph_tier:
          type: string
          title: Graph Tier
          description: Graph's database tier
        is_shared_repository:
          type: boolean
          title: Is Shared Repository
          description: Whether this is a shared repository
        storage:
          anyOf:
          - $ref: '#/components/schemas/StorageLimits'
          - type: 'null'
          description: Storage limits and usage (user graphs only)
        queries:
          $ref: '#/components/schemas/QueryLimits'
          description: Query operation limits
        copy_operations:
          anyOf:
          - $ref: '#/components/schemas/CopyOperationLimits'
          - type: 'null'
          description: File upload limits (user graphs only)
        backups:
          anyOf:
          - $ref: '#/components/schemas/BackupLimits'
          - type: 'null'
          description: Backup operation limits (user graphs only)
        rate_limits:
          $ref: '#/components/schemas/RateLimits'
          description: API rate limits
        credits:
          anyOf:
          - $ref: '#/components/schemas/CreditLimits'
          - type: 'null'
          description: AI credit limits (if applicable)
        documents:
          anyOf:
          - $ref: '#/components/schemas/DocumentLimits'
          - type: 'null'
          description: Knowledge-base document usage and tier cap (user graphs only)
        subgraphs:
          anyOf:
          - $ref: '#/components/schemas/SubgraphLimits'
          - type: 'null'
          description: Subgraph count and tier cap (parent user graphs only)
        content:
          anyOf:
          - $ref: '#/components/schemas/ContentLimits'
          - type: 'null'
          description: Per-operation materialization limits (if applicable)
        instance:
          anyOf:
          - $ref: '#/components/schemas/InstanceUsage'
          - type: 'null'
          description: Aggregate instance storage usage (user graphs only)
      type: object
      required:
      - graph_id
      - subscription_tier
      - graph_tier
      - is_shared_repository
      - queries
      - rate_limits
      title: GraphLimitsResponse
      description: Every operational limit that applies to a graph, and its usage.
      examples:
      - backups:
          backup_retention_days: 7
          max_backups_per_day: 2
          max_downloads_per_month: 10
        content:
          chunk_size_rows: 250000
          max_rows_per_copy: 1000000
          max_single_table_rows: 2500000
        copy_operations:
          max_file_size_gb: 0.09765625
          supported_formats:
          - parquet
          - csv
          - json
        credits:
          current_balance: 7500
          monthly_ai_credits: 8000
        documents:
          approaching_limit: false
          current_count: 12
          max_documents: 100
        graph_id: kg1a2b3c4d5
        graph_tier: ladybug-standard
        instance:
          databases:
          - graph_id: kg1a2b3c4d5
            is_parent: true
            size_mb: 2150.0
          - graph_id: kg1a2b3c4d5_dev
            is_parent: false
            size_mb: 360.0
          limit_gb: 20
          node_count: 150000
          status: healthy
          total_storage_gb: 2.45
          usage_percentage: 12.3
        is_shared_repository: false
        queries:
          chunk_size: 500
          max_rows_per_query: 10000
          max_timeout_seconds: 120
        rate_limits:
          burst_capacity: 60
          requests_per_hour: 3600
          requests_per_minute: 60
        storage:
          approaching_limit: false
          current_usage_gb: 2.45
          max_storage_gb: 20
        subgraphs:
          approaching_limit: false
          current_count: 1
          max_allowed: 3
          remaining: 2
        subscription_tier: ladybug-standard
      - graph_id: sec
        graph_tier: ladybug-shared
        is_shared_repository: true
        queries:
          chunk_size: 2500
          max_rows_per_query: 10000
          max_timeout_seconds: 120
        rate_limits:
          burst_capacity: 60
          requests_per_hour: 3600
          requests_per_minute: 60
        subscription_tier: ladybug-standard
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: Human-readable error message explaining what went wrong
          examples:
          - Insufficient credits for operation
        code:
          anyOf:
          - type: string
          - type: 'null'
          title: Code
          description: Machine-readable error code for programmatic handling
          examples:
          - INSUFFICIENT_CREDITS
        request_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Request Id
          description: Unique request ID for tracking and debugging
          examples:
          - req_1234567890abcdef
        timestamp:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Timestamp
          description: Timestamp when the error occurred
          examples:
          - '2024-01-01T00:00:00Z'
      type: object
      required:
      - detail
      title: ErrorResponse
      description: Error body returned by every endpoint.
      example:
        code: RESOURCE_NOT_FOUND
        detail: Resource not found
        request_id: req_1234567890abcdef
        timestamp: '2024-01-01T00:00:00Z'
    ContentLimits:
      properties:
        max_rows_per_copy:
          type: integer
          title: Max Rows Per Copy
          description: Maximum rows per copy/materialization operation
        max_single_table_rows:
          type: integer
          title: Max Single Table Rows
          description: Maximum rows per staging table
        chunk_size_rows:
          type: integer
          title: Chunk Size Rows
          description: Rows per materialization chunk
      type: object
      required:
      - max_rows_per_copy
      - max_single_table_rows
      - chunk_size_rows
      title: ContentLimits
      description: Per-operation materialization limits.
    InstanceUsage:
      properties:
        node_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Node Count
          description: Current node count (informational, no limit enforced)
        total_storage_gb:
          anyOf:
          - type: number
          - type: 'null'
          title: Total Storage Gb
          description: Total storage used across all databases in GB
        limit_gb:
          type: number
          title: Limit Gb
          description: Instance storage cap in GB; ingest and materialize are refused above it
        usage_percentage:
          anyOf:
          - type: number
          - type: 'null'
          title: Usage Percentage
          description: Storage usage as percentage of limit (e.g. 105.2). Derived from the enforced figure — durable bytes only, excluding `transient` build artifacts — so it can read lower than total_storage_gb/limit_gb while a blue-green rebuild is in flight.
        status:
          type: string
          title: Status
          description: 'Instance status: ''healthy'' (<80%), ''approaching'' (80-100%), ''over_limit'' (>100%)'
        databases:
          items:
            $ref: '#/components/schemas/DatabaseStorageEntry'
          type: array
          title: Databases
          description: Per-database storage breakdown
        items:
          items:
            $ref: '#/components/schemas/StorageItem'
          type: array
          title: Items
          description: Itemized storage by type — graph, memory, subgraph, vectors, staging, transient, orphan. Sums to total_storage_gb. Only `subgraph` items correspond to live subgraphs, so this is the type to sum when reconciling against the subgraph list.
      type: object
      required:
      - limit_gb
      - status
      title: InstanceUsage
      description: 'Aggregate storage usage across the dedicated instance.


        Covers the parent graph, all subgraphs, DuckDB staging, and vector indexes.'
    RateLimits:
      properties:
        requests_per_minute:
          type: integer
          title: Requests Per Minute
          description: Requests per minute limit
        requests_per_hour:
          type: integer
          title: Requests Per Hour
          description: Requests per hour limit
        burst_capacity:
          type: integer
          title: Burst Capacity
          description: Burst capacity for short spikes
      type: object
      required:
      - requests_per_minute
      - requests_per_hour
      - burst_capacity
      title: RateLimits
      description: API rate limits.
    CreditLimits:
      properties:
        monthly_ai_credits:
          type: integer
          title: Monthly Ai Credits
          description: Monthly AI credits allocation
        current_balance:
          type: integer
          title: Current Balance
          description: Current credit balance
      type: object
      required:
      - monthly_ai_credits
      - current_balance
      title: CreditLimits
      description: AI credit limits (optional).
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for authentication
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT bearer token