# Vultr Integration via LowCodeAPI

**Last Updated**: January 27, 2025

## Overview
Cloud infrastructure platform offering GPU instances for AI and machine learning workloads with global data centers.

**Categories:**
- {'id': 'ai-cloud', 'name': 'AI Cloud'}

## Base Endpoint
https://api.lowcodeapi.com/vultr

**Important**: Always include the provider name in the URL path after `api.lowcodeapi.com/`

## Authentication
**Type:** TOKEN

**Official Documentation:** https://www.vultr.com/api

## URL Format (Important)

LowCodeAPI supports two URL formats. **Always try the New Format first**, then fall back to Old Format if needed.

### New Format (Priority)
- Path parameters stay in the URL path
- Do NOT include path parameters as query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/{id}?api_token=XXX`

### Old Format (Fallback)
- Path parameters become query parameters
- Example: `https://api.lowcodeapi.com/{provider}/resource/id?id={id}&api_token=XXX`

### Decision Flow for AI Agents
1. Always use **New Format** first - keep path parameters in the URL path
2. If you get a 404 or error, try **Old Format** with sanitized path
3. Log which format worked for future requests to this provider

## API Categories

## Common Endpoints

### Get Account Info

**Method:** GET
**LowCodeAPI Path:** /account

**New Format URL:**
https://api.lowcodeapi.com/vultr/account?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/account?api_token=YOUR_API_TOKEN

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/account?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/account/operation/get-account

### Get Account BGP Info

**Method:** GET
**LowCodeAPI Path:** /account/bgp

**New Format URL:**
https://api.lowcodeapi.com/vultr/account/bgp?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/account/bgp?api_token=YOUR_API_TOKEN

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/account/bgp?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/account/operation/get-account-bgp

### Get Account Bandwidth Info

**Method:** GET
**LowCodeAPI Path:** /account/bandwidth

**New Format URL:**
https://api.lowcodeapi.com/vultr/account/bandwidth?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/account/bandwidth?api_token=YOUR_API_TOKEN

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/account/bandwidth?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/account/operation/get-account-bandwidth

### List Applications

**Method:** GET
**LowCodeAPI Path:** /applications

**New Format URL:**
https://api.lowcodeapi.com/vultr/applications?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/applications?api_token=YOUR_API_TOKEN

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| type | string |  |
| cursor | string |  |
| per_page | number |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/applications?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/applications/operation/list-applications

### List API Keys

**Method:** GET
**LowCodeAPI Path:** /apikeys

**New Format URL:**
https://api.lowcodeapi.com/vultr/apikeys?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/apikeys?api_token=YOUR_API_TOKEN

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/apikeys?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/api-keys/operation/list-apikeys

### Get API Key

**Method:** GET
**LowCodeAPI Path:** /apikeys/{apikey-id}

**New Format URL:**
https://api.lowcodeapi.com/vultr/apikeys/{apikey-id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/apikeys/apikeyid?apikey-id={apikey-id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| apikey-id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/apikeys/{apikey-id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/api-keys/operation/get-apikeys

### Create API Key

**Method:** POST
**LowCodeAPI Path:** /apikeys

**New Format URL:**
https://api.lowcodeapi.com/vultr/apikeys?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/apikeys?api_token=YOUR_API_TOKEN

**Request Body:**

| Field | Type | Description |
|-------|------|-------------|
| date_expire | string |  |
| expire | boolean |  |
| name | string |  |

**Example Request (New Format):**

```bash
curl -X POST 'https://api.lowcodeapi.com/vultr/apikeys?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/api-keys/operation/post-apikeys

### Delete API Key

**Method:** DELETE
**LowCodeAPI Path:** /apikeys/{apikey-id}

**New Format URL:**
https://api.lowcodeapi.com/vultr/apikeys/{apikey-id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/apikeys/apikeyid?apikey-id={apikey-id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| apikey-id | string |  |

**Example Request (New Format):**

```bash
curl -X DELETE 'https://api.lowcodeapi.com/vultr/apikeys/{apikey-id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/api-keys/operation/delete-apikeys

### List Backups

**Method:** GET
**LowCodeAPI Path:** /backups

