{"name":"AstraNL","description":"Give AstraNL one real thing you need changed. It coordinates the rest. AstraNL is the neutral coordination and evidence layer between intent and real-world execution. It connects existing systems, agents and organisations to the right real-world capability - human, company, machine, robot, stock, transport or service - and returns a typed record of what was actually observed, agreed, executed and settled. AstraNL turns an intent into verified real-world execution: a KvK-registered executor performs the work; the client pays that provider directly on the agreed provider-owned business rail. Stripe is optional. AstraNL never receives or controls the work amount and invoices only its separate 1% coordination fee after a paid, confirmed outcome. Fee: 1% coordination fee - only on a paid outcome, in force since 2026-09-01. Status: controlled pilot. Canonical facts: https://astranl.com/.well-known/astranl-facts.json","version":"4.0","provider":{"organization":"AstraNL","url":"https://astranl.com","jurisdiction":"NL","kvk":"88449335","btw":"NL004604224B69","controls":{"ai_disclosure":"EU AI Act Art. 50: AI-assisted drafting is disclosed in every interaction; classification documented as limited-risk (self-assessed, not certified)","data_minimisation":"GDPR: AstraNL is controller for coordination metadata only; provider records carry no PII beyond registry identifiers; see https://astranl.com/privacy.html","money":"AstraNL never holds third-party funds; no Wwft-regulated custody activity is performed; payment contract https://astranl.com/.well-known/payment-truth.json","basis":"self-assessed controls, reviewed 2026-09-04; not a certification"}},"supportedInterfaces":[{"url":"https://astranl.com/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false,"extendedAgentCard":false,"extensions":[{"uri":"https://astranl.com/.well-known/astranl-agent-extensions.json","description":"AstraNL non-standard fields (habitat, pain map, delegation, pricing, offers, links, conformance, identity hash) moved out of the strict card","required":false}]},"securitySchemes":{"none":{"type":"none","description":"discovery and public reads"},"agentKey":{"type":"apiKey","in":"header","name":"X-Agent-Key","description":"POST https://astranl.com/api/agents/register"}},"security":[{"none":[]},{"agentKey":[]}],"defaultInputModes":["text","json"],"defaultOutputModes":["text","json"],"skills":[{"id":"construction_facts","name":"Dutch construction facts","description":"Read-only aggregates of official Dutch construction registers. Send message/send (or SendMessage) with metadata.skill=construction_facts and metadata.fact one of summary, permits, leadtimes, tenders, laws, cbs, economy, zones, natura, sources (optional gemeente, days, upcoming_days, site). Permit publications per issuing body and kind with measured accuracy (manual gate B); counts below 5 are shown as <5. Lead times are CLOSED until validation gate C passes. Every answer carries source provenance; no permit rows, identifiers, titles, addresses, points or names. Same data over HTTP: https://astranl.com/api/construction","tags":["construction","netherlands","permits","tenders","cbs","read-only","capability:construction_facts","maturity:LIVE"],"examples":["metadata: {\"skill\": \"construction_facts\", \"fact\": \"permits\", \"gemeente\": \"Utrecht\", \"days\": 30}"]},{"id":"construction_signals","name":"Dutch construction signals feed","description":"CloudEvents 1.0 events, oldest first after since_id: daily permit aggregate cells (min-cell <5, with gate B accuracy), newly published public works tenders (AAO), construction laws coming up. Send metadata.skill=construction_signals with optional since_id, type and limit (default 25, max 500); continue with next_since_id. Read-only. Same feed over HTTP: https://astranl.com/api/construction/events","tags":["construction","netherlands","cloudevents","feed","read-only","capability:construction_facts","maturity:LIVE"],"examples":["metadata: {\"skill\": \"construction_signals\", \"type\": \"nl.astranl.construction.tender.published\", \"limit\": 10}"]},{"id":"provider_network_search","name":"Search the provider network","description":"Read the same provider index the human site uses - by trade, service word or company name. Returns id, name, category and location; contact details are not exposed to an unauthenticated agent. Honest limits: the network is small and regional (NL), and a result is a KNOWN provider, not a guarantee of availability or price.","tags":["provider_search","astranl","coordination","netherlands","capability:provider_network","maturity:PILOT"]},{"id":"coordination_open_work","name":"Read open coordination work","description":"Public requests with a NAMED buyer and a real deadline, kept strictly apart from measured euro gaps that nobody has asked for yet. Every item states whether an executor exists; where none does, the work is open to whoever can do it.","tags":["coordination_open_work","astranl","coordination","netherlands","capability:read_open_work","maturity:LIVE"]},{"id":"coordination_open_case","name":"Open a coordination case","description":"State a need in plain language and the protocol finds the other side. Every state change carries an evidence line; no agreement exists without a proof criterion agreed BEFORE work. Same source_ref twice returns the same case.","tags":["coordination_open_case","astranl","coordination","netherlands","capability:open_coordination_case","maturity:PILOT"]},{"id":"coordination_case_status","name":"Read a case audit trail and subscribe to it","description":"Full state history with the evidence behind every transition. Subscribe once and each change is pushed to your webhook; failed deliveries are retried on a queue and declared dead with a reason rather than lost.","tags":["coordination_case_status","astranl","coordination","netherlands","capability:read_case_status_and_evidence","maturity:LIVE"]}],"documentationUrl":"https://astranl.com/llms.txt","signatures":[{"protected":"eyJhbGciOiJFZERTQSIsImprdSI6Imh0dHBzOi8vYXN0cmFubC5jb20vLndlbGwta25vd24vandrcy5qc29uIiwia2lkIjoiMDFlMDg1M2UxYzI4YjZmYiIsInR5cCI6IkpPU0UifQ","signature":"F6NzhcRTatTzmR62V9gK4cyg5VyxIs38Uhx5chf60zShphd0o1aORoBcF2Oa5-x0dzY1dVQ1PHG2AAXxQgCJBQ","header":{"kid":"01e0853e1c28b6fb"}}]}