Account

Read and update your Vector Pro account, and manage the API keys, SSH keys, and global secrets it owns.

Manage your Vector Pro account settings including API keys, SSH keys, and global secrets.

GET/account

Get Account Summary

Retrieves a summary of the authenticated account's Vector Pro information including owner details, cluster DNS endpoints, verified domains, site/environment counts grouped by status, deployment metrics, backup counts, and recent activity.

Site counts exclude sites in a terminal state (terminated, termination_requested, canceled). Environment counts exclude environments in a terminal state (terminated, terminating). Those statuses are therefore omitted from the by_status breakdowns and are not included in any of the total/convenience counts.

Responses are cached for 5 minutes per account.

Request

curl -X GET \
  "https://api.builtfast.com/api/v1/vector/account" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": {
    "owner": {
      "name": "John Doe",
      "email": "user@example.com"
    },
    "account": {
      "name": "My Account",
      "company": "Acme Corp"
    },
    "partner": {
      "external_customer_url": "https://myapp.com/customers/YOUR_ID"
    },
    "cluster": {
      "alb_dns_name": "alb-abc123.us-west-2.elb.amazonaws.com",
      "aurora_cluster_endpoint": "cluster.abc123.us-east-1.rds.amazonaws.com",
      "ssh_nlb_dns": "nlb-abc123.us-west-2.elb.amazonaws.com"
    },
    "domains": [
      "example.com",
      "example.org"
    ],
    "sites": {
      "total": 4,
      "by_status": {
        "pending": 0,
        "activation_requested": 0,
        "active": 3,
        "suspension_requested": 0,
        "suspended": 1,
        "unsuspension_requested": 0
      }
    },
    "environments": {
      "total": 7,
      "by_status": {
        "pending": 1,
        "provisioning": 0,
        "active": 5,
        "suspending": 0,
        "suspended": 1,
        "unsuspending": 0,
        "failed": 0
      }
    },
    "total_sites": 4,
    "pending_sites": 0,
    "total_environments": 7,
    "production_environments": 3,
    "deployments_7d": 12,
    "failed_deployments_7d": 1,
    "active_backups": 4,
    "recent_activity": [],
    "recent_deployments": []
  },
  "message": "Account summary retrieved successfully",
  "http_status": 200
}
PATCH/account

Update Account Settings

Update partner-level configuration on the authenticated account. The most important setting today is external_customer_url, a URL template containing the literal token YOUR_ID. When a site's your_customer_id is rendered in the Vector Pro control panel, that token is substituted with the value and the customer ID is shown as a link to the partner's own system.

On success this endpoint returns the same shape as GET /vector/account so clients can refresh their cached account state in a single round trip.

Body Parameters

NameTypeDescription
external_customer_url
optional
string

nullable A URL template that must contain the literal token YOUR_ID. Pass null to clear it.

Example: "https://myapp.com/customers/YOUR_ID"

Request

curl -X PATCH \
  "https://api.builtfast.com/api/v1/vector/account" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"external_customer_url":"https://myapp.com/customers/YOUR_ID"}'

Response

application/json
{
  "data": {
    "owner": {
      "name": "John Doe",
      "email": "user@example.com"
    },
    "account": {
      "name": "My Account",
      "company": "Acme Corp"
    },
    "partner": {
      "external_customer_url": "https://myapp.com/customers/YOUR_ID"
    },
    "cluster": null,
    "domains": [],
    "sites": {
      "total": 0,
      "by_status": {}
    },
    "environments": {
      "total": 0,
      "by_status": {}
    }
  },
  "message": "Account updated successfully",
  "http_status": 200
}

API Keys

Manage API access tokens for authentication. Tokens provide Bearer token authentication for all API requests.

The plain text token is returned only once when created - store it securely as it cannot be retrieved again. Tokens can be revoked at any time.

GET/api-keys

List API Keys

Retrieves a paginated list of API keys for the authenticated user. Token values are never returned - only metadata like name, creation date, and last used timestamp.

Query Parameters

NameTypeDescription
per_page
optional
integer

Number of items per page (max 100). Default: 15.

Example: 25
page
optional
integer

Page number for pagination. Default: 1.

Example: 1

Request

curl -X GET \
  "https://api.builtfast.com/api/v1/vector/api-keys?per_page=25&page=1" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": [
    {
      "name": "Production API Key",
      "abilities": [
        "*"
      ],
      "last_used_at": "2025-01-15T12:00:00+00:00",
      "expires_at": null,
      "created_at": "2025-01-15T12:00:00+00:00"
    }
  ],
  "links": {},
  "meta": {},
  "message": "API keys retrieved successfully",
  "http_status": 200
}
POST/api-keys

Create API Key

Creates a new API key for the authenticated user.

Warning

The API key is returned ONLY in this response. Store it securely—it cannot be retrieved again.

