Every API here is available over the APIs.io API and to AI agents over MCP.
{
"openapi": "3.1.0",
"info": {
"title": "Case.dev API",
"description": "The AI-native platform for legal technology. Build smarter legal applications with our suite of AI-powered APIs.",
"version": "1.0.0",
"contact": {
"name": "Case.dev Support",
"email": "support@casemark.com",
"url": "https://case.dev"
},
"license": {
"name": "Proprietary",
"url": "https://case.dev/terms"
}
},
"servers": [
{
"url": "https://api.case.dev",
"description": "Production"
}
],
"security": [
{
"bearerAuth": []
}
],
"tags": [
{
"name": "Vaults",
"description": "Secure document storage with semantic search"
},
{
"name": "Vault Events",
"description": "Vault-scoped event subscriptions and delivery testing"
},
{
"name": "Vault Memory",
"description": "Vault-scoped persistent memory and semantic retrieval"
},
{
"name": "Vault Objects",
"description": "Vault object management, content access, and document operations"
},
{
"name": "Memory",
"description": "Persistent memory for AI agents with semantic search and 12 generic indexed tag fields"
},
{
"name": "OCR",
"description": "Extract text from PDFs, images, and scanned documents"
},
{
"name": "Voice",
"description": "Audio transcription and text-to-speech"
},
{
"name": "LLMs",
"description": "Access 40+ language models through a unified API"
},
{
"name": "Search",
"description": "Web search and AI answers"
},
{
"name": "Mail",
"description": "Managed inboxes for agent email workflows"
},
{
"name": "Media",
"description": "Transcript retrieval and captioned media clip generation"
},
{
"name": "Legal",
"description": "Legal research tools including citation verification"
},
{
"name": "Privilege",
"description": "Privilege detection for e-discovery and litigation workflows"
},
{
"name": "Compute",
"description": "Serverless GPU and CPU infrastructure"
},
{
"name": "Format",
"description": "Document formatting and template rendering (MD/JSON to PDF/DOCX)"
},
{
"name": "SuperDoc",
"description": "Document conversion and template automation"
},
{
"name": "Webhooks",
"description": "Webhook endpoint management"
},
{
"name": "System",
"description": "Public system metadata and discovery endpoints"
},
{
"name": "Usage",
"description": "Usage reporting and webhook subscriptions"
},
{
"name": "Database",
"description": "Serverless PostgreSQL databases with instant branching"
},
{
"name": "Translation",
"description": "Language detection and translation for multilingual legal workflows"
},
{
"name": "Skills",
"description": "Search and read legal AI skills for agents"
},
{
"name": "Agents/Linc",
"description": "Durable, stateful legal agent sessions with sandboxed tools and files"
},
{
"name": "Matters",
"description": "Matter-native legal workspaces and orchestration primitives"
},
{
"name": "Connectors",
"description": "Import and export between provider folders and vaults"
},
{
"name": "Applications Projects",
"description": "Web application project management"
},
{
"name": "Applications Deployments",
"description": "Web application deployment management"
},
{
"name": "Applications Domains",
"description": "Custom domain configuration for applications"
},
{
"name": "Applications Env Vars",
"description": "Environment variable management for applications"
}
],
"components": {
"securitySchemes": {
"bearerAuth": {
"type": "http",
"scheme": "bearer",
"bearerFormat": "API Key",
"description": "API key starting with `sk_case_`"
}
},
"schemas": {
"Error": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"type": {
"type": "string"
},
"code": {
"type": "string"
}
},
"required": [
"message"
]
}
}
}
}
},
"paths": {
"/compute/v1/environments": {
"get": {
"tags": [
"Compute"
],
"summary": "List environments",
"description": "Retrieve all compute environments for your organization. Environments provide isolated execution contexts for running code and workflows.",
"operationId": "listEnvironments",
"responses": {
"200": {
"description": "Successfully retrieved environments",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"environments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique environment identifier"
},
"name": {
"type": "string",
"description": "Human-readable environment name"
},
"slug": {
"type": "string",
"description": "URL-safe environment identifier"
},
"domain": {
"type": "string",
"description": "Environment domain"
},
"isDefault": {
"type": "boolean",
"description": "Whether this is the default environment"
},
"status": {
"type": "string",
"description": "Environment status"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Environment creation timestamp"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Last update timestamp"
}
}
}
}
}
},
"example": {
"environments": [
{
"id": "env_abc123",
"name": "Document Review Environment",
"slug": "doc-review",
"domain": "doc-review.compute.case.dev",
"isDefault": true,
"status": "active",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:45:00Z"
},
{
"id": "env_def456",
"name": "Contract Analysis",
"slug": "contract-analysis",
"domain": "contract-analysis.compute.case.dev",
"isDefault": false,
"status": "active",
"createdAt": "2024-01-18T09:15:00Z",
"updatedAt": "2024-01-18T09:15:00Z"
}
]
}
}
}
},
"401": {
"description": "Authentication required - invalid or missing API key"
}
},
"x-permissions": [
"compute:read"
]
},
"post": {
"tags": [
"Compute"
],
"summary": "Create compute environment",
"description": "Creates a new compute environment for running serverless workloads. Each environment gets its own isolated namespace with a unique domain for hosting applications and APIs. The first environment created becomes the default environment for the organization.",
"operationId": "createComputeEnvironment",
"responses": {
"201": {
"description": "Environment created successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique environment identifier"
},
"name": {
"type": "string",
"description": "Environment name"
},
"slug": {
"type": "string",
"description": "URL-friendly slug derived from name"
},
"domain": {
"type": "string",
"description": "Unique domain for this environment"
},
"isDefault": {
"type": "boolean",
"description": "Whether this is the default environment"
},
"status": {
"type": "string",
"description": "Environment status",
"enum": [
"active",
"inactive"
]
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Environment creation timestamp"
}
}
},
"example": {
"id": "env_abc123",
"name": "document-review-prod",
"slug": "document-review-prod",
"domain": "document-review-prod-lawfirm.case.dev",
"isDefault": true,
"status": "active",
"createdAt": "2024-01-15T10:30:00Z"
}
}
}
},
"400": {
"description": "Invalid request - missing name or invalid name format"
},
"401": {
"description": "Invalid API key"
},
"404": {
"description": "Organization not found"
},
"409": {
"description": "Environment with this name already exists"
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Environment name (alphanumeric, hyphens, and underscores only)",
"pattern": "^[a-zA-Z0-9_-]+$",
"example": "document-review-prod"
}
}
}
}
}
},
"x-permissions": [
"compute:environments:create"
]
}
},
"/compute/v1/environments/{name}": {
"get": {
"tags": [
"Compute"
],
"summary": "Get compute environment",
"description": "Retrieve a specific compute environment by name. Returns environment configuration including status, domain, and metadata for your serverless compute infrastructure.",
"operationId": "getComputeEnvironment",
"responses": {
"200": {
"description": "Environment retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique environment identifier"
},
"name": {
"type": "string",
"description": "Environment name"
},
"slug": {
"type": "string",
"description": "URL-safe environment slug"
},
"domain": {
"type": "string",
"description": "Environment domain URL"
},
"isDefault": {
"type": "boolean",
"description": "Whether this is the default environment"
},
"status": {
"type": "string",
"description": "Environment status (active, inactive, etc.)"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Environment creation timestamp"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Environment last update timestamp"
}
}
},
"example": {
"id": "env_12345",
"name": "production-legal-docs",
"slug": "production-legal-docs",
"domain": "https://prod-legal.case.dev",
"isDefault": true,
"status": "active",
"createdAt": "2024-01-15T09:30:00Z",
"updatedAt": "2024-01-15T10:45:00Z"
}
}
}
},
"400": {
"description": "Bad request - Environment name is required"
},
"401": {
"description": "Unauthorized - Invalid API key"
},
"404": {
"description": "Environment not found"
}
},
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "The name of the compute environment to retrieve"
}
],
"x-permissions": [
"compute:read"
]
},
"delete": {
"tags": [
"Compute"
],
"summary": "Delete compute environment",
"description": "Permanently delete a compute environment and all its associated resources. This will stop all running deployments and clean up related configurations. The default environment cannot be deleted if other environments exist.",
"operationId": "deleteComputeEnvironment",
"responses": {
"200": {
"description": "Environment deleted successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"example": true
},
"message": {
"type": "string",
"example": "Environment 'litigation-processing' deleted"
}
},
"required": [
"success",
"message"
]
}
}
}
},
"400": {
"description": "Bad request - Environment name missing or cannot delete default environment"
},
"401": {
"description": "Unauthorized - Invalid API key"
},
"404": {
"description": "Environment not found"
}
},
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the compute environment to delete",
"example": "litigation-processing"
}
],
"x-permissions": [
"compute:environments:delete"
]
}
},
"/compute/v1/environments/{name}/default": {
"post": {
"tags": [
"Compute"
],
"summary": "Set default environment",
"description": "Sets a compute environment as the default for the organization. Only one environment can be default at a time - setting a new default will automatically unset the previous one.",
"operationId": "setDefaultComputeEnvironment",
"responses": {
"200": {
"description": "Environment successfully set as default",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique environment identifier"
},
"name": {
"type": "string",
"description": "Environment name"
},
"slug": {
"type": "string",
"description": "URL-friendly environment identifier"
},
"domain": {
"type": "string",
"description": "Environment domain"
},
"isDefault": {
"type": "boolean",
"description": "Whether this is the default environment"
},
"status": {
"type": "string",
"description": "Current environment status"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Environment creation timestamp"
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Last update timestamp"
}
}
},
"example": {
"id": "env_123abc",
"name": "prod-legal-docs",
"slug": "prod-legal-docs",
"domain": "prod-legal-docs.case.dev",
"isDefault": true,
"status": "active",
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-15T14:30:00Z"
}
}
}
},
"400": {
"description": "Environment name is required"
},
"401": {
"description": "Invalid API key"
},
"404": {
"description": "Environment not found"
}
},
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
},
"description": "Name of the compute environment to set as default",
"example": "prod-legal-docs"
}
],
"x-permissions": [
"compute:write"
]
}
},
"/compute/v1/health": {
"get": {
"tags": [
"Compute"
],
"summary": "Health check",
"description": "Unauthenticated health check for the Compute service.",
"operationId": "getComputeHealth",
"responses": {
"200": {
"description": "Service is reachable",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
},
"service": {
"type": "string"
}
},
"required": [
"status",
"service"
]
},
"example": {
"status": "ok",
"service": "compute"
}
}
}
}
}
}
},
"/compute/v1/instance-types": {
"get": {
"tags": [
"Compute"
],
"summary": "List GPU instance types",
"description": "Retrieves all available GPU instance types with pricing, specifications, and regional availability. Includes T4, A10, A100, H100, and H200 GPUs powered by Lambda Labs. Perfect for AI model training, inference workloads, and legal document OCR processing at scale.",
"operationId": "listGpuInstanceTypes",
"responses": {
"200": {
"description": "Instance types retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"instanceTypes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Instance type identifier"
},
"description": {
"type": "string",
"description": "Instance description"
},
"gpu": {
"type": "string",
"description": "GPU model and count"
},
"pricePerHour": {
"type": "string",
"description": "Price per hour (e.g. '$1.20')"
},
"specs": {
"type": "object",
"properties": {
"vcpus": {
"type": "integer",
"description": "Number of vCPUs"
},
"memoryGib": {
"type": "integer",
"description": "RAM in GiB"
},
"storageGib": {
"type": "integer",
"description": "Storage in GiB"
}
}
},
"regionsAvailable": {
"type": "array",
"items": {
"type": "string"
},
"description": "Available regions"
}
}
}
},
"count": {
"type": "integer",
"description": "Total number of instance types"
}
},
"required": [
"instanceTypes",
"count"
]
},
"example": {
"instanceTypes": [
{
"name": "gpu_1x_a10",
"description": "1x NVIDIA A10 GPU",
"gpu": "1x A10 (24 GB)",
"pricePerHour": "$0.60",
"specs": {
"vcpus": 30,
"memoryGib": 200,
"storageGib": 1400
},
"regionsAvailable": [
"us-west-1",
"us-east-1"
]
}
],
"count": 12
}
}
}
},
"401": {
"description": "Invalid or missing API key"
},
"500": {
"description": "Failed to list instance types"
}
},
"x-permissions": [
"compute:read"
]
}
},
"/compute/v1/instances": {
"get": {
"tags": [
"Compute"
],
"summary": "List GPU instances",
"description": "Retrieves all GPU compute instances for your organization with real-time status updates from Lambda Labs. Includes pricing and runtime metrics. Perfect for monitoring AI workloads, document processing jobs, and cost tracking.",
"operationId": "listGpuInstances",
"responses": {
"200": {
"description": "Instances retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"instances": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"booting",
"running",
"stopping",
"stopped",
"terminated",
"failed"
]
},
"ip": {
"type": "string",
"nullable": true
},
"instanceType": {
"type": "string"
},
"region": {
"type": "string"
},
"pricePerHour": {
"type": "string"
},
"gpu": {
"type": "string"
},
"startedAt": {
"type": "string",
"format": "date-time",
"nullable": true
},
"totalRuntimeSeconds": {
"type": "integer"
},
"totalCost": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
}
}
},
"count": {
"type": "integer"
}
}
},
"example": {
"instances": [
{
"id": "gpu_abc123",
"name": "ocr-processing",
"status": "running",
"ip": "143.198.54.123",
"instanceType": "gpu_1x_a10",
"region": "us-west-1",
"pricePerHour": "$0.60",
"gpu": "1x A10 (24 GB)",
"startedAt": "2025-01-15T10:00:00Z",
"totalRuntimeSeconds": 1800,
"totalCost": "$0.30",
"createdAt": "2025-01-15T10:00:00Z"
}
],
"count": 1
}
}
}
},
"401": {
"description": "Invalid or missing API key"
},
"500": {
"description": "Failed to list instances"
}
},
"x-permissions": [
"compute:read"
]
},
"post": {
"tags": [
"Compute"
],
"summary": "Launch GPU instance",
"description": "Launches a new GPU compute instance with automatic SSH key generation. Supports mounting Case.dev Vaults as filesystems. Instance boots in ~2-5 minutes. Perfect for batch OCR processing, AI model training, and intensive document analysis workloads.",
"operationId": "launchGpuInstance",
"responses": {
"201": {
"description": "Instance launching",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"status": {
"type": "string"
},
"instanceType": {
"type": "string"
},
"region": {
"type": "string"
},
"pricePerHour": {
"type": "string"
},
"gpu": {
"type": "string"
},
"specs": {
"type": "object"
},
"vaults": {
"type": "array"
},
"createdAt": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Invalid parameters"
},
"401": {
"description": "Invalid or missing API key"
},
"404": {
"description": "Instance type, region, or vault not found"
},
"409": {
"description": "Instance with this name already exists"
},
"500": {
"description": "Failed to launch instance"
}
},
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Instance name"
},
"instanceType": {
"type": "string",
"description": "GPU type (e.g., 'gpu_1x_h100_sxm5')"
},
"region": {
"type": "string",
"description": "Region (e.g., 'us-west-1')"
},
"vaultIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Vault IDs to mount"
# --- truncated at 32 KB (812 KB total) ---
# Full source: https://artifacts.apis.io/casedev/openapi/_original/casedev-api-openapi.json