PolicyCheck API

Anonymous JSON REST API on policycheck.tools. The provider-published OpenAPI (verbatim in openapi/) describes two live legacy ChatGPT-plugin operations, analyzeLegalDocument (POST /api/chatgpt/analyze, raw text) and analyzeLegalDocumentFromURL (POST /api/chatgpt/analyze-url). The documented primary surface — POST /api/check (seller URL or policy text -> risk score, flags, clauses, analysis_status, confidence), GET /api/clause-registry, POST /api/v1/signed-assessment and /api/v1/verify with /.well-known/jwks.json, and the X-API-Key-gated GET /api/v1/audit-log and /api/v1/compliance-report — is documented in prose only and is not in the contract.

Operations 2

POST /api/chatgpt/analyze Analyze a legal document #
POST /api/chatgpt/analyze-url Analyze a legal document from a URL #

Documentation

Specifications

Other Resources

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/policycheck-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

policycheck-tools-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: LegalEasy API
  description: API for analyzing legal documents and generating plain-English summaries with risk assessments
  version: 1.0.0
servers:
- url: https://policycheck.tools
paths:
  /api/chatgpt/analyze:
    post:
      operationId: analyzeLegalDocument
      summary: Analyze a legal document
      description: Analyzes legal text (terms of service, privacy policy, etc.) and returns a structured summary
        with risk assessment. Identifies key clauses like arbitration, liability caps, data sharing, and categorizes
        risks.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - text
              properties:
                text:
                  type: string
                  description: The full text of the legal document to analyze. Can be terms of service, privacy
                    policy, refund policy, or any legal document.
                document_type:
                  type: string
                  enum:
                  - terms
                  - privacy
                  - refund
                  - shipping
                  - other
                  description: Type of document being analyzed. Defaults to 'terms' if not specified.
                  default: terms
                product_name:
                  type: string
                  description: 'Optional: Name of the product/service (e.g., ''Zora'', ''Shopify''). Helps with
                    context.'
      responses:
        '200':
          description: Successfully analyzed document
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: object
                    properties:
                      product:
                        type: string
                        description: Name of the product/service
                      updated_at:
                        type: string
                        description: When the terms were last updated (ISO date)
                      jurisdiction:
                        type: array
                        items:
                          type: string
                        description: Governing jurisdiction(s)
                      sections:
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              type: string
                              description: Section identifier (e.g., 'disputes', 'liability', 'wallet')
                            title:
                              type: string
                              description: Human-readable section title
                            bullets:
                              type: array
                              items:
                                type: string
                              description: Key points in plain English
                            body:
                              type: string
                              description: Detailed explanation
                  risks:
                    type: object
                    properties:
                      arbitration:
                        type: boolean
                        description: Whether binding arbitration is required
                      classActionWaiver:
                        type: boolean
                        description: Whether class action lawsuits are waived
                      liabilityCap:
                        type: number
                        nullable: true
                        description: Maximum liability amount in dollars
                      terminationAtWill:
                        type: boolean
                        description: Whether account can be terminated at any time
                      optOutDays:
                        type: number
                        nullable: true
                        description: Number of days to opt out of arbitration
                  key_findings:
                    type: array
                    items:
                      type: string
                    description: Most important findings in plain English
        '400':
          description: Bad request - invalid input
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
  /api/chatgpt/analyze-url:
    post:
      operationId: analyzeLegalDocumentFromURL
      summary: Analyze a legal document from a URL
      description: Fetches and analyzes a legal document from a given URL. Automatically extracts the main content
        and provides a structured summary with risk assessment.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - url
              properties:
                url:
                  type: string
                  description: URL of the legal document to analyze (e.g., 'https://example.com/terms', 'https://example.com/privacy')
                document_type:
                  type: string
                  enum:
                  - terms
                  - privacy
                  - refund
                  - shipping
                  - other
                  description: Type of document being analyzed. Auto-detected if not specified.
                  default: terms
      responses:
        '200':
          description: Successfully analyzed document from URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  url:
                    type: string
                    description: The URL that was analyzed
                  title:
                    type: string
                    description: Page title
                  content_length:
                    type: number
                    description: Length of extracted content in characters
                  summary:
                    type: object
                    description: Same structure as /api/chatgpt/analyze response
                  risks:
                    type: object
                    description: Risk flags identified
                  key_findings:
                    type: array
                    items:
                      type: string
                    description: Most important findings
        '400':
          description: Bad request - invalid URL
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '500':
          description: Server error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
x-source: https://policycheck.tools/openapi.json
x-fetched: '2026-09-19'
x-method: searched
x-original: openapi/_original/policycheck-tools-openapi.json
x-ownership-note: 'info.title reads ''LegalEasy API'' because LegalEasy is the product''s former name: https://legaleasy.tools/
  308-redirects to https://policycheck.tools/, the policycheck-mcp npm package by the same author lists homepage
  legaleasy.tools, servers[] names https://policycheck.tools, the provider''s own llms.txt links this exact URL
  as its OpenAPI, and both paths answer live on policycheck.tools (POST {} -> 400 ''Missing required field: text'').'