Use this token in the Authorization header for all API requests.

Abilities

Abilities control what operations the token can perform. Available abilities:

  • * - Full access (default)
  • mcp - Full MCP access (for AI assistants like Claude)
  • account:read - Read account information
  • site:read - Read sites, environments, deployments, database operations
  • site:write - Manage sites, environments, deployments, database import/export
  • domain:read - Read domains
  • domain:write - Manage domains
  • log:read - Read site logs
  • cdn:read - Read CDN settings
  • cdn:write - Manage CDN settings and cache
  • webhook:read - Read webhooks
  • webhook:write - Manage webhooks
  • secret:read - Read API keys and global secrets
  • secret:write - Manage API keys and global secrets
  • sshkey:read - Read SSH keys
  • sshkey:write - Manage SSH keys
  • events:read - Read event logs

Body Parameters

NameTypeDescription
name
required
string

A descriptive name for this API key.

Example: "Production API Key"
abilities
optional
string[]

Optional array of abilities. Defaults to ["*"] for full access.

Example: ["site:read","site:write"]
expires_at
optional
datetime

Optional expiration date for the token. Must be in the future.

Example: "2025-12-31T23:59:59+00:00"

Request

curl -X POST \
  "https://api.builtfast.com/api/v1/vector/api-keys" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"name":"Production API Key","abilities":["site:read","site:write"],"expires_at":"2025-12-31T23:59:59+00:00"}'

Response

application/json
{
  "data": {
    "name": "Production API Key",
    "token": "1|a1b2c3d4e5f6789012345678901234567890123456789012345678901234abcd",
    "abilities": [
      "*"
    ],
    "expires_at": null,
    "created_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "API key created successfully. Store this token securely - it will not be shown again.",
  "http_status": 201
}
DELETE/api-keys/{token}

Delete API Key

Deletes an API key. You cannot delete the token currently being used for authentication. This operation is irreversible.

URL Parameters

NameTypeDescription
token
required
integer

The API key ID.

Example: 1

Request

curl -X DELETE \
  "https://api.builtfast.com/api/v1/vector/api-keys/1" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": {
    "name": "Production API Key",
    "abilities": [
      "*"
    ],
    "last_used_at": "2025-01-15T12:00:00+00:00",
    "expires_at": null,
    "created_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "API key deleted successfully",
  "http_status": 200
}

Secrets

Manage account-level secrets and environment variables that are available to all sites within your account. These are injected during site deployment.

Global secrets apply to all environments across all sites in your account. For environment-specific secrets, use the Environment Secrets API instead.

Items with is_secret=true (the default) are stored in AWS Secrets Manager and their values are never returned in API responses. Items with is_secret=false are stored as Lambda environment variables and their values ARE returned in API responses.

Certain keys are reserved for system use and cannot be used.

GET/global-secrets

List Secrets

Retrieves a paginated list of all global secrets and environment variables for your account. Values are only included for environment variables (is_secret=false).

Query Parameters

NameTypeDescription
per_page
optional
integer

Number of items per page (max 100). Default: 15.

Example: 10
page
optional
integer

Page number for pagination.

Example: 1

Request

curl -X GET \
  "https://api.builtfast.com/api/v1/vector/global-secrets?per_page=10&page=1" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": [
    {
      "id": "01jfgxk4nqrst5vwx9yz0abcde",
      "key": "STRIPE_SECRET_KEY",
      "is_secret": true,
      "created_at": "2025-01-15T12:00:00+00:00",
      "updated_at": "2025-01-15T12:00:00+00:00"
    },
    {
      "id": "01jfgxk4nqrst5vwx9yz0abcdf",
      "key": "APP_ENV",
      "is_secret": false,
      "value": "production",
      "created_at": "2025-01-15T12:00:00+00:00",
      "updated_at": "2025-01-15T12:00:00+00:00"
    }
  ],
  "links": {},
  "meta": {},
  "message": "Global secrets retrieved successfully",
  "http_status": 200
}
GET/global-secrets/{secret}

Get Secret

Retrieves details of a specific global secret or environment variable. The value is only included for environment variables (is_secret=false).

URL Parameters

NameTypeDescription
secret
required
string

The secret ID.

Example: "01jfgxk4nqrst5vwx9yz0abcde"

Request

curl -X GET \
  "https://api.builtfast.com/api/v1/vector/global-secrets/01jfgxk4nqrst5vwx9yz0abcde" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcde",
    "key": "STRIPE_SECRET_KEY",
    "is_secret": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "Global secret retrieved successfully",
  "http_status": 200
}
POST/global-secrets

Create Secret

Creates a new global secret or environment variable for your account. It will be available to all sites within your account during deployment.

Set is_secret to false to create a plain environment variable instead of a secret. Environment variables are stored as Lambda env vars (cheaper) and their values are returned in API responses. Secrets are stored in AWS Secrets Manager and their values are never returned.

