Bills, contracts and ledgers logo

Dark Pattern Contract & Subscription Exit Lawyer

$1.00 USDC per call · Business, finance and compliance · POST /api/v1/terminate-contract · Id contract-terminator

Paste a contract or Terms URL and get the decision first: send notice by a computed date, or the window has passed. Quotes auto-renewal, notice-window and early-termination traps verbatim, computes the renewal and last-notice dates in code, estimates the renewal cost you avoid from your fee, maps the exit to ROSCA, state automatic-renewal laws and EU/UK consumer law with links, and drafts a notice with its placeholders listed. General information, not legal advice.

What you get

A missed 60-day notice window on a gym, SaaS or telecom plan locks in another full term, often $500 to several thousand dollars for consumers and far more for business contracts; one caught deadline pays for the call many times over.

Call it

Send the JSON body below to https://agents.writerslogic.com/api/v1/terminate-contract. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.

curl -i -X POST https://agents.writerslogic.com/api/v1/terminate-contract \
  -H 'content-type: application/json' \
  -d '{"contractText":"This Agreement renews automatically for successive 12-month terms unless either party gives written notice of non-renewal by certified mail at least 60 days before the end of the then-current term. Early termination requires payment of all remaining fees for the current term.","vendorName":"Acme Fitness Clubs","userJurisdiction":"California","reasonForExit":"Moved out of state; signed up online.","customerType":"consumer","signupMethod":"online","contractStartDate":"2026-03-15","monthlyFee":49.99}'

Input

FieldTypeRequiredDescription
termsUrlstring; length 0..2048noTerms of Service or cancellation policy URL. Provide termsUrl or contractText.
contractTextstring; length 0..200000no
vendorNamestring; length 1..200yes
userJurisdictionstring; length 2..100yese.g. California, New York, EU (Germany), UK.
reasonForExitstring; length 1..2000yes
customerTypestring; one of "consumer", "business"no
customerNamestring; length 0..200no
accountIdentifierstring; length 0..200no
contractStartDatestringno
signupMethodstring; one of "online", "phone", "in_person"no
monthlyFeenumber; 0..10000000noWhat you pay per month, USD. Used to compute the dollars at stake.
annualFeenumber; 0..100000000noWhat you pay per year, USD, if billed annually. Use monthlyFee or annualFee.
earlyTerminationFeeUsdnumber; 0..100000000noEarly-termination fee the vendor says you owe, USD, if any.

Example request body

{
  "contractText": "This Agreement renews automatically for successive 12-month terms unless either party gives written notice of non-renewal by certified mail at least 60 days before the end of the then-current term. Early termination requires payment of all remaining fees for the current term.",
  "vendorName": "Acme Fitness Clubs",
  "userJurisdiction": "California",
  "reasonForExit": "Moved out of state; signed up online.",
  "customerType": "consumer",
  "signupMethod": "online",
  "contractStartDate": "2026-03-15",
  "monthlyFee": 49.99
}

Result

The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.

FieldTypeRequiredDescription
contract_summarystringno
hiddenTrapsarray<object>no
legalLeveragearray<object>no
deadlinesarray<string>no
cancellationStepsarray<string>no
terminationNoticeobjectno
risk_of_feesstring; one of "high", "medium", "low", "none"no
caveatsarray<string>no
unverifiedTrapsarray<object>noTraps whose quoted clause was not found in the contract text; withheld from hiddenTraps.
headlineobjectnoDecision first: the verdict, the dollars at stake, confidence and the exact next step.
fee_exposureobjectnoDollar exposure computed from monthlyFee/annualFee and the contract's renewal term; null fields mean an input was missing.
readyToSendobjectnoWhat to do before sending terminationNotice: placeholders to replace, delivery methods, the last day to send, and warnings.
llmstring; one of "ok", "unavailable"nounavailable: the analysis step failed and the result is code-only (dates, keyword-flagged clauses, template notice).
llm_errorstringno
disclaimerstringno
computed_deadlinesobjectnoRenewal and notice dates computed by code from the contract text; see status for why none may be present.
source_urlone ofno
contract_charsintegerno
truncated_for_modelbooleanno

Pay and connect

Available through: x402 (USDC on Base), MCP, RapidAPI, Apify.

Machine-readable