vLex Classification API

Classify legal documents and extract key phrases

OpenAPI Specification

vlex-classification-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: vLex Iceberg Anonymization Classification API
  description: The vLex Iceberg Anonymization API identifies and anonymizes names and personally identifiable information from any text input. Pre-trained on legal data to recognize personal names, organizations, and sensitive entities within legal documents, contracts, and court filings for privacy protection and data compliance workflows.
  version: 1.0.0
  contact:
    name: vLex Developer Support
    url: https://developer.vlex.com/
  license:
    name: Proprietary
    url: https://vlex.com/
servers:
- url: https://api.vlex.com
  description: vLex Iceberg API
tags:
- name: Classification
  description: Classify legal documents and extract key phrases
paths:
  /v1/classify:
    post:
      operationId: classifyDocument
      summary: Classify Legal Document
      description: Classify a legal text into practice areas, document types, and extract key legal phrases. Uses IceNet, vLex's legal classification algorithm trained on millions of legal documents.
      tags:
      - Classification
      security:
      - SubscriptionKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClassifyRequest'
      responses:
        '200':
          description: Classification results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassifyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/key-phrases:
    post:
      operationId: extractKeyPhrases
      summary: Extract Key Phrases
      description: Extract significant legal key phrases, terms of art, and important concepts from a legal text. Returns ranked phrases with context.
      tags:
      - Classification
      security:
      - SubscriptionKey: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KeyPhrasesRequest'
      responses:
        '200':
          description: Key phrases
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyPhrasesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Unauthorized:
      description: Invalid or missing subscription key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Classification:
      type: object
      properties:
        label:
          type: string
        confidence:
          type: number
          format: float
          minimum: 0
          maximum: 1
    KeyPhrasesRequest:
      type: object
      required:
      - text
      properties:
        text:
          type: string
          minLength: 50
          maxLength: 100000
        max_phrases:
          type: integer
          default: 20
          maximum: 100
        language:
          type: string
          default: en
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
    ClassifyResponse:
      type: object
      properties:
        practice_areas:
          type: array
          items:
            $ref: '#/components/schemas/Classification'
          description: Detected legal practice areas.
        document_type:
          $ref: '#/components/schemas/Classification'
        key_concepts:
          type: array
          items:
            type: string
          description: Key legal concepts identified.
    ClassifyRequest:
      type: object
      required:
      - text
      properties:
        text:
          type: string
          description: Legal text to classify.
          minLength: 50
          maxLength: 100000
        language:
          type: string
          default: en
    KeyPhrasesResponse:
      type: object
      properties:
        key_phrases:
          type: array
          items:
            $ref: '#/components/schemas/KeyPhrase'
        processing_time_ms:
          type: integer
    KeyPhrase:
      type: object
      properties:
        phrase:
          type: string
        score:
          type: number
          format: float
        occurrences:
          type: integer
  securitySchemes:
    SubscriptionKey:
      type: apiKey
      in: header
      name: Ocp-Apim-Subscription-Key
      description: vLex API subscription key obtained from the developer portal.
externalDocs:
  description: vLex Developer Portal
  url: https://developer.vlex.com/apis