The following keys are reserved and cannot be used: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT, AUTOMATIC_UPDATER_DISABLED, DISABLE_WP_CRON, DISALLOW_FILE_EDIT, DISALLOW_FILE_MODS, DOMAIN_CURRENT_SITE, WP_HOME, WP_SITEURL, YMIR_ASSETS_PATH, YMIR_ASSETS_URL, YMIR_CACHE_PREFIX, YMIR_CACHE_TABLE, YMIR_CDN_IMAGE_PROCESSING_ENABLED, YMIR_DISTRIBUTION_ID, YMIR_DOMAIN_NAMES, YMIR_ENVIRONMENT, YMIR_MAX_EXECUTION_TIME, YMIR_PRIMARY_DOMAIN_NAME, YMIR_PROJECT_TYPE, YMIR_PUBLIC_STORE, YMIR_REDIS_ENDPOINT, YMIR_SECRETS_PATH, YMIR_UPLOAD_URL, _HANDLER, AWS_ACCESS_KEY_ID, AWS_EXECUTION_ENV, AWS_LAMBDA_FUNCTION_MEMORY_SIZE, AWS_LAMBDA_FUNCTION_NAME, AWS_LAMBDA_FUNCTION_VERSION, AWS_LAMBDA_LOG_GROUP_NAME, AWS_LAMBDA_LOG_STREAM_NAME, AWS_LAMBDA_RUNTIME_API, AWS_REGION, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, LAMBDA_RUNTIME_DIR, LAMBDA_TASK_ROOT, TZ

Body Parameters

NameTypeDescription
key
required
string

The secret key name. Must start with a letter and contain only uppercase letters, numbers, and underscores.

Example: "STRIPE_SECRET_KEY"
value
required
string

The secret value.

Example: "sk_live_xxxx"
is_secret
optional
boolean

Whether this is a secret (stored in AWS Secrets Manager) or a plain environment variable. Default: true.

Example: true

Request

curl -X POST \
  "https://api.builtfast.com/api/v1/vector/global-secrets" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"key":"STRIPE_SECRET_KEY","value":"sk_live_xxxx","is_secret":true}'

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcde",
    "key": "STRIPE_SECRET_KEY",
    "is_secret": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "Global secret created successfully",
  "http_status": 201
}
PUT/global-secrets/{secret}

Update Secret

Updates an existing global secret or environment variable. You can update the key, value, is_secret flag, or any combination.

The following keys are reserved and cannot be used: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT, AUTOMATIC_UPDATER_DISABLED, DISABLE_WP_CRON, DISALLOW_FILE_EDIT, DISALLOW_FILE_MODS, DOMAIN_CURRENT_SITE, WP_HOME, WP_SITEURL, YMIR_ASSETS_PATH, YMIR_ASSETS_URL, YMIR_CACHE_PREFIX, YMIR_CACHE_TABLE, YMIR_CDN_IMAGE_PROCESSING_ENABLED, YMIR_DISTRIBUTION_ID, YMIR_DOMAIN_NAMES, YMIR_ENVIRONMENT, YMIR_MAX_EXECUTION_TIME, YMIR_PRIMARY_DOMAIN_NAME, YMIR_PROJECT_TYPE, YMIR_PUBLIC_STORE, YMIR_REDIS_ENDPOINT, YMIR_SECRETS_PATH, YMIR_UPLOAD_URL, _HANDLER, AWS_ACCESS_KEY_ID, AWS_EXECUTION_ENV, AWS_LAMBDA_FUNCTION_MEMORY_SIZE, AWS_LAMBDA_FUNCTION_NAME, AWS_LAMBDA_FUNCTION_VERSION, AWS_LAMBDA_LOG_GROUP_NAME, AWS_LAMBDA_LOG_STREAM_NAME, AWS_LAMBDA_RUNTIME_API, AWS_REGION, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, LAMBDA_RUNTIME_DIR, LAMBDA_TASK_ROOT, TZ

URL Parameters

NameTypeDescription
secret
required
string

The secret ID.

Example: "01jfgxk4nqrst5vwx9yz0abcde"

Body Parameters

NameTypeDescription
key
optional
string

The new secret key name. Must start with a letter and contain only uppercase letters, numbers, and underscores.

Example: "STRIPE_API_KEY"
value
optional
string

The new secret value.

Example: "sk_live_yyyy"
is_secret
optional
boolean

Whether this is a secret or a plain environment variable.

Example: true

Request

curl -X PUT \
  "https://api.builtfast.com/api/v1/vector/global-secrets/01jfgxk4nqrst5vwx9yz0abcde" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"key":"STRIPE_API_KEY","value":"sk_live_yyyy","is_secret":true}'

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcde",
    "key": "STRIPE_API_KEY",
    "is_secret": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "Global secret updated successfully",
  "http_status": 200
}
DELETE/global-secrets/{secret}