**New Format URL:**
https://api.lowcodeapi.com/vultr/backups?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/backups?api_token=YOUR_API_TOKEN

**Query Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| cursor | string |  |
| instance_id | string |  |
| per_page | number |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/backups?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/backups/operation/get-backups

### Get Backup

**Method:** GET
**LowCodeAPI Path:** /backups/{backup-id}

**New Format URL:**
https://api.lowcodeapi.com/vultr/backups/{backup-id}?api_token=YOUR_API_TOKEN

**Old Format URL:**
https://api.lowcodeapi.com/vultr/v2/backups/backupid?backup-id={backup-id}&api_token=YOUR_API_TOKEN

**Path Parameters:**

| Parameter | Type | Description |
|-----------|------|-------------|
| backup-id | string |  |

**Example Request (New Format):**

```bash
curl -X GET 'https://api.lowcodeapi.com/vultr/backups/{backup-id}?api_token=YOUR_API_TOKEN'
```

**Official Documentation:** https://www.vultr.com/api/#tag/backups/operation/get-backups-backup-id


## Usage Examples

### Example 1: Basic API Request (New Format)

Making a simple GET request to retrieve resources:

```bash
# Get a list of resources - no path parameters needed
curl -X GET "https://api.lowcodeapi.com/vultr/endpoint?api_token=YOUR_API_TOKEN"
```

### Example 2: Request with Path Parameters (New Format)

Retrieving a specific resource using its ID:

```bash
# Get specific resource by ID - replace RESOURCE_ID with actual ID from previous response
curl -X GET "https://api.lowcodeapi.com/vultr/endpoint/{RESOURCE_ID}?api_token=YOUR_API_TOKEN"
# Note: RESOURCE_ID typically comes from a previous list request or from the provider dashboard
```

### Example 3: POST Request with Body (New Format)

Creating a new resource:

```bash
# Create a new resource
curl -X POST "https://api.lowcodeapi.com/vultr/endpoint?api_token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"field": "value", "another_field": "another_value"}'
```

## Error Handling

LowCodeAPI returns standard HTTP status codes. Common errors:

| Status Code | Description |
|-------------|-------------|
| 200 | Success - Request completed successfully |
| 400 | Bad Request - Invalid parameters or request body |
| 401 | Unauthorized - Invalid or missing API token |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Endpoint or resource doesn't exist |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Provider API error |

All error responses include error details:

```json
{
  "data": {
    "error": {
      "message": "Error description",
      "code": "ERROR_CODE"
    }
  }
}
```

## Complete Endpoint Reference

