Get usage

http
GET /accounts/{account_id}/usage

Read what an account has used of each plan quota in the current billing period, with its tier, project count, credits spent and warnings; returns usage where a total of -1 means unlimited. Requires account.billing.read.

Servers

json
[
  {
    "url": "https://api.veryfront.com"
  }
]

Authentication

json
[
  {
    "bearerAuth": []
  },
  {
    "apiKeyAuth": []
  }
]
json
{
  "bearerAuth": {
    "type": "http",
    "scheme": "bearer",
    "bearerFormat": "JWT or API Key",
    "description": "Use a JWT bearer token or a Veryfront API key in the `Authorization` header."
  },
  "apiKeyAuth": {
    "type": "apiKey",
    "in": "header",
    "name": "X-API-Key",
    "description": "Alternative API key header for `vf_<prefix>_<secret>` tokens."
  }
}

Parameters

NameLocationRequiredDescription
account_idpathYes

Parameter contracts

json
[
  {
    "schema": {
      "type": "string",
      "format": "uuid"
    },
    "required": true,
    "name": "account_id",
    "in": "path"
  }
]

Responses

200

Account usage against the plan quotas; a total of -1 means unlimited.

json
{
  "description": "Account usage against the plan quotas; a total of -1 means unlimited.",
  "content": {
    "application/json": {
      "schema": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string",
            "format": "uuid"
          },
          "project_count": {
            "type": "integer",
            "minimum": 0
          },
          "credits_spent": {
            "type": "number"
          },
          "storage": {
            "type": "object",
            "properties": {
              "used": {
                "type": "number",
                "description": "Current usage amount."
              },
              "total": {
                "type": "number",
                "description": "Maximum allowed total. A value of -1 means unlimited."
              },
              "remaining": {
                "type": "number",
                "description": "Remaining amount available."
              },
              "percent_used": {
                "type": "number",
                "description": "Percentage of quota used from 0 to 100."
              }
            },
            "required": [
              "used",
              "total",
              "remaining",
              "percent_used"
            ]
          },
          "bandwidth": {
            "type": "object",
            "properties": {
              "used": {
                "type": "number",
                "description": "Current usage amount."
              },
              "total": {
                "type": "number",
                "description": "Maximum allowed total. A value of -1 means unlimited."
              },
              "remaining": {
                "type": "number",
                "description": "Remaining amount available."
              },
              "percent_used": {
                "type": "number",
                "description": "Percentage of quota used from 0 to 100."
              }
            },
            "required": [
              "used",
              "total",
              "remaining",
              "percent_used"
            ]
          },
          "api_calls": {
            "type": "object",
            "properties": {
              "used": {
                "type": "number",
                "description": "Current usage amount."
              },
              "total": {
                "type": "number",
                "description": "Maximum allowed total. A value of -1 means unlimited."
              },
              "remaining": {
                "type": "number",
                "description": "Remaining amount available."
              },
              "percent_used": {
                "type": "number",
                "description": "Percentage of quota used from 0 to 100."
              }
            },
            "required": [
              "used",
              "total",
              "remaining",
              "percent_used"
            ]
          },
          "custom_domains": {
            "type": "object",
            "properties": {
              "used": {
                "type": "number",
                "description": "Current usage amount."
              },
              "total": {
                "type": "number",
                "description": "Maximum allowed total. A value of -1 means unlimited."
              },
              "remaining": {
                "type": "number",
                "description": "Remaining amount available."
              },
              "percent_used": {
                "type": "number",
                "description": "Percentage of quota used from 0 to 100."
              }
            },
            "required": [
              "used",
              "total",
              "remaining",
              "percent_used"
            ]
          },
          "code_exports": {
            "type": "object",
            "properties": {
              "used": {
                "type": "number",
                "description": "Current usage amount."
              },
              "total": {
                "type": "number",
                "description": "Maximum allowed total. A value of -1 means unlimited."
              },
              "remaining": {
                "type": "number",
                "description": "Remaining amount available."
              },
              "percent_used": {
                "type": "number",
                "description": "Percentage of quota used from 0 to 100."
              }
            },
            "required": [
              "used",
              "total",
              "remaining",
              "percent_used"
            ]
          },
          "veryfront_badge": {
            "type": "object",
            "properties": {
              "used": {
                "type": "number",
                "description": "Current usage amount."
              },
              "total": {
                "type": "number",
                "description": "Maximum allowed total. A value of -1 means unlimited."
              },
              "remaining": {
                "type": "number",
                "description": "Remaining amount available."
              },
              "percent_used": {
                "type": "number",
                "description": "Percentage of quota used from 0 to 100."
              }
            },
            "required": [
              "used",
              "total",
              "remaining",
              "percent_used"
            ]
          },
          "period_start": {
            "type": "string",
            "description": "ISO timestamp for the start of the current billing period."
          },
          "period_end": {
            "type": "string",
            "description": "ISO timestamp for the end of the current billing period."
          },
          "tier": {
            "type": "string",
            "description": "Name of the subscription tier the quotas come from."
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Human-readable warnings for buckets approaching or over their limit. Empty when there are none."
          }
        },
        "required": [
          "account_id",
          "project_count",
          "credits_spent"
        ]
      }
    }
  }
}

