Contract & Agreement Parsing

Reviewing contracts manually is time-consuming and risks missing critical terms. Extract key dates, parties, obligations, and clauses automatically — consistent results across hundreds of agreements.

Contract parsing: from agreement to structured JSON

Input document
SERVICE AGREEMENT

Agreement No: SA-2024-1192
Effective Date: January 15, 2024

BETWEEN:

  Party A (Provider):
    CloudScale Solutions Ltd.
    Registration No: HRB 182745
    Address: Maximilianstr. 35, 80539 Munich, Germany
    Represented by: Dr. Anna Fischer, Managing Director

  Party B (Client):
    NovaTech Industries GmbH
    Registration No: HRB 209381
    Address: Kantstr. 78, 10627 Berlin, Germany
    Represented by: Marcus Klein, CTO

1. SCOPE OF SERVICES
   Provider shall deliver managed cloud infrastructure
   services including compute, storage, and networking
   as described in Exhibit A.

2. TERM
   This Agreement is effective for 24 months from the
   Effective Date, with automatic renewal for successive
   12-month periods unless either party provides 90 days
   written notice of non-renewal.

3. COMPENSATION
   Client shall pay Provider a monthly fee of EUR 12,500
   plus applicable VAT, due within 30 days of invoice.

4. SERVICE LEVEL AGREEMENT
   Provider guarantees 99.9% uptime for all production
   services. Penalties apply per Exhibit B for SLA
   breaches exceeding 0.1% downtime per month.

5. TERMINATION
   Either party may terminate for cause with 30 days
   written notice if the other party materially breaches
   this Agreement and fails to cure within that period.

6. GOVERNING LAW
   This Agreement shall be governed by the laws of the
   Federal Republic of Germany.

SIGNATURES:
Dr. Anna Fischer    Marcus Klein
CloudScale Solutions    NovaTech Industries
Date: January 15, 2024
Extracted JSON
{
  "agreement_number": "SA-2024-1192",
  "effective_date": "2024-01-15",
  "parties": [
    {
      "role": "Provider",
      "name": "CloudScale Solutions Ltd.",
      "registration_number": "HRB 182745",
      "address": "Maximilianstr. 35, 80539 Munich, Germany",
      "representative": {
        "name": "Dr. Anna Fischer",
        "title": "Managing Director"
      }
    },
    {
      "role": "Client",
      "name": "NovaTech Industries GmbH",
      "registration_number": "HRB 209381",
      "address": "Kantstr. 78, 10627 Berlin, Germany",
      "representative": {
        "name": "Marcus Klein",
        "title": "CTO"
      }
    }
  ],
  "term_months": 24,
  "auto_renewal": true,
  "renewal_term_months": 12,
  "notice_period_days": 90,
  "compensation": {
    "monthly_fee": 12500,
    "currency": "EUR",
    "payment_terms": "Net 30"
  },
  "sla": {
    "uptime_guarantee": 99.9,
    "penalty_threshold_downtime": 0.1
  },
  "termination": {
    "for_cause_notice_days": 30,
    "cure_period_days": 30
  },
  "governing_law": "Federal Republic of Germany",
  "key_clauses": [
    "Managed cloud infrastructure services (compute, storage, networking)",
    "99.9% uptime SLA with penalty provisions",
    "Automatic renewal unless 90 days notice given",
    "Either party may terminate for material breach with 30-day cure period"
  ]
}

Define your schema

Tell Smole what data to extract using a JSON Schema.

{
  "type": "object",
  "properties": {
    "agreement_number": { "type": "string" },
    "effective_date": { "type": "string", "format": "date" },
    "parties": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": { "type": "string" },
          "name": { "type": "string" },
          "registration_number": { "type": "string" },
          "address": { "type": "string" },
          "representative": {
            "type": "object",
            "properties": {
              "name": { "type": "string" },
              "title": { "type": "string" }
            }
          }
        }
      }
    },
    "term_months": { "type": "integer" },
    "auto_renewal": { "type": "boolean" },
    "renewal_term_months": { "type": "integer" },
    "notice_period_days": { "type": "integer" },
    "compensation": {
      "type": "object",
      "properties": {
        "monthly_fee": { "type": "number" },
        "currency": { "type": "string" },
        "payment_terms": { "type": "string" }
      }
    },
    "sla": {
      "type": "object",
      "properties": {
        "uptime_guarantee": { "type": "number" },
        "penalty_threshold_downtime": { "type": "number" }
      }
    },
    "termination": {
      "type": "object",
      "properties": {
        "for_cause_notice_days": { "type": "integer" },
        "cure_period_days": { "type": "integer" }
      }
    },
    "governing_law": { "type": "string" },
    "key_clauses": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}

Try with your own documents

Upload a document and define your schema. See results in seconds.