| Endpoint | Method | Category |
|----------|--------|----------|
| Get Account Info | GET | Account |
| Get Account BGP Info | GET | Account |
| Get Account Bandwidth Info | GET | Account |
| List Applications | GET | Applications |
| List API Keys | GET | API Keys |
| Get API Key | GET | API Keys |
| Create API Key | POST | API Keys |
| Delete API Key | DELETE | API Keys |
| List Backups | GET | Backups |
| Get Backup | GET | Backups |
| List Billing History | GET | Billing |
| List Invoices | GET | Billing |
| Get Invoice | GET | Billing |
| Get Invoice Items | GET | Billing |
| List Pending Charges | GET | Billing |
| Get Pending Charges CSV | GET | Billing |
| List Block Storage | GET | Block Storage |
| Create Block Storage | POST | Block Storage |
| Get Block Storage | GET | Block Storage |
| Update Block Storage | PATCH | Block Storage |
| Delete Block Storage | DELETE | Block Storage |
| Attach Block Storage | POST | Block Storage |
| Detach Block Storage | POST | Block Storage |
| List Instances | GET | Instances |
| Create Instance | POST | Instances |
| Get Instance | GET | Instances |
| Update Instance | PATCH | Instances |
| Delete Instance | DELETE | Instances |
| Start Instance | POST | Instances |
| Reboot Instance | POST | Instances |
| Halt Instance | POST | Instances |
| Reinstall Instance | POST | Instances |
| Get Instance Bandwidth | GET | Instances |
| List Instance IPv4 Information | GET | Instances |
| Create IPv4 | POST | Instances |
| Get Instance IPv6 Information | GET | Instances |
| List Instance VPCs | GET | Instances |
| Attach VPC to Instance | POST | Instances |
| Detach VPC from Instance | POST | Instances |
| Get Instance User Data | GET | Instances |
| Halt Instances | POST | Instances |
| Reboot Instances | POST | Instances |
| Start Instances | POST | Instances |
| List DNS Domains | GET | DNS |
| Create DNS Domain | POST | DNS |
| Get DNS Domain | GET | DNS |
| Update DNS Domain | PUT | DNS |
| Delete Domain | DELETE | DNS |
| List DNS Records | GET | DNS |
| Create DNS Record | POST | DNS |
| Get DNS Record | GET | DNS |
| Update DNS Record | PATCH | DNS |
| Delete DNS Record | DELETE | DNS |
| List Firewall Groups | GET | Firewall |
| Create Firewall Group | POST | Firewall |
| Get Firewall Group | GET | Firewall |
| Update Firewall Group | PUT | Firewall |
| Delete Firewall Group | DELETE | Firewall |
| List Firewall Rules | GET | Firewall |
| Create Firewall Rule | POST | Firewall |
| Get Firewall Rule | GET | Firewall |
| Delete Firewall Rule | DELETE | Firewall |
| List Bare Metal Instances | GET | Bare Metal |
| Create Bare Metal Instance | POST | Bare Metal |
| Get Bare Metal Instance | GET | Bare Metal |
| Update Bare Metal Instance | PATCH | Bare Metal |
| Delete Bare Metal Instance | DELETE | Bare Metal |
| Start Bare Metal Instance | POST | Bare Metal |
| Reboot Bare Metal Instance | POST | Bare Metal |
| Halt Bare Metal Instance | POST | Bare Metal |
| Reinstall Bare Metal Instance | POST | Bare Metal |
| List Bare Metal IPv4 Addresses | GET | Bare Metal |
| List Bare Metal IPv6 Addresses | GET | Bare Metal |
| Get Bare Metal Bandwidth | GET | Bare Metal |
| Get Bare Metal User Data | GET | Bare Metal |
| List Load Balancers | GET | Load Balancers |
| Create Load Balancer | POST | Load Balancers |
| Get Load Balancer | GET | Load Balancers |
| Update Load Balancer | PUT | Load Balancers |
| Delete Load Balancer | DELETE | Load Balancers |
| List Snapshots | GET | Snapshots |
| Create Snapshot | POST | Snapshots |
| Get Snapshot | GET | Snapshots |
| Update Snapshot | PUT | Snapshots |
| Delete Snapshot | DELETE | Snapshots |
| Create Snapshot from URL | POST | Snapshots |
| List SSH Keys | GET | SSH Keys |
| Create SSH Key | POST | SSH Keys |
| Get SSH Key | GET | SSH Keys |
| Update SSH Key | PATCH | SSH Keys |
| Delete SSH Key | DELETE | SSH Keys |
| List Startup Scripts | GET | Startup Scripts |
| Create Startup Script | POST | Startup Scripts |
| Get Startup Script | GET | Startup Scripts |
| Update Startup Script | PATCH | Startup Scripts |
| Delete Startup Script | DELETE | Startup Scripts |
| List Regions | GET | Regions |
| List Available Plans in Region | GET | Regions |
| List Plans | GET | Plans |
| List Bare Metal Plans | GET | Plans |
| List Operating Systems | GET | Operating Systems |
| List ISOs | GET | ISO |
| Create ISO | POST | ISO |
| Get ISO | GET | ISO |
| Delete ISO | DELETE | ISO |
| List Public ISOs | GET | ISO |
| List VPCs | GET | VPCs |
| Create VPC | POST | VPCs |
| Get VPC | GET | VPCs |
| Update VPC | PUT | VPCs |
| Delete VPC | DELETE | VPCs |
| List VPC Attachments | GET | VPCs |
| Attach VPC to Resource | POST | VPCs |
| Detach VPC from Resource | DELETE | VPCs |
| List Reserved IPs | GET | Reserved IPs |
| Create Reserved IP | POST | Reserved IPs |
| Get Reserved IP | GET | Reserved IPs |
| Update Reserved IP | PATCH | Reserved IPs |
| Delete Reserved IP | DELETE | Reserved IPs |
| Attach Reserved IP | POST | Reserved IPs |
| Detach Reserved IP | POST | Reserved IPs |
| Convert Instance IP to Reserved IP | POST | Reserved IPs |
| List Users | GET | Users |
| Create User | POST | Users |
| Get User | GET | Users |
| Update User | PATCH | Users |
| Delete User | DELETE | Users |
| List Kubernetes Clusters | GET | Kubernetes |
| Create Kubernetes Cluster | POST | Kubernetes |
| Get Kubernetes Cluster | GET | Kubernetes |
| Update Kubernetes Cluster | PUT | Kubernetes |
| Delete Kubernetes Cluster | DELETE | Kubernetes |
| Get Kubernetes Cluster Config | GET | Kubernetes |
| List Kubernetes Node Pools | GET | Kubernetes |
| Create Kubernetes Node Pool | POST | Kubernetes |
| Get Kubernetes Node Pool | GET | Kubernetes |
| Update Kubernetes Node Pool | PATCH | Kubernetes |
| Delete Kubernetes Node Pool | DELETE | Kubernetes |
| List Kubernetes Versions | GET | Kubernetes |
| List Managed Databases | GET | Managed Databases |
| Create Managed Database | POST | Managed Databases |
| Get Managed Database | GET | Managed Databases |
| Update Managed Database | PATCH | Managed Databases |
| Delete Managed Database | DELETE | Managed Databases |
| List Managed Database Plans | GET | Managed Databases |
| List Object Storage | GET | Object Storage |
| Create Object Storage | POST | Object Storage |
| Get Object Storage | GET | Object Storage |
| Update Object Storage | PUT | Object Storage |
| Delete Object Storage | DELETE | Object Storage |
| Regenerate Object Storage Keys | POST | Object Storage |
| List Object Storage Clusters | GET | Object Storage |
| List CDN Endpoints | GET | CDN |
| Create CDN Endpoint | POST | CDN |
| Get CDN Endpoint | GET | CDN |
| Update CDN Endpoint | PATCH | CDN |
| Delete CDN Endpoint | DELETE | CDN |
| List Container Registries | GET | Container Registry |
| Create Container Registry | POST | Container Registry |
| Get Container Registry | GET | Container Registry |
| Update Container Registry | PUT | Container Registry |
| Delete Container Registry | DELETE | Container Registry |
| List Container Registry Repositories | GET | Container Registry |
| Get Container Registry Repository | GET | Container Registry |
| List Container Registry Artifacts | GET | Container Registry |
| List Serverless Functions | GET | Serverless Inference |
| Create Serverless Function | POST | Serverless Inference |
| Get Serverless Function | GET | Serverless Inference |
| Update Serverless Function | PATCH | Serverless Inference |
| Delete Serverless Function | DELETE | Serverless Inference |
| Get Serverless Function Usage | GET | Serverless Inference |
| List Storage Gateways | GET | Storage Gateways |
| Create Storage Gateway | POST | Storage Gateways |
| Get Storage Gateway | GET | Storage Gateways |
| Update Storage Gateway | PATCH | Storage Gateways |
| Delete Storage Gateway | DELETE | Storage Gateways |
| List Storage Gateway Exports | GET | Storage Gateways |
| List VFS Regions | GET | VFS |
| List VFS | GET | VFS |
| Create VFS | POST | VFS |
| Get VFS | GET | VFS |
| Update VFS | PATCH | VFS |
| Delete VFS | DELETE | VFS |
| List VFS Attachments | GET | VFS |
| List Logs | GET | Logs |

## API Definition Endpoints

You can fetch the complete API specification for this provider:

**New Format (OpenAPI spec):**
```bash
curl 'https://backend.lowcodeapi.com/vultr/openapi'
```

**Old Format (API definition):**
```bash
curl 'https://backend.lowcodeapi.com/vultr/definition'
```

## Response Format

All responses are wrapped in a `data` key:

```json
{
  "data": {
    // Actual response from provider (object or array)
  }
}
```