{"protocolVersion":"0.3.0","name":"Place & Space Directory","description":"An AI-First public directory of organisations built on the F-ACT open trust protocol. Query Presences by category and self-declared conformance tier, match buyer intent to seller offers, verify the provenance receipt, and send a warm lead to a business — all over open REST APIs.","url":"https://spaceplace.abacusai.app/api/agents","preferredTransport":"REST","version":"1.0.0","provider":{"organization":"Place & Space","url":"https://spaceplace.abacusai.app"},"documentationUrl":"https://spaceplace.abacusai.app/llms.txt","iconUrl":"https://spaceplace.abacusai.app/favicon.ico","capabilities":{"streaming":true,"pushNotifications":false,"stateTransitionHistory":false},"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","text/plain"],"skills":[{"id":"neighbourhood-concierge","name":"Triage a need and match providers","description":"Describe ANY service or purchase need in free text. The concierge classifies the category, service types and urgency, returns diagnostic questions and a buyer checklist, then ranks accountable providers trust-first (verified + GUARD level), each with its own RFQ endpoint. Indicative and non-binding; no dispatch, booking or payment occurs.","tags":["concierge","triage","matching","discovery","intent"],"examples":["Find an accountant for a small business tax return","A lawyer for a contract dispute in 2000","Urgent burst pipe under the kitchen sink"]},{"id":"search-directory","name":"Search the directory","description":"Find organisations by free-text query, service category, conformance tier or domain-verified status. Returns Presences with their self-declared GUARD level and verify links.","tags":["discovery","search","directory","registry"],"examples":["Find domain-verified legal firms","List GUARD 2 organisations in energy"]},{"id":"search-offers","name":"Match buyer intent to offers","description":"Search operator-declared services and offers across every Presence by text, kind and indicative maximum price. Each result carries the seller enquiry endpoint so a lead can be sent. Prices are indicative only, never binding quotes.","tags":["commerce","offers","matching","intent"],"examples":["Find emergency leak repair under $250","Who offers annual compliance packages?"]},{"id":"list-agent-cards","name":"List Presence AgentCards","description":"Curated A2A registry query: list per-organisation AgentCards, filterable by query, category and conformance tier, so an agent can discover an individual Presence and its own card and skills.","tags":["discovery","a2a","registry","agent-card"],"examples":["List AgentCards for hospitality Presences"]},{"id":"verify-presence","name":"Verify a conformance receipt","description":"Check the integrity of a hash-linked provenance receipt before relying on its self-declared tier.","tags":["trust","verify","provenance"],"examples":["Verify the receipt for a given Presence id"]},{"id":"submit-enquiry","name":"Send a warm lead","description":"Submit an enquiry to a business on behalf of a buyer. Creates a captured lead (attributed to source=AI_AGENT) — not a booking, price agreement or payment.","tags":["commerce","enquiry","lead"],"examples":["Send a quote request to a plumber for an urgent job"]}],"securitySchemes":{},"security":[],"x-placeSpace":{"note":"A2A-compatible discovery card. Place & Space exposes its capabilities over CORS-enabled REST endpoints (listed in x-placeSpace.endpoints); it does not run the full A2A JSON-RPC transport. Conformance tiers are self-declared Self-declared data, not third-party certification. An enquiry creates a lead — not a booking, price agreement or payment.","role":"curated-registry","endpoints":{"manifest":{"method":"GET","url":"https://spaceplace.abacusai.app/api/public/manifest","note":"One index of every agent-facing endpoint — fetch this first."},"concierge":{"method":"GET / POST","url":"https://spaceplace.abacusai.app/api/agents/concierge","body":"need (required); postcode, minGuard, category (optional)","note":"Triage ANY need → trust-ranked accountable providers, each with an RFQ endpoint. GET for the request schema + category list. Indicative, non-binding."},"searchDirectory":{"method":"GET","url":"https://spaceplace.abacusai.app/api/public/registry","params":"q, tier, domain, verified, limit, offset"},"searchOffers":{"method":"GET","url":"https://spaceplace.abacusai.app/api/public/offers","params":"q, kind, category, maxPrice, limit, offset"},"listAgentCards":{"method":"GET","url":"https://spaceplace.abacusai.app/api/agents","params":"q, category, tier, limit, offset"},"agentCard":{"method":"GET","url":"https://spaceplace.abacusai.app/api/agents/{id}"},"verifyPresence":{"method":"GET","url":"https://spaceplace.abacusai.app/api/public/verify/{id}"},"conformanceCredential":{"method":"GET","url":"https://spaceplace.abacusai.app/api/public/verify/{id}/credential","note":"W3C VC-data-model-shaped conformance record (unsigned; self-declared)."},"batchCredentials":{"method":"GET / POST","url":"https://spaceplace.abacusai.app/api/public/credentials","params":"ids=a,b,c (or POST { ids: [...] }, up to 100)","note":"Many VC-shaped conformance records in one call."},"trustList":{"method":"GET","url":"https://spaceplace.abacusai.app/api/public/trust-list","params":"tier, verified, minGuard, limit, offset"},"submitEnquiry":{"method":"POST","url":"https://spaceplace.abacusai.app/api/entities/{id}/enquire","body":"name, email, message (required); phone, service, budget, source=AI_AGENT, actorAgent (optional)"},"quote":{"method":"POST","url":"https://spaceplace.abacusai.app/api/entities/{id}/quote","note":"AP2 Intent Mandate → one Presence’s indicative draft quote + unsigned Cart-Mandate shape. GET for schema. Not binding, not a payment."},"broadcastQuote":{"method":"POST","url":"https://spaceplace.abacusai.app/api/public/agentic-quote","note":"One Intent Mandate → ranked indicative quotes from every matching seller. GET for schema. Not binding, not a payment."},"openRfq":{"method":"POST","url":"https://spaceplace.abacusai.app/api/entities/{id}/rfq","note":"Open a persistent, pollable Request-for-Quote. Returns reference + accessToken + pollUrl + receiptUrl. Indicative, non-binding."},"pollRfq":{"method":"GET","url":"https://spaceplace.abacusai.app/api/rfq/{reference}?token={accessToken}","note":"Poll RFQ status + the seller’s firm indicative response. Token-gated."},"withdrawRfq":{"method":"POST / DELETE","url":"https://spaceplace.abacusai.app/api/rfq/{reference}?token={accessToken}","note":"Withdraw an open RFQ ({ action: \"withdraw\", reason?: string }). Appends an auditable record to the provenance ledger."},"rfqTracking":{"method":"GET","url":"https://spaceplace.abacusai.app/rfq/{reference}?token={accessToken}","note":"Human-facing web tracking page for buyers to inspect quotes, scope and status online."},"rfqReceipt":{"method":"GET","url":"https://spaceplace.abacusai.app/api/rfq/{reference}/receipt?token={accessToken}","note":"W3C VC-shaped FactEnquiryReceipt (unsigned) acknowledging the request. Token-gated."}}}}