Getting started
Back to home
Getting started

Check available features

Read supported project types, database engines, current plan limits and live usage before starting work. usage comes from the control plane: build minutes for the current window and each quota signal (RAM, storage, bandwidth, build) with its state; enforcing is true while that signal is refusing new work. When usage cannot be read, its fields are null and usageStatusUnavailable is true; never treat that as zero usage.

GET/api/customer/v1/capabilities

Example request

Set HCODE_BASE_URL and HCODE_API_KEY as shown in Getting started. Replace resource variables with your own IDs.

curl --request GET "$HCODE_BASE_URL/api/customer/v1/capabilities" \
  --header "Authorization: Bearer $HCODE_API_KEY"

Response

The JSON shape is defined in the response schema.

Response schema
{
  "type": "object",
  "properties": {
    "projectTypes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "databaseEngines": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limits": {
      "type": "object",
      "properties": {
        "projects": {
          "type": "integer"
        },
        "databases": {
          "type": "integer"
        },
        "domains": {
          "type": "integer"
        }
      },
      "required": [],
      "additionalProperties": true
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "usage": {
      "type": "object",
      "properties": {
        "buildMinutes": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "unlimited": {
                  "type": "boolean"
                },
                "quotaMinutes": {
                  "type": "integer"
                },
                "usedMinutes": {
                  "type": "integer"
                },
                "remainingMinutes": {
                  "type": "integer"
                },
                "windowStart": {
                  "type": "string"
                },
                "windowEnd": {
                  "type": "string"
                }
              },
              "required": [],
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ]
        },
        "signals": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "signal": {
                    "type": "string"
                  },
                  "unit": {
                    "type": "string"
                  },
                  "quotaBytes": {
                    "type": "integer"
                  },
                  "usedBytes": {
                    "type": "integer"
                  },
                  "usedPct": {
                    "type": "number"
                  },
                  "state": {
                    "type": "string"
                  },
                  "enforcing": {
                    "type": "boolean"
                  },
                  "oldestReportAt": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [],
                "additionalProperties": true
              }
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [],
      "additionalProperties": true
    },
    "usageStatusUnavailable": {
      "type": "boolean"
    }
  },
  "required": [
    "projectTypes",
    "databaseEngines",
    "limits",
    "scopes",
    "usage",
    "usageStatusUnavailable"
  ],
  "additionalProperties": true
}

See errors and retries for failure responses.