Terms of Service Extraction
Pull the key clauses out of a company's terms of service: governing law, arbitration, termination and limits of liability.
terms-of-service-extract Example
{
"source_url": "https://github.com/en/site-policy/github-terms",
"user_rights": [],
"company_name": null,
"key_concerns": [
"Page not found error - the requested Terms of Service document is not accessible at the provided URL",
"Unable to extract any substantive ToS content due to 404 error"
],
"last_updated": null,
"governing_law": null,
"age_restriction": null,
"extraction_status": "FAILED - The URL returns a 404 Page Not Found error. The actual GitHub Terms of Service content is not present in the provided page text. Only navigation menus, login forms, and footer links are visible. The correct URL for GitHub's Terms of Service may be different from the one provided.",
"readability_score": null,
"arbitration_clause": false,
"class_action_waiver": false,
"liability_limitations": [],
"termination_conditions": [],
"data_collection_practices": [],
"intellectual_property_notes": []
} Inputs
| Field | Type | Required | What it is |
|---|---|---|---|
url | string | Yes | Company website URL |
Output fields
How reliably each field appears in a successful answer.
| Field | Type | Appears |
|---|---|---|
governing_law | string | Always (present in every successful answer) |
arbitration_clause | boolean | Always (present in every successful answer) |
liability_limitations | array | Always (present in every successful answer) |
termination_conditions | array | Always (present in every successful answer) |
How to call it
The same tool through each route. MCP clients reach it through Strale’s server at https://api.strale.io/mcp; the call below is what the agent sends.
# Needs an API key. max_price_cents caps what this call may cost.
curl -X POST https://api.strale.io/v1/do \
-H "Authorization: Bearer $STRALE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"capability_slug": "terms-of-service-extract",
"inputs": {
"url": "https://github.com/site/terms"
},
"max_price_cents": 30
}' {
"tool": "strale_execute",
"arguments": {
"slug": "terms-of-service-extract",
"inputs": {
"url": "https://github.com/site/terms"
},
"max_price_cents": 30
}
} import { Strale } from "straleio";
const strale = new Strale({ apiKey: process.env.STRALE_API_KEY! });
const result = await strale.do({
capability_slug: "terms-of-service-extract",
inputs: {
"url": "https://github.com/site/terms"
},
max_price_cents: 30,
}); import os
from straleio import Strale, DoRequest
strale = Strale(api_key=os.environ["STRALE_API_KEY"])
result = strale.do(DoRequest(
capability_slug="terms-of-service-extract",
inputs={
"url": "https://github.com/site/terms",
},
max_price_cents=30,
)) # No account. The first request answers 402 with the price in USDC;
# an x402 client pays it from your wallet and repeats the request.
curl -i 'https://api.strale.io/x402/v2/terms-of-service-extract?url=https%3A%2F%2Fgithub.com%2Fsite%2Fterms' Limitations
Legal interpretation requires qualified review
AI extraction of key terms — legal interpretation of clauses requires qualified legal review
What to do instead: Use extracted terms as a quick screening tool and flag unusual clauses for legal counsel review
Output size cap per call
Structured output is limited to about 2000 output tokens per call; requests exceeding this limit are refused rather than returned truncated. Requests with large results can exceed this limit, and repeating the same request does not help.
What to do instead: Read the original terms page directly for details that exceed the output limit.
Related tools
- Invoice and Receipt Extraction €0.50
- PDF Data Extraction €0.30
- Privacy Policy Analysis €0.30
- Return Policy Extraction €0.20
- SWIFT Message Parser €0.02