Delete Secret

Deletes a global secret from your account.

URL Parameters

NameTypeDescription
secret
required
string

The secret ID.

Example: "01jfgxk4nqrst5vwx9yz0abcde"

Request

curl -X DELETE \
  "https://api.builtfast.com/api/v1/vector/global-secrets/01jfgxk4nqrst5vwx9yz0abcde" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcde",
    "key": "STRIPE_SECRET_KEY",
    "is_secret": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "Global secret deleted successfully",
  "http_status": 200
}

SSH Keys

Manage account-level default SSH keys. These keys serve as templates that are automatically installed on new dev sites when they are created.

Important: Changes to account-level keys do not affect existing sites. To add or remove keys from an existing site, use the site-specific SSH key endpoints instead.

GET/ssh-keys

List SSH Keys

Retrieves a paginated list of account-level default SSH keys. These are template keys that will be installed on new dev sites.

Query Parameters

NameTypeDescription
per_page
optional
integer

Number of items per page (max 100). Default: 15.

Example: 25
page
optional
integer

Page number for pagination. Default: 1.

Example: 1

Request

curl -X GET \
  "https://api.builtfast.com/api/v1/vector/ssh-keys?per_page=25&page=1" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": [
    {
      "id": "01jfgxk4nqrst5vwx9yz0abcdi",
      "account_id": 1,
      "vector_site_id": null,
      "name": "deploy key",
      "fingerprint": "SHA256:abc123def456...",
      "public_key_preview": "ssh-rsa AAAAB3NzaC1yc2EA...user@host",
      "is_account_default": true,
      "created_at": "2025-01-15T12:00:00+00:00",
      "updated_at": "2025-01-15T12:00:00+00:00"
    }
  ],
  "links": {},
  "meta": {},
  "message": "SSH keys retrieved successfully",
  "http_status": 200
}
GET/ssh-keys/{key}

Get SSH Key

Retrieves details of a specific account-level SSH key.

URL Parameters

NameTypeDescription
key
required
string

The SSH key ID.

Example: "01jfgxk4nqrst5vwx9yz0abcdi"

Request

curl -X GET \
  "https://api.builtfast.com/api/v1/vector/ssh-keys/01jfgxk4nqrst5vwx9yz0abcdi" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcdi",
    "account_id": 1,
    "vector_site_id": null,
    "name": "deploy key",
    "fingerprint": "SHA256:abc123def456...",
    "public_key_preview": "ssh-rsa AAAAB3NzaC1yc2EA...user@host",
    "is_account_default": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "SSH key retrieved successfully",
  "http_status": 200
}
POST/ssh-keys

Create SSH Key

Creates a new account-level default SSH key. This key will be automatically installed on any new dev sites created after this point.

Note: This does not affect existing sites. To add a key to an existing site, use the site-specific SSH key endpoint.

Body Parameters

NameTypeDescription
name
required
string

A friendly name for the SSH key.

Example: "deploy key"
public_key
required
string

The SSH public key in OpenSSH format.

Example: "ssh-rsa AAAAB3NzaC1yc2EA... user@host"

Request

curl -X POST \
  "https://api.builtfast.com/api/v1/vector/ssh-keys" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"name":"deploy key","public_key":"ssh-rsa AAAAB3NzaC1yc2EA... user@host"}'

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcdi",
    "account_id": 1,
    "vector_site_id": null,
    "name": "deploy key",
    "fingerprint": "SHA256:abc123def456...",
    "public_key_preview": "ssh-rsa AAAAB3NzaC1yc2EA...user@host",
    "is_account_default": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "SSH key created successfully",
  "http_status": 201
}
DELETE/ssh-keys/{key}

Delete SSH Key

Deletes an account-level default SSH key. This does not remove the key from any existing sites where it has already been installed.

URL Parameters

NameTypeDescription
key
required
string

The SSH key ID.

Example: "01jfgxk4nqrst5vwx9yz0abcdi"

Request

curl -X DELETE \
  "https://api.builtfast.com/api/v1/vector/ssh-keys/01jfgxk4nqrst5vwx9yz0abcdi" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Accept: application/json"

Response

application/json
{
  "data": {
    "id": "01jfgxk4nqrst5vwx9yz0abcdi",
    "account_id": 1,
    "vector_site_id": null,
    "name": "deploy key",
    "fingerprint": "SHA256:abc123def456...",
    "public_key_preview": "ssh-rsa AAAAB3NzaC1yc2EA...user@host",
    "is_account_default": true,
    "created_at": "2025-01-15T12:00:00+00:00",
    "updated_at": "2025-01-15T12:00:00+00:00"
  },
  "message": "SSH key deleted successfully",
  "http_status": 200
}