{
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "description": "API key (lk_live_..., lk_test_..., or lk_pub_...)",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "AI document generation platform - company procedures and policies, analyses, audits, offers, contracts, presentations, strategic sessions, articles, bonus systems, gantt charts, transcriptions",
    "title": "LOCURA DocMaker API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v1/document-types": {
      "get": {
        "description": "List declarative document types, immutable versions, dynamic forms, validation rules and output formats",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List configurable document type definitions",
        "tags": [
          "Document Types"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/document-types/{id}": {
      "get": {
        "description": "Get versioned definition metadata and documents pinned to a configurable document type",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a configurable document type definition",
        "tags": [
          "Document Types"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/documents": {
      "get": {
        "description": "List documents across all types with pagination. Filter by client_id or type.",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List all documents",
        "tags": [
          "Documents"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/documents/{id}": {
      "get": {
        "description": "Get detailed information about a specific document by ID",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get document details",
        "tags": [
          "Documents"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/documents/{id}/download": {
      "get": {
        "description": "Download the generated document file (PDF/PPTX/DOCX/HTML) from R2 storage",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Download document file",
        "tags": [
          "Documents"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/governance/releases": {
      "get": {
        "description": "List versioned review releases with workflow stage, integrity status and open-comment count",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List document review releases",
        "tags": [
          "Governance"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/governance/releases/{id}": {
      "get": {
        "description": "Get a review release, immutable generation manifest, comments and audit events",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get review release and generation manifest",
        "tags": [
          "Governance"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/governance/releases/{id}/snapshot": {
      "get": {
        "description": "Get the exact integrity-verified document snapshot associated with a versioned review release",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get the immutable output snapshot for a review release",
        "tags": [
          "Governance"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/health": {
      "get": {
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [],
        "summary": "Health check",
        "tags": [
          "Meta"
        ]
      }
    },
    "/api/v1/jobs": {
      "get": {
        "description": "List document generation jobs with status tracking and pagination",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List generation jobs",
        "tags": [
          "Jobs"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/jobs/{id}": {
      "get": {
        "description": "Get the status and progress of a specific generation job",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get job status",
        "tags": [
          "Jobs"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/templates": {
      "get": {
        "description": "List executable PDF, PPTX and DOCX templates with immutable version identifiers, hashes and usage counts",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "List document template families and versions",
        "tags": [
          "Templates"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    },
    "/api/v1/templates/{id}": {
      "get": {
        "description": "Get template versions, renderer metadata and documents pinned to the family",
        "responses": {
          "200": {
            "description": "Success"
          },
          "401": {
            "description": "Unauthorized - missing or invalid API key"
          },
          "403": {
            "description": "Forbidden - missing required scope"
          },
          "429": {
            "description": "Rate limit exceeded"
          },
          "500": {
            "description": "Internal server error"
          }
        },
        "security": [
          {
            "BearerAuth": []
          }
        ],
        "summary": "Get a document template family",
        "tags": [
          "Templates"
        ],
        "x-required-scope": "docmaker:documents:read"
      }
    }
  },
  "servers": [
    {
      "url": "https://docmaker.locura.tech"
    }
  ]
}
