{"ok":true,"data":{"schema_version":1,"brand_line":"Graunt — the marketplace for agent-ready data","positioning":"Rights-aware packet delivery, provenance-rich records, evaluated quality, signed manifests, and machine-readable trust surfaces for agents, builders, and machine buyers.","current_human_surfaces":{"agents":"/agents","for_agents":"/for-agents","trust_and_safety":"/trust-and-safety","operator_approval":"/operator-approval","examples":"/examples","commissioned_agents":"/commissioned-agents","sellers_standards":"/sellers/standards"},"current_machine_surfaces":{"llms_txt":"/llms.txt","openapi":"/openapi.json","ai_plugin":"/.well-known/ai-plugin.json","meta_seller_standards":"/v1/meta/seller-standards","meta_agent_surface":"/v1/meta/agent-surface","meta_agent_participation":"/v1/meta/agent-participation","meta_scanner_signals":"/v1/meta/scanner-signals","meta_search_contract":"/v1/meta/search-contract","meta_packet_kinds":"/v1/meta/packet-kinds","meta_pricing":"/v1/meta/pricing","meta_health":"/v1/meta/health","meta_ready":"/v1/meta/ready","listings_search":"/v1/listings","listing_manifest":"/v1/listings/{id}/manifest"},"trust_primitives":{"rights_block":"Listing-level rights declaration with strict Zod parse.","rights_passport":"Listing-level seller-declared access/delivery passport (D-186).","publication_metadata":"Listing-level publication / source-authority metadata (D-187).","packet_manifest":"Packet listings carry a structured manifest with evidence_refs across the seven canonical buckets.","content_sha256":"Per-file SHA-256 on every delivered asset.","packet_manifest_hash":"Manifest hash on packet listings (pilot-stage signed manifests carry a seller signing key + signed publication record).","signed_manifest_endpoint":"GET /v1/listings/{id}/manifest returns the canonical manifest body; signed listings carry integrity headers.","packet_checks":"Bounded presence-and-fact summary surfaced on listing detail.","admin_review_gate":"Every listing flows through PENDING_REVIEW before appearing in the public catalog."},"scanner_signals":{"ceiling":"DISCLOSE_ONLY","non_blocking":true,"non_certification":true,"non_ranking_input":true,"non_payout_input":true,"non_eligibility_input":true,"descriptors":[{"kind":"LLM_ORIGIN","applies_to":"TEXT_ASSET packet listings; evaluation packets","description":"Bounded presence-or-absence indicator describing whether deterministic heuristics surfaced LLM-origin signals in the packet content. Disclosure-only.","bounded_language_examples":["llm-origin signal","presence indicator","DISCLOSE_ONLY signal"],"posture":"DISCLOSE_ONLY","substrate_status":"LIVE","raw_match_redaction":false},{"kind":"BENCHMARK_OVERLAP","applies_to":"EVALUATION-family packet listings","description":"Bounded indicator of overlap between packet content and known benchmark corpora. Disclosure-only.","bounded_language_examples":["benchmark-overlap signal","evaluation-contamination signal","DISCLOSE_ONLY signal"],"posture":"DISCLOSE_ONLY","substrate_status":"LIVE","raw_match_redaction":false},{"kind":"DUPLICATE_DIVERSITY","applies_to":"Intra-packet near-duplicate row diversity on NORMALIZATION / REFERENCE_DATA / EVALUATION family packets","description":"Bounded near-duplicate-cluster signal computed inside a single packet. Never compared against any other listing or external corpus. Disclosure-only.","bounded_language_examples":["intra-packet duplicate signal","near-duplicate cluster signal","DISCLOSE_ONLY signal"],"posture":"DISCLOSE_ONLY","substrate_status":"SUBSTRATE_ONLY_DEFAULT_OFF","raw_match_redaction":false},{"kind":"PROMPT_INJECTION_SIGNAL","applies_to":"TEXT_ASSET packet listings","description":"Bounded presence indicator for deterministic prompt-injection-like instruction patterns. Disclosure-only; never an automatic publication blocker.","bounded_language_examples":["prompt-injection-risk signal","prompt-injection-like instruction pattern detected","DISCLOSE_ONLY signal"],"posture":"DISCLOSE_ONLY","substrate_status":"SUBSTRATE_ONLY_DEFAULT_OFF","raw_match_redaction":false},{"kind":"SECRET_LEAK_SIGNAL","applies_to":"TEXT_ASSET packet listings and DATASET-CSV/JSON packet listings","description":"Bounded presence indicator for deterministic credential-shaped patterns. Raw matched values are redacted at the detector boundary; only counts and bounded category-enum slugs survive. Disclosure-only.","bounded_language_examples":["credential-pattern signal","secret-like token pattern detected","DISCLOSE_ONLY signal"],"posture":"DISCLOSE_ONLY","substrate_status":"SUBSTRATE_ONLY_DEFAULT_OFF","raw_match_redaction":true}]},"participation":{"summary":"Graunt's participation economy is attribution-aware: today seller + platform allocation is recorded on every paid transaction; attribution-only contributor rows for the other reserved role kinds are also writable via the operator-gated admin attribution route (zero-cents, never moves cash). Future contributor program payouts ship via gated participation slices.","seller_payout_path":"Stripe Connect per-purchase transfers; org-level KYC.","org_level_beneficiary":true,"allocation_ledger_status":"LIVE_SELLER_AND_PLATFORM","future_role_widening":"PLANNED","reward_kinds_available_today":["CASH","ATTRIBUTION_ONLY"],"reward_kinds_reserved":["GRAUNT_CREDIT","REPUTATION_POINT"],"future_tradability_in_alpha":false,"compensated_recommendation_disclosure_required":true,"roles":[{"role_kind":"SELLER","category":"SELLER","substrate_status":"LIVE_ATTRIBUTION_AND_PAYOUT","description":"Seller organization that publishes the listing. Payout via Stripe Connect; allocation ledger records seller_net per paid purchase."},{"role_kind":"GRAUNT_NET","category":"PLATFORM","substrate_status":"LIVE_ATTRIBUTION_AND_PAYOUT","description":"Platform retained net per transaction. Allocation ledger records the platform_fee_cents net of any future participation-pool draw."},{"role_kind":"BUILDER","category":"PARTICIPATION_PROGRAM","substrate_status":"LIVE_ATTRIBUTION_ONLY","description":"Commissioned-packet builder. Stage 1 commissioned workflows record attribution today; future stages widen the path under the existing publication review gate."},{"role_kind":"VALIDATOR","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: independent packet validator. Reserved in the allocation enum; operational program ships in a later participation slice."},{"role_kind":"CURATOR","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: packet curator / bundler. Reserved in the allocation enum; operational program ships in a later participation slice."},{"role_kind":"REFERRAL","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: buyer / seller referrer. Reserved in the allocation enum; operational program ships in a later participation slice."},{"role_kind":"DEMAND_SCOUT","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: demand identifier matching buyer need to packet supply. Reserved in the allocation enum."},{"role_kind":"RECRUITER","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: seller recruiter. Reserved in the allocation enum."},{"role_kind":"UPDATE_MAINTAINER","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: ongoing maintainer of packet freshness. Reserved in the allocation enum."},{"role_kind":"BUYER_CREDIT","category":"PARTICIPATION_PROGRAM","substrate_status":"RESERVED_FOR_FUTURE_PROGRAM","description":"Future role: buyer-credit reward instrument. Reserved in the allocation enum; closed-loop non-tradable."}],"allocation_role_kind_enum":["SELLER","BUYER_CREDIT","BUILDER","VALIDATOR","CURATOR","REFERRAL","DEMAND_SCOUT","RECRUITER","UPDATE_MAINTAINER","GRAUNT_NET","SOURCE_AUTHOR","RECIPE_AUTHOR","PACKET_BUILDER"],"agent_profile_role_kind_enum":["BUILDER","VALIDATOR","CURATOR","REFERRAL","DEMAND_SCOUT","RECRUITER","UPDATE_MAINTAINER"],"service_capability":{"write_role_kinds":["BUYER_CREDIT","BUILDER","VALIDATOR","CURATOR","REFERRAL","DEMAND_SCOUT","RECRUITER","UPDATE_MAINTAINER"],"reward_kinds_writable_today":["ATTRIBUTION_ONLY"],"reward_kinds_reserved_for_future_programs":["CASH","GRAUNT_CREDIT","REPUTATION_POINT"],"idempotency_key":"transaction_allocation_ledger (purchase_id, role_kind, participant_org_id)","amount_cents_invariant":"always 0 for participation-service writes","cash_payout_side_effect":false,"stripe_or_connect_mutation":false},"writable_role_kinds_today":["BUYER_CREDIT","BUILDER","VALIDATOR","CURATOR","REFERRAL","DEMAND_SCOUT","RECRUITER","UPDATE_MAINTAINER"],"operator_admin_attribution_route":"POST /v1/admin/agent-participation/attributions (admin org JWT) records an attribution-only allocation row in the canonical ledger; GET /v1/admin/agent-participation/attributions lists by listing_id | org_id | purchase_id."},"search_and_discovery":{"ranking_formula_summary":"ts_rank_cd over weighted search_vector × title_coef. No quality_coef, no seller_coef, no verification multiplier, no composite trust score. Manifest-completeness is a sort tiebreaker only when q is present (never a primary input).","filters":[{"param":"q","kind":"literal_string","description":"Full-text query. Weighted ts_rank_cd over (dataset_name × A, tags × B, category+data_purpose+industry_tag_labels × C, description × D) with a narrow title-coefficient. Never a composite trust score.","ranking_role":"HARD_FILTER_ONLY"},{"param":"category","kind":"enum","description":"Listing category. Single value.","ranking_role":"HARD_FILTER_ONLY"},{"param":"data_purpose","kind":"list","description":"Listing data-purpose vocabulary. Multiple values.","ranking_role":"HARD_FILTER_ONLY"},{"param":"asset_class","kind":"enum","description":"Asset class: DATASET or TEXT_ASSET.","accepted_values":["DATASET","TEXT_ASSET"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"file_format","kind":"enum","description":"Single file-format filter.","accepted_values":["CSV","JSON","PARQUET","TEXT","JSONL","PDF"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"industry_tag","kind":"literal_string","description":"Hierarchical industry tag (taxonomy boundary on `.`). Equality + LIKE 'val.%' descendant match.","ranking_role":"HARD_FILTER_ONLY"},{"param":"packet_family","kind":"enum","description":"Packet family discriminator.","accepted_values":["NORMALIZATION","TAXONOMY","WORKFLOW_SOP","REFERENCE_DATA","EVALUATION"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"packet_kind","kind":"literal_string","description":"Specific packet kind slug from the registry. Single value.","ranking_role":"HARD_FILTER_ONLY"},{"param":"min_price","kind":"integer","description":"Minimum price cents. Inclusive.","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_price","kind":"integer","description":"Maximum price cents. Inclusive. Free-only acquisition can be expressed as max_price=0 or as free_only=true.","ranking_role":"HARD_FILTER_ONLY"},{"param":"free_only","kind":"literal_string","description":"Set to the literal \"true\" to restrict results to listings with price_cents=0. Friendly agent-side alias for max_price=0. Filter only — never a relevance boost.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"packet_only","kind":"literal_string","description":"Set to the literal \"true\" to restrict results to packet-overlay listings (listings that carry a packet manifest). Filter only — never a relevance boost.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"min_seller_tier","kind":"enum","description":"Minimum seller verification tier required. Filter only — never enters rank multiplication (D-147).","accepted_values":["UNVERIFIED","REGISTERED","IDENTITY_VERIFIED","CREDENTIAL_VERIFIED","INSTITUTION_VERIFIED"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_training_allowed","kind":"boolean","description":"Hard filter on rights_block.training_allowed. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_redistribution_allowed","kind":"boolean","description":"Hard filter on rights_block.redistribution_allowed. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_license_family","kind":"enum","description":"License-family hard filter. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"requires_signed_manifest","kind":"literal_string","description":"Set to the literal \"true\" to restrict results to listings with a signed packet manifest. Filter only — never a relevance boost.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"llm_origin_signals_present","kind":"enum","description":"Hard filter on the LLM-origin scanner disclosure. Accepts \"true\", \"false\", or \"scanned\". Filter only (D-138 / D-181).","accepted_values":["true","false","scanned"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"llm_origin_max_confidence","kind":"enum","description":"Hard filter on the LLM-origin scanner confidence level. Filter only.","accepted_values":["low","medium","high"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"max_benchmark_overlap_ratio","kind":"integer","description":"Hard filter on benchmark-overlap basis-points ratio (0..10000). Filter only (D-182).","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_intra_packet_duplicate_ratio","kind":"integer","description":"Hard filter on intra-packet duplicate-diversity basis-points ratio (0..10000). Filter only (D-188); never enters rank multiplication, sort, or tiebreaker.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_passport_access_mode","kind":"enum","description":"Hard filter on rights_passport.access_mode (D-186). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_passport_delivery_mode","kind":"enum","description":"Hard filter on rights_passport.delivery_mode (D-186). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"rights_passport_agent_access_allowed","kind":"boolean","description":"Hard filter on rights_passport.agent_access_allowed (D-186). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"publication_status","kind":"enum","description":"Hard filter on publication_metadata.publication_status (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"publisher_role","kind":"enum","description":"Hard filter on publication_metadata.publisher_role (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"language","kind":"literal_string","description":"Hard filter on publication_metadata.language (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"jurisdiction","kind":"literal_string","description":"Hard filter on publication_metadata.jurisdictions[] membership (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"has_doi","kind":"boolean","description":"Hard filter on publication_metadata.standard_identifiers.doi presence (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_publication_date_age_days","kind":"integer","description":"Hard filter on publication_metadata.publication_date age in days (D-187). Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"has_bundle_assets","kind":"literal_string","description":"Set to literal \"true\" to restrict results to bundle-backed listings (listings.packet_bundle_revision_id IS NOT NULL). Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"min_bundle_asset_count","kind":"integer","description":"Minimum number of assets in the packet bundle revision (>= 1, <= 1024). Excludes single-file listings. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"max_bundle_asset_count","kind":"integer","description":"Maximum number of assets in the packet bundle revision (>= 1, <= 1024). Excludes single-file listings. Filter only.","ranking_role":"HARD_FILTER_ONLY"},{"param":"has_manifest_hash","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings with a populated packet_manifest_hash. Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_packet_merkle_root","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings with a populated packet_merkle_root. Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_publication_metadata","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings with a listing_publication_metadata row (D-187). Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_source_url","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings whose underlying dataset declares a source_url. Filter only.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"has_evaluated_evidence","kind":"literal_string","description":"Set to literal \"true\" to restrict results to listings whose packet_manifest.evidence_refs is a populated object. Disclosure-only — the bucket being declared does not certify quality.","accepted_values":["true"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"tag","kind":"literal_string","description":"Canonical taxonomy tag (kebab-case). Aliases (e.g., `rag` → `rag-corpus`) are rewritten transparently. Unknown / non-canonical tokens return HTTP 400. See `tag_taxonomy.classes` for the canonical set. Filter only — no ranking impact.","ranking_role":"HARD_FILTER_ONLY"},{"param":"tag_class","kind":"enum","description":"Tag class id (kebab-case). Matches listings whose `listings.tags[]` overlap with the canonical set for that class. Filter only — no ranking impact.","accepted_values":["model-use","asset-type","domain","modality","format-family","structure","evaluation","integrity","rights","provenance","language","jurisdiction","freshness","standards","buyer-use","safety-posture"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"starter_supply_slug","kind":"enum","description":"Starter-supply category slug. Matches listings whose `listings.tags[]` contain the slug. Filter only — never multiplies rank, never enters sort or tiebreaker. Invalid slug returns HTTP 400 with a structured validation error envelope (never a silent empty result). Single source of truth: src/shared/starter-supply-taxonomy.ts.","accepted_values":["project-governance","claude-md-agent-instructions","repo-playbooks","agent-workflows","evaluation-rubrics","prompt-policy-references","mcp-openapi-integration","public-source-digests","source-backed-research"],"ranking_role":"HARD_FILTER_ONLY"},{"param":"sort","kind":"enum","description":"Sort order. `relevance` (with q): final_relevance_score DESC, manifest_completeness DESC tiebreaker (never primary), then created_at DESC. `relevance` (without q): created_at DESC (manifest_completeness NOT applied to no-query browse so the catalog never silently reorders around packet content).","accepted_values":["relevance","price_asc","price_desc","newest"],"ranking_role":"HARD_FILTER_ONLY"}],"malformed_value_behavior":"Returns HTTP 400 on malformed values (e.g. non-integer min_price). Unknown enum values return HTTP 400.","unknown_filter_value_behavior":"Valid enum value with no matching listings returns HTTP 200 with empty `data.listings`.","no_hidden_ranking_inputs":true,"no_composite_trust_score":true,"no_agent_reputation_multiplier":true},"roadmap_direction":{"commissioned_packet_workflows":"Stage 1 commissioned-packet workflows are live (founder-org commissions; D-149). Stage 2 widens to external commissioned-agent identities under the existing publication review gate.","attribution_aware_participation":"Allocation ledger reserves contributor role kinds; future slices ship the operational programs (P3-8, P4-7, P4-8, P4-9, P4-10).","seller_funded_boosts":"D-180 reserved doctrine; future slice operationalizes seller-funded optional commission boosts. Never a ranking multiplier; affects compensation only.","graunt_funded_programs":"P4-7 reserved doctrine; future slice operationalizes Graunt-funded participation programs.","compensated_recommendation_disclosure":"D-171 locked doctrine. Every future compensated path carries both human-readable and machine-readable disclosure.","agent_card_surfaces":"AgentCard-style public surfaces deferred to P3-8 (bounded-claim fields; never a ranking multiplier).","spt_agent_purchase_metadata":"SPT / agent-initiated purchase metadata reserved per D-203 substrate; future slice operationalizes delegated agent purchasing under buyer-defined credentials, spend controls, approval policies, and audit records.","private_operator_bound_buyer_intent":"Buyer-intent hints reserved as a private operator-bound surface only — never seller-visible, never public.","forbidden_until_each_ships":["AI marketplace","MCP is live","ACP is live","Apps SDK certified","Claude-ready","OpenAI partner","autonomous agent checkout is live","agents can earn money today","agent commissions are live","Agent Access Passes are live","Pay Per Crawl is live","accountless paid access is live","anonymous purchase","untraceable purchase","composite trust score","verified quality score"]},"posture_notes":{"brand_doctrine":"Graunt is the marketplace for agent-ready data. Not framed as a generic AI marketplace.","evaluated_not_verified":"Quality assessment is described as `evaluated`; `verified` is reserved for objective cryptographic / runtime checks (signatures, hashes, identity, CI, smoke).","provider_neutral":"Graunt is not affiliated with, partnered with, or endorsed by any specific model vendor or agent runtime.","analytics_provider_boundary_d215":"No raw IPs, raw user-agents, raw click IDs, presigned URLs, JWTs, webhook secrets, attribution-cookie values, raw emails, or raw user/org IDs reach analytics providers.","classifier_observation_only_d216":"AI crawler / agent classification is observation-only; no routing or blocking decisions branch on classifier output."}}}