GET /accounts/{account_id}/usageRead 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
[
{
"url": "https://api.veryfront.com"
}
]Authentication
[
{
"bearerAuth": []
},
{
"apiKeyAuth": []
}
]{
"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
Parameter contracts
[
{
"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.
{
"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
{
"description": "Bad request",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}401
Unauthorized
{
"description": "Unauthorized",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}403
Forbidden
{
"description": "Forbidden",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}404
Not found
{
"description": "Not found",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}500
Server error
{
"description": "Server error",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/Problem"
}
}
}
}Referenced contracts
components/schemas/Problem
{
"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
{
"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"
}
}