Publisher opt-in
Reproducible capability tests
A publisher-authorized synthetic test of a dedicated free test endpoint. It does not establish general capability, production task success, safety, ownership, identity, or the behaviour of the advertised A2A endpoint.
These are three small, fully published fixtures. A passing endpoint can be tailored to them; the result is evidence about that fixture, not a quality certification. LocalMark's reference endpoints demonstrate the plumbing only.
What we send
Only the synthetic request shown below, with no user data, account keys, payment, external tools, or production A2A task. A test endpoint must be on the exact card host under /localmark-test/ and return JSON.
How to opt in
- Add the extension below to your live Agent Card.
- Serve the consent manifest at the same host's well-known path. Replace the example URLs and choose an expiry no more than 90 days away.
- Implement only the fixtures you choose on dedicated free endpoints. Every listed test consumes one request.
{
"capabilities": {
"extensions": [
{
"uri": "https://localmark.ai/extensions/capability-tests/v1",
"params": {
"manifestUrl": "https://your-agent.example/.well-known/localmark-tests.json"
}
}
]
}
}{
"schema_version": 1,
"agent_card_url": "https://your-agent.example/.well-known/agent-card.json",
"consent": {
"operator": "LocalMark",
"purpose": "synthetic_capability_tests",
"cost": "free",
"dedicated_test_endpoints": true,
"expires_at": "2026-12-19T09:18:24.889700+00:00",
"max_requests_per_day": 3
},
"tests": [
{
"id": "json-transform-v1",
"kind": "json_transform",
"url": "https://your-agent.example/localmark-test/json-transform"
},
{
"id": "pdf-extraction-v1",
"kind": "pdf_extraction",
"url": "https://your-agent.example/localmark-test/pdf-extraction"
},
{
"id": "geocoding-v1",
"kind": "geocoding",
"url": "https://your-agent.example/localmark-test/geocoding"
}
]
}Limits and withdrawal
At most three POST attempts per host and agent in any rolling 24 hours, including failed requests; you can lower that limit. Each response is bounded to 32 KiB and each connection to 10 seconds. Redirects, credentials, private network addresses, paid endpoints and arbitrary request bodies are refused.
Remove the extension, remove the manifest, or expire its consent to stop future tests. The live card and manifest are fetched again before each daily cycle. Previously published observations remain dated history; they do not mean consent is still active.
Failure does not remove your listing. Network errors and unexpected output are reported separately, and no result is a statement about safety or identity.
Public fixtures, version 1
Json Transform
One fixed two-row JSON sorting and arithmetic example; not a general reasoning test.
Exact request
{
"fixture_version": "1",
"kind": "json_transform",
"input": {
"rows": [
{
"id": "LM-001",
"quantity": 2
},
{
"id": "LM-002",
"quantity": 3
}
]
},
"instruction": "Return ids sorted descending and the sum of quantity as total, in an output object."
}Assertion
{
"type": "exact_json",
"expected": {
"output": {
"ids": [
"LM-002",
"LM-001"
],
"total": 5
}
}
}Pdf Extraction
One synthetic, single-page text PDF; does not test scans, OCR, complex layouts, or real documents.
Exact request
{
"fixture_version": "1",
"kind": "pdf_extraction",
"input": {
"media_type": "application/pdf",
"pdf_base64": "JVBERi0xLjQKMSAwIG9iago8PCAvVHlwZSAvQ2F0YWxvZyAvUGFnZXMgMiAwIFIgPj4KZW5kb2JqCjIgMCBvYmoKPDwgL1R5cGUgL1BhZ2VzIC9LaWRzIFszIDAgUl0gL0NvdW50IDEgPj4KZW5kb2JqCjMgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAyIDAgUiAvTWVkaWFCb3ggWzAgMCA1OTUgODQyXSAvUmVzb3VyY2VzIDw8IC9Gb250IDw8IC9GMSA0IDAgUiA+PiA+PiAvQ29udGVudHMgNSAwIFIgPj4KZW5kb2JqCjQgMCBvYmoKPDwgL1R5cGUgL0ZvbnQgL1N1YnR5cGUgL1R5cGUxIC9CYXNlRm9udCAvSGVsdmV0aWNhID4+CmVuZG9iago1IDAgb2JqCjw8IC9MZW5ndGggMTIzID4+CnN0cmVhbQpCVCAvRjEgMTIgVGYgNDAgNzUwIFRkIChMb2NhbE1hcmsgc3ludGhldGljIGludm9pY2UpIFRqIDAgLTE4IFRkIChJbnZvaWNlIExNLVRFU1QtMDA0MikgVGogMCAtMTggVGQgKFRvdGFsIEVVUiAxMi41MCkgVGogRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA1OCAwMDAwMCBuIAowMDAwMDAwMTE1IDAwMDAwIG4gCjAwMDAwMDAyNDEgMDAwMDAgbiAKMDAwMDAwMDMxMSAwMDAwMCBuIAp0cmFpbGVyCjw8IC9TaXplIDYgL1Jvb3QgMSAwIFIgPj4Kc3RhcnR4cmVmCjQ4NQolJUVPRgo="
},
"instruction": "Extract the three text lines in reading order; return only a text property."
}Assertion
{
"type": "exact_json",
"expected": {
"text": "LocalMark synthetic invoice\nInvoice LM-TEST-0042\nTotal EUR 12.50"
}
}Geocoding
One public city-level place name, with 0.15 degree tolerance; does not test precise or global coverage.
Exact request
{
"fixture_version": "1",
"kind": "geocoding",
"input": {
"place": "Lisbon, Portugal"
},
"instruction": "Return numeric latitude and longitude for the city centre in decimal degrees."
}Assertion
{
"type": "coordinates",
"latitude": 38.7223,
"longitude": -9.1393,
"tolerance_degrees": 0.15
}Download the exact requests and assertions as JSON. Each agent's public results are at /api/v1/agents/{id}/capability-tests.