400

Bad request

json
{
  "description": "Bad request",
  "content": {
    "application/problem+json": {
      "schema": {
        "$ref": "#/components/schemas/Problem"
      }
    }
  }
}

401

Unauthorized

json
{
  "description": "Unauthorized",
  "content": {
    "application/problem+json": {
      "schema": {
        "$ref": "#/components/schemas/Problem"
      }
    }
  }
}

403

Forbidden

json
{
  "description": "Forbidden",
  "content": {
    "application/problem+json": {
      "schema": {
        "$ref": "#/components/schemas/Problem"
      }
    }
  }
}

404

Not found

json
{
  "description": "Not found",
  "content": {
    "application/problem+json": {
      "schema": {
        "$ref": "#/components/schemas/Problem"
      }
    }
  }
}

500

Server error

json
{
  "description": "Server error",
  "content": {
    "application/problem+json": {
      "schema": {
        "$ref": "#/components/schemas/Problem"
      }
    }
  }
}

Referenced contracts

components/schemas/Problem

json
{
  "type": "object",
  "properties": {
    "cause": {
      "type": "string",
      "enum": [
        "schedule_concurrency_forbidden",
        "schedule_fire_in_progress",
        "schedule_run_limit_reached"
      ],
      "description": "Schedule admission refusal."
    },
    "idempotency": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "enum": [
            "in_progress",
            "payload_mismatch",
            "outcome_unknown"
          ]
        },
        "operation": {
          "type": "string",
          "minLength": 1
        },
        "retryable": {
          "type": "boolean"
        },
        "retry_after_seconds": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 0
        },
        "expires_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "recovery": {
          "type": "object",
          "properties": {
            "available": {
              "type": "boolean"
            },
            "description": {
              "type": "string"
            },
            "resource_url": {
              "type": "string"
            }
          },
          "required": [
            "available",
            "description"
          ]
        }
      },
      "required": [
        "state",
        "operation",
        "retryable",
        "retry_after_seconds",
        "expires_at"
      ],
      "description": "Replay status, retry timing, and recovery lookup."
    },
    "type": {
      "type": "string",
      "description": "URI reference identifying the problem type",
      "example": "https://api.veryfront.com/errors/validation-failed"
    },
    "title": {
      "type": "string",
      "description": "Short human-readable summary of the problem",
      "example": "Validation Failed"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599,
      "description": "HTTP status code",
      "example": 400
    },
    "code": {
      "type": "string",
      "description": "Stable machine-readable error code",
      "example": "RUN_INVALID_INPUT"
    },
    "detail": {
      "type": "string",
      "description": "Human-readable explanation specific to this occurrence",
      "example": "The 'email' field must be a valid email address"
    },
    "instance": {
      "type": "string",
      "description": "URI reference identifying the specific occurrence",
      "example": "/projects/my-project/members"
    },
    "slug": {
      "type": "string",
      "description": "Stable identifier for the problem type",
      "example": "validation-failed"
    },
    "category": {
      "type": "string",
      "enum": [
        "AUTH",
        "RESOURCE",
        "VALIDATION",
        "DATABASE",
        "SUBSCRIPTION",
        "INTEGRATION",
        "INTERNAL"
      ],
      "description": "API error category",
      "example": "VALIDATION"
    },
    "suggestion": {
      "type": "string",
      "description": "Suggested action to resolve the problem",
      "example": "Check the request body and query parameters against the API documentation."
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Field path that caused the error",
            "example": "email"
          },
          "message": {
            "type": "string",
            "description": "Error message for this field",
            "example": "Invalid email format"
          },
          "code": {
            "type": "string",
            "description": "Error code for this field",
            "example": "INVALID_FORMAT"
          }
        },
        "required": [
          "field",
          "message"
        ]
      },
      "description": "Detailed field-level errors for validation failures"
    }
  },
  "required": [
    "type",
    "title",
    "status"
  ]
}

Operation contract

json
{
  "operationId": "getUsage",
  "tags": [
    "billing-usage/Usage/Usage"
  ],
  "summary": "Get usage",
  "description": "Read what an account has used of each plan quota in the current billing period, with its tier, project count, credits spent and warnings; returns usage where a total of -1 means unlimited. Requires account.billing.read.",
  "parameters": [
    {
      "schema": {
        "type": "string",
        "format": "uuid"
      },
      "required": true,
      "name": "account_id",
      "in": "path"
    }
  ],
  "responses": {
    "200": {
      "description": "Account usage against the plan quotas; a total of -1 means unlimited.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "account_id": {
                "type": "string",
                "format": "uuid"
              },
              "project_count": {
                "type": "integer",
                "minimum": 0
              },
              "credits_spent": {
                "type": "number"
              },
              "storage": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number",
                    "description": "Current usage amount."
                  },
                  "total": {
                    "type": "number",
                    "description": "Maximum allowed total. A value of -1 means unlimited."
                  },
                  "remaining": {
                    "type": "number",
                    "description": "Remaining amount available."
                  },
                  "percent_used": {
                    "type": "number",
                    "description": "Percentage of quota used from 0 to 100."
                  }
                },
                "required": [
                  "used",
                  "total",
                  "remaining",
                  "percent_used"
                ]
              },
              "bandwidth": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number",
                    "description": "Current usage amount."
                  },
                  "total": {
                    "type": "number",
                    "description": "Maximum allowed total. A value of -1 means unlimited."
                  },
                  "remaining": {
                    "type": "number",
                    "description": "Remaining amount available."
                  },
                  "percent_used": {
                    "type": "number",
                    "description": "Percentage of quota used from 0 to 100."
                  }
                },
                "required": [
                  "used",
                  "total",
                  "remaining",
                  "percent_used"
                ]
              },
              "api_calls": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number",
                    "description": "Current usage amount."
                  },
                  "total": {
                    "type": "number",
                    "description": "Maximum allowed total. A value of -1 means unlimited."
                  },
                  "remaining": {
                    "type": "number",
                    "description": "Remaining amount available."
                  },
                  "percent_used": {
                    "type": "number",
                    "description": "Percentage of quota used from 0 to 100."
                  }
                },
                "required": [
                  "used",
                  "total",
                  "remaining",
                  "percent_used"
                ]
              },
              "custom_domains": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number",
                    "description": "Current usage amount."
                  },
                  "total": {
                    "type": "number",
                    "description": "Maximum allowed total. A value of -1 means unlimited."
                  },
                  "remaining": {
                    "type": "number",
                    "description": "Remaining amount available."
                  },
                  "percent_used": {
                    "type": "number",
                    "description": "Percentage of quota used from 0 to 100."
                  }
                },
                "required": [
                  "used",
                  "total",
                  "remaining",
                  "percent_used"
                ]
              },
              "code_exports": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number",
                    "description": "Current usage amount."
                  },
                  "total": {
                    "type": "number",
                    "description": "Maximum allowed total. A value of -1 means unlimited."
                  },
                  "remaining": {
                    "type": "number",
                    "description": "Remaining amount available."
                  },
                  "percent_used": {
                    "type": "number",
                    "description": "Percentage of quota used from 0 to 100."
                  }
                },
                "required": [
                  "used",
                  "total",
                  "remaining",
                  "percent_used"
                ]
              },
              "veryfront_badge": {
                "type": "object",
                "properties": {
                  "used": {
                    "type": "number",
                    "description": "Current usage amount."
                  },
                  "total": {
                    "type": "number",
                    "description": "Maximum allowed total. A value of -1 means unlimited."
                  },
                  "remaining": {
                    "type": "number",
                    "description": "Remaining amount available."
                  },
                  "percent_used": {
                    "type": "number",
                    "description": "Percentage of quota used from 0 to 100."
                  }
                },
                "required": [
                  "used",
                  "total",
                  "remaining",
                  "percent_used"
                ]
              },
              "period_start": {
                "type": "string",
                "description": "ISO timestamp for the start of the current billing period."
              },
              "period_end": {
                "type": "string",
                "description": "ISO timestamp for the end of the current billing period."
              },
              "tier": {
                "type": "string",
                "description": "Name of the subscription tier the quotas come from."
              },
              "warnings": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Human-readable warnings for buckets approaching or over their limit. Empty when there are none."
              }
            },
            "required": [
              "account_id",
              "project_count",
              "credits_spent"
            ]
          }
        }
      }
    },
    "400": {
      "description": "Bad request",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "401": {
      "description": "Unauthorized",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "403": {
      "description": "Forbidden",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "404": {
      "description": "Not found",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    },
    "500": {
      "description": "Server error",
      "content": {
        "application/problem+json": {
          "schema": {
            "$ref": "#/components/schemas/Problem"
          }
        }
      }
    }
  },
  "x-documentation-source-tag": "Account billing",
  "x-canonical-documentation": {
    "domain": "billing-usage",
    "resource": "Usage",
    "subgroup": "Usage",
    "name": "Get usage",
    "description": "Read what an account has used of each plan quota in the current billing period, with its tier, project count, credits spent and warnings; returns usage where a total of -1 means unlimited. Requires account.billing.read.",
    "operationId": "getUsage"
  },
  "x-mint": {
    "href": "/cloud/rest/api-reference/billing-usage-usage-usage/get-usage"
  }
}