Skip to main content
GET
/
api
/
profile
/
{profile_id}
/
schema
Get profile configuration
curl --request GET \
  --url https://api.gentility.ai/api/profile/{profile_id}/schema \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.gentility.ai/api/profile/{profile_id}/schema"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.gentility.ai/api/profile/{profile_id}/schema', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.gentility.ai/api/profile/{profile_id}/schema",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.gentility.ai/api/profile/{profile_id}/schema"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.gentility.ai/api/profile/{profile_id}/schema")
  .header("Authorization", "Bearer <token>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.gentility.ai/api/profile/{profile_id}/schema")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "memory_mb": 123,
  "filesystem_size_mb": 123,
  "kernel": {},
  "docker": {},
  "packages": [
    {
      "name": "<string>",
      "version": "<string>",
      "type": "<string>",
      "language": "<string>"
    }
  ],
  "organization": {
    "name": "<string>",
    "slug": "<string>"
  }
}
Returns detailed configuration information about a profile, including memory allocation, filesystem size, kernel configuration, Docker settings, and installed packages. This endpoint helps you understand the capabilities and specifications of a VM profile before creating instances.

Use Cases

  • Environment Planning: Understand what’s available in a profile before creating instances
  • Capacity Planning: Check memory and storage allocations
  • Package Discovery: See what development tools and packages are pre-installed
  • Configuration Validation: Verify profile settings match your requirements

Response Structure

{
  "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "name": "python-data-science", 
  "memory_mb": 2048,
  "filesystem_size_mb": 8192,
  "kernel": {
    "version": "5.10.0",
    "architecture": "x86_64",
    "config": "firecracker-optimized"
  },
  "docker": {
    "base_image": "python:3.11-slim",
    "dockerfile_commands": [
      "RUN apt-get update && apt-get install -y git curl",
      "RUN pip install pandas matplotlib scikit-learn jupyter",
      "WORKDIR /workspace"
    ]
  },
  "packages": [
    {
      "name": "python",
      "version": "3.11.7",
      "type": "runtime",
      "language": "python"
    },
    {
      "name": "pandas",
      "version": "2.1.4", 
      "type": "library",
      "language": "python"
    },
    {
      "name": "matplotlib",
      "version": "3.8.2",
      "type": "library", 
      "language": "python"
    },
    {
      "name": "git",
      "version": "2.39.2",
      "type": "tool",
      "language": "system"
    }
  ],
  "organization": {
    "name": "Example Corp",
    "slug": "example-corp"
  }
}

Profile Examples

Python Data Science Profile

{
  "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
  "name": "python-data-science",
  "memory_mb": 4096,
  "filesystem_size_mb": 10240,
  "kernel": {
    "version": "5.10.0",
    "architecture": "x86_64"
  },
  "docker": {
    "base_image": "python:3.11-slim",
    "dockerfile_commands": [
      "RUN apt-get update && apt-get install -y build-essential git",
      "RUN pip install pandas numpy matplotlib scikit-learn jupyter seaborn plotly",
      "RUN pip install requests beautifulsoup4 sqlalchemy psycopg2-binary",
      "WORKDIR /workspace"
    ]
  },
  "packages": [
    {
      "name": "python",
      "version": "3.11.7", 
      "type": "runtime",
      "language": "python"
    },
    {
      "name": "pandas",
      "version": "2.1.4",
      "type": "library",
      "language": "python"
    },
    {
      "name": "scikit-learn", 
      "version": "1.3.2",
      "type": "library",
      "language": "python"
    },
    {
      "name": "jupyter",
      "version": "1.0.0",
      "type": "tool",
      "language": "python"
    }
  ]
}

Node.js Development Profile

{
  "id": "550e8400-e29b-41d4-a716-446655440001",
  "name": "nodejs-web-dev",
  "memory_mb": 2048,
  "filesystem_size_mb": 6144,
  "docker": {
    "base_image": "node:18-slim",
    "dockerfile_commands": [
      "RUN apt-get update && apt-get install -y git curl",
      "RUN npm install -g nodemon typescript tsx @types/node",
      "WORKDIR /app"
    ]
  },
  "packages": [
    {
      "name": "node",
      "version": "18.19.0",
      "type": "runtime", 
      "language": "javascript"
    },
    {
      "name": "npm",
      "version": "10.2.3",
      "type": "package_manager",
      "language": "javascript"
    },
    {
      "name": "typescript",
      "version": "5.3.3",
      "type": "compiler",
      "language": "typescript"
    }
  ]
}

Go Development Profile

{
  "id": "550e8400-e29b-41d4-a716-446655440002", 
  "name": "golang-api-dev",
  "memory_mb": 1536,
  "filesystem_size_mb": 4096,
  "docker": {
    "base_image": "golang:1.21-alpine",
    "dockerfile_commands": [
      "RUN apk add --no-cache git curl",
      "WORKDIR /go/src/app"
    ]
  },
  "packages": [
    {
      "name": "go",
      "version": "1.21.5",
      "type": "runtime",
      "language": "go"
    },
    {
      "name": "git",
      "version": "2.40.1", 
      "type": "tool",
      "language": "system"
    }
  ]
}

Profile Configuration Fields

Memory & Storage

  • memory_mb: RAM allocation in megabytes (typically 1024-8192 MB)
  • filesystem_size_mb: Disk space allocation in megabytes

Kernel Configuration

  • version: Linux kernel version optimized for Firecracker
  • architecture: CPU architecture (typically x86_64)
  • config: Kernel configuration profile

Docker Configuration

  • base_image: Docker base image used for the environment
  • dockerfile_commands: List of commands used to build the environment

Package Information

  • name: Package or tool name
  • version: Installed version
  • type: Package type (runtime, library, tool, compiler, package_manager)
  • language: Programming language or system category

Organization Context

  • name: Organization display name
  • slug: Organization URL slug for multi-tenant isolation

Use Cases by Profile Type

Data Science Profiles

  • Pre-installed with pandas, numpy, matplotlib, scikit-learn
  • Jupyter notebook support
  • Database connectivity packages
  • Visualization libraries

Web Development Profiles

  • Node.js or Python web frameworks
  • Package managers (npm, pip)
  • Development tools (nodemon, typescript)
  • Database drivers

Systems Programming Profiles

  • Go, Rust, or C++ toolchains
  • System libraries and build tools
  • Performance profiling tools
  • Container and deployment utilities

Best Practices

  • Profile Selection: Choose profiles that match your specific development needs
  • Resource Planning: Check memory and storage limits for your workloads
  • Package Dependencies: Verify required packages are pre-installed or can be added
  • Organization Isolation: Profiles are organization-scoped for security and customization
  • Version Compatibility: Check package versions for compatibility with your code

Authorizations

Authorization
string
header
required

API key authentication using Bearer token format: 'Bearer rk_live_'

Path Parameters

profile_id
string<uuid>
required

UUID of the profile

Response

200 - application/json

Profile schema retrieved successfully

id
string<uuid>
name
string
memory_mb
integer

RAM allocation in megabytes

filesystem_size_mb
integer

Filesystem size in megabytes

kernel
object

Kernel configuration

docker
object

Docker configuration and base image

packages
object[]

Installed packages

organization
object