Case.dev API API

The AI-native platform for legal technology. Build smarter legal applications with our suite of AI-powered APIs.

Operations 223

GET /compute/v1/environments List environments #
POST /compute/v1/environments Create compute environment #
GET /compute/v1/environments/{name} Get compute environment #
DELETE /compute/v1/environments/{name} Delete compute environment #
POST /compute/v1/environments/{name}/default Set default environment #
GET /compute/v1/health Health check #
GET /compute/v1/instance-types List GPU instance types #
GET /compute/v1/instances List GPU instances #
POST /compute/v1/instances Launch GPU instance #
GET /compute/v1/instances/{id} Get GPU instance #
DELETE /compute/v1/instances/{id} Terminate GPU instance #
GET /compute/v1/pricing Get compute pricing information #
GET /compute/v1/secrets List secret groups #
POST /compute/v1/secrets Create secret group #
GET /compute/v1/secrets/{group} List secret keys in a group #
PUT /compute/v1/secrets/{group} Set secrets in group #
DELETE /compute/v1/secrets/{group} Delete secret group or key #
GET /compute/v1/usage Get compute usage and billing #
PUT /connectors/v1/applications/{id}/keys/{keyId} Bind an application management key #
DELETE /connectors/v1/applications/{id}/keys/{keyId} Revoke an application management key binding #
GET /connectors/v1/connections List connections #
POST /connectors/v1/connections Create connection #
PATCH /connectors/v1/connections Update provider availability #
GET /connectors/v1/connections/{id} Get connection #
DELETE /connectors/v1/connections/{id} Delete connection #
GET /connectors/v1/connections/{id}/browse Browse remote folders #
POST /connectors/v1/connections/{id}/microsoft-admin-approval Prepare Microsoft IT approval #
GET /connectors/v1/connections/{id}/search Search remote files #
POST /connectors/v1/fetch Fetch one remote file #
GET /connectors/v1/health Health check #
GET /connectors/v1/installations List installations #
POST /connectors/v1/installations Ensure installation #
POST /connectors/v1/installations/{id}/tokens Mint an installation credential #
DELETE /connectors/v1/installations/{id}/tokens/{tokenId} Revoke an installation credential #
GET /connectors/v1/installations/{id}/vaults List installation vault grants #
PUT /connectors/v1/installations/{id}/vaults/{vaultId} Upsert installation vault grant #
DELETE /connectors/v1/installations/{id}/vaults/{vaultId} Revoke installation vault grant #
GET /connectors/v1/links/{id}/objects List link objects (ledger) #
GET /connectors/v1/links/{id}/selection Get Clio selection root #
POST /connectors/v1/transfer Transfer between provider folder and vault #
GET /index Get API Status #
POST /legal/v1/citations Parse citations from text #
POST /legal/v1/citations-from-url Extract citations from URL #
POST /legal/v1/courts List federal and state courts #
POST /legal/v1/docket Search federal dockets and filings #
POST /legal/v1/find Find legal sources #
POST /legal/v1/full-text Get full text of legal document #
GET /legal/v1/health Health check #
POST /legal/v1/jurisdictions Resolve jurisdiction #
POST /legal/v1/patent-search Search USPTO patent applications #
POST /legal/v1/research Deep legal research #
POST /legal/v1/sec-filing Search EDGAR filings and entity history #
POST /legal/v1/sec-xbrl Structured XBRL financial data from SEC filings #
POST /legal/v1/similar Find similar legal sources #
POST /legal/v1/trademark-search Look up USPTO trademark status #
POST /legal/v1/verify Verify legal citations #
POST /linc/v1/images Upload a runtime image for model input #
POST /linc/v1/sessions Create native Linc session #
DELETE /linc/v1/sessions/{id} End native Linc session #
POST /linc/v1/sessions/{id}/cancel Cancel native Linc session turn #
GET /linc/v1/sessions/{id}/events Replay native Linc events #
POST /linc/v1/sessions/{id}/events/ingest Ingest native Linc session events #
GET /linc/v1/sessions/{id}/messages Replay completed native Linc messages #
POST /linc/v1/sessions/{id}/rpc Send native Pi RPC command #
PUT /linc/v1/sessions/{id}/scope Replace a persistent Linc conversation scope #
GET /linc/v1/sessions/{id}/state Get native Linc session state #
GET /llm/config Get LLM configuration #
POST /llm/v1/chat/completions Chat completions #
POST /llm/v1/embeddings Create embeddings #
GET /llm/v1/health Health check #
GET /llm/v1/models List available language models #
GET /matters/v1 List matters #
POST /matters/v1 Create matter #
GET /matters/v1/{id} Get matter #
PATCH /matters/v1/{id} Update matter #
DELETE /matters/v1/{id} Purge a Matter #
POST /matters/v1/{id}/content-purges Purge selected Matter content #
GET /matters/v1/{id}/events/subscriptions List matter webhook subscriptions #
POST /matters/v1/{id}/events/subscriptions Create matter webhook subscription #
DELETE /matters/v1/{id}/events/subscriptions/{subscriptionId} Delete matter webhook subscription #
GET /matters/v1/{id}/log List matter log entries #
POST /matters/v1/{id}/log Create matter log entry #
POST /matters/v1/{id}/log/export Export matter log entries #
GET /matters/v1/{id}/parties List matter parties #
POST /matters/v1/{id}/parties Attach party to matter #
GET /matters/v1/{id}/shares List matter shares #
POST /matters/v1/{id}/shares Create matter share #
DELETE /matters/v1/{id}/shares/{shareId} Delete matter share #
GET /matters/v1/{id}/work-items List matter work items #
POST /matters/v1/{id}/work-items Create work item #
GET /matters/v1/{id}/work-items/{workItemId} Get work item #
PATCH /matters/v1/{id}/work-items/{workItemId} Update work item #
POST /matters/v1/{id}/work-items/{workItemId}/decision Make work item decision #
GET /matters/v1/agent-types List agent types #
POST /matters/v1/agent-types Create agent type #
GET /matters/v1/content-purges/{purgeId} Inspect a content purge #
GET /matters/v1/parties List parties #
POST /matters/v1/parties Create party #
GET /matters/v1/parties/{partyId} Get party #
PATCH /matters/v1/parties/{partyId} Update party #
GET /matters/v1/purges/{purgeId} Inspect a Matter purge #
GET /matters/v1/types List matter types #
POST /matters/v1/types Create matter type #
GET /matters/v1/types/{id} Get matter type #
PATCH /matters/v1/types/{id} Update matter type #
POST /media/v1/clips Create a captioned media clip #
GET /media/v1/clips/{id} Get media clip job #
GET /media/v1/health Health check #
POST /media/v1/transcripts/retrieve Retrieve transcript text #
POST /media/v1/transcripts/search Search transcript words #
GET /memory/v1 List memories #
POST /memory/v1 Add memory #
DELETE /memory/v1 Bulk delete memories #
GET /memory/v1/{id} Get memory #
DELETE /memory/v1/{id} Delete memory #
GET /memory/v1/health Health check #
POST /memory/v1/search Search memories #
GET /ocr/v1/{id} Get OCR job status #
GET /ocr/v1/{id}/download/{type} Download OCR results #
GET /ocr/v1/health Health check #
POST /ocr/v1/process Process document with OCR #
POST /privilege/v1/detect Detect privileged content #
POST /search/v1/answer Generate AI-powered answers from web search #
POST /search/v1/contents Extract content from URLs #
GET /search/v1/health Health check #
POST /search/v1/similar Find similar content #
GET /services List documented services #
POST /skills Create custom skill #
GET /skills/{slug} Read skill #
PUT /skills/{slug} Update custom skill #
DELETE /skills/{slug} Delete custom skill #
GET /skills/{slug}/export Export skill tree #
GET /skills/catalog Browse available skills #
GET /skills/custom List custom skills #
GET /skills/resolve Search skills #
GET /system/health Health check #
POST /translate/v1/detect Detect language #
POST /translate/v1/document Translate a document #
GET /translate/v1/health Health check #
GET /translate/v1/languages List supported languages #
POST /translate/v1/translate Translate text #
GET /usage/v1 Get usage snapshot #
GET /usage/v1/subscriptions List usage webhook subscriptions #
POST /usage/v1/subscriptions Create usage webhook subscription #
PATCH /usage/v1/subscriptions/{subscriptionId} Update usage webhook subscription #
DELETE /usage/v1/subscriptions/{subscriptionId} Delete usage webhook subscription #
POST /usage/v1/subscriptions/{subscriptionId}/test Send test usage webhook event #
GET /vault List all vaults #
POST /vault Create a new vault #
GET /vault/{id} Get vault information #
PATCH /vault/{id} Update vault settings #
DELETE /vault/{id} Delete vault #
GET /vault/{id}/events/subscriptions List vault webhook subscriptions #
POST /vault/{id}/events/subscriptions Create vault webhook subscription #
PATCH /vault/{id}/events/subscriptions/{subscriptionId} Update vault webhook subscription #
DELETE /vault/{id}/events/subscriptions/{subscriptionId} Delete vault webhook subscription #
POST /vault/{id}/events/subscriptions/{subscriptionId}/test Send test webhook event #
GET /vault/{id}/folders List persistent folders #
POST /vault/{id}/folders Create a persistent folder #
PATCH /vault/{id}/folders Rename or move a folder #
POST /vault/{id}/ingest/{objectId} Ingest vault object #
GET /vault/{id}/memory List vault memory entries #
POST /vault/{id}/memory Create vault memory entry #
PATCH /vault/{id}/memory/{entryId} Update vault memory entry #
DELETE /vault/{id}/memory/{entryId} Delete vault memory entry #
POST /vault/{id}/memory/search Search vault memory #
POST /vault/{id}/multipart/abort Abort multipart upload #
POST /vault/{id}/multipart/complete Complete multipart upload #
POST /vault/{id}/multipart/init Initiate multipart upload for vault file #
POST /vault/{id}/multipart/part-urls Get presigned URLs for multipart upload parts #
GET /vault/{id}/objects List vault objects #
GET /vault/{id}/objects/{objectId} Get vault object with download URL #
PATCH /vault/{id}/objects/{objectId} Update vault object #
DELETE /vault/{id}/objects/{objectId} Delete vault object #
POST /vault/{id}/objects/{objectId}/append Append PDF vault objects onto an existing PDF vault object #
GET /vault/{id}/objects/{objectId}/chunks Get full object chunks #
GET /vault/{id}/objects/{objectId}/download Download vault object #
GET /vault/{id}/objects/{objectId}/ocr-words Get OCR word bounding boxes #
GET /vault/{id}/objects/{objectId}/pages Get object pages #
POST /vault/{id}/objects/{objectId}/presigned-url Generate presigned URL for object operations #
GET /vault/{id}/objects/{objectId}/text Get object text #
POST /vault/{id}/objects/merge Create a searchable PDF from ordered vault objects #
POST /vault/{id}/objects/move Move or copy objects between accessible vaults #
POST /vault/{id}/objects/organize Move files to a folder #
POST /vault/{id}/search Search vault documents #
GET /vault/{id}/shares List vault shares #
POST /vault/{id}/shares Create a vault share #
DELETE /vault/{id}/shares/{shareId} Revoke a vault share #
POST /vault/{id}/upload Generate presigned upload URL for vault file #
POST /vault/{id}/upload/{objectId}/confirm Confirm vault upload result #
GET /vault/groups List vault groups #
POST /vault/groups Create vault group #
PATCH /vault/groups/{groupId} Update vault group #
DELETE /vault/groups/{groupId} Delete vault group #
GET /vault/health Health check #
POST /vault/ocr/callback Receive OCR callback relay events #
POST /voice/boost-list/extract Extract boost list from documents #
POST /voice/boost-list/generate Generate boost list from transcript #
GET /voice/health Health check #
GET /voice/streaming/url Get streaming transcription WebSocket URL #
POST /voice/transcription Create transcription job #
GET /voice/transcription/{id} Get transcription status #
DELETE /voice/transcription/{id} Delete transcription #
POST /voice/v1/speak Text-to-speech synthesis #
POST /voice/v1/speak/stream Stream text-to-speech audio #
GET /voice/v1/voices List available voices #
GET /webhooks/v1/deliveries List webhook deliveries #
GET /webhooks/v1/deliveries/{id} Get webhook delivery #
POST /webhooks/v1/deliveries/{id}/replay Replay a webhook delivery #
GET /webhooks/v1/endpoints List webhook endpoints #
POST /webhooks/v1/endpoints Create webhook endpoint #
GET /webhooks/v1/endpoints/{id} Get webhook endpoint #
PATCH /webhooks/v1/endpoints/{id} Update webhook endpoint #
DELETE /webhooks/v1/endpoints/{id} Delete webhook endpoint #
POST /webhooks/v1/endpoints/{id}/rotate_secret Rotate webhook signing secret #
POST /webhooks/v1/endpoints/{id}/test Send a test event to a webhook endpoint #
GET /webhooks/v1/event_types List subscribable event types #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/casedev:case-dev-api-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

casedev-api-openapi.json Raw ↑
{
  "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