Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://special-chimney-41.authkit.app
Changed the definition of "trooth_ai_data_use_disclosures", "trooth_ask", "trooth_compare_companies" and 5 more
before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}Authorization not required, issuer https://special-chimney-41.authkit.app
Authorization not required, issuer https://special-chimney-41.authkit.app
Changed the definition of "trooth_ai_data_use_disclosures", "trooth_ask", "trooth_compare_companies" and 5 more
before
—after
Read a company's published AI and data-use declarationsbefore
—after
Ask about Trooth (the Trooth Network, what a record carries, pricing, methodology)Added "trooth_compare_companies" and "trooth_search_companies"; changed the definition of "trooth_ai_data_use_disclosures", "trooth_ask", "trooth_my_company_record" and 3 more (6 tools before, 8 now)
⟨163 unchanged words⟩ private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on ⟨518 unchanged words⟩ null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":
Authorization not required, issuer https://special-chimney-41.authkit.app
Changed the definition of "trooth_my_company_record"
Needs an OAuth access tokenwith theforrecords:readthisscopeserver from the authorization serverthis server'sits protected-resource metadatanames;names, for a person who has signed in to trooth.co; no scope is required, and every other tool here needsnone.no token. Reads the company record of the Trooth workspace ⟨36 unchanged words⟩
Changed the definition of "trooth_ai_data_use_disclosures", "trooth_ask", "trooth_my_company_record" and 3 more
⟨400 unchanged words⟩ {"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]}, ⟨142 unchanged words⟩ witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string", ⟨352 unchanged words⟩
Added "trooth_ai_data_use_disclosures" and "trooth_my_company_record"; changed the definition of "trooth_ask", "trooth_outside_in_read", "trooth_public_trust_profile" and 1 more (4 tools before, 6 now)
⟨163 unchanged words⟩ private).","type":"string"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"
Changed the definition of "trooth_ask", "trooth_outside_in_read", "trooth_public_trust_profile" and 1 more
⟨2 unchanged words⟩ {"description":"A question about Trooth","maxLength":500,"type":"string"}},"required":["question ⟨2 unchanged words⟩
⟨21 unchanged words⟩ and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"
Changed the definition of "trooth_ask", "trooth_outside_in_read", "trooth_public_trust_profile" and 1 more
⟨38 unchanged words⟩ private).","type":"string"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"covers":{"type":"string"},"key_id":{"type":"string"},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"provenance":{"description":"
Changed the definition of "trooth_outside_in_read"
Fetch https://<domain>/ and /.well-known/security.txt once,at the moment of thewhencallcalled, from Trooth's server,and report whether HTTPS answered, which of ⟨9 unchanged words⟩ policy) are present, and whether security.txt ispublished.published, absent or unread. IP literals and names resolving to private, ⟨24 unchanged words⟩
Changed the definition of "trooth_ask", "trooth_outside_in_read", "trooth_public_trust_profile" and 1 more
AskAnswer a question about Trooth itself:(what the Trooth Network is, what one company record carries,whypricing,ahowcompanywitnessingneedsworks)one,frompricingTrooth's(free)fixed
Changed the definition of "trooth_ask"
Ask about Trooth itself:(productswhat the Trooth Network is,pricingwhat one company record carries,methodologywhy a company needs one, pricing (free), and how witnessingworks).works. The Trooth Network is Trooth's only product. Answers come from Trooth's curated knowledge base.
⟨7 unchanged words⟩ ":true,"title":"Ask about Trooth (productsthe Trooth Network, what a record carries
Certificate recorded, valid to 2026-12-07
Authorization not required
First tool surface recorded: 4 tools (server version 1.1.0)
Showing the latest 18 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}after
{"description":"The typed form of every answer a tool completes. An answer with status bad_input (the arguments did not select anything to read) carries this record and isError: true. A call that fails partway answers isError: true with text only and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject has no published record (unclaimed or private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"outside_in":{"description":"trooth_outside_in_read only, with status observed: what this one read observed, field by field, the same observations as the summary. Each header and security.txt state is an observation of the response at read_at, not a grade; not_read means the request did not complete and nothing is asserted.","properties":{"headers":{"description":"Each of the five response headers checked on https://<host>/: present, absent, or not_read when the site did not answer.","properties":{"content_security_policy":{"enum":["present","absent","not_read"],"type":"string"},"referrer_policy":{"enum":["present","absent","not_read"],"type":"string"},"strict_transport_security":{"enum":["present","absent","not_read"],"type":"string"},"x_content_type_options":{"enum":["present","absent","not_read"],"type":"string"},"x_frame_options":{"enum":["present","absent","not_read"],"type":"string"}},"required":["strict_transport_security","content_security_policy","x_content_type_options","x_frame_options","referrer_policy"],"type":"object"},"host":{"description":"The host that was read.","type":"string"},"https":{"properties":{"answered":{"description":"true when https://<host>/ answered with a validated certificate.","type":"boolean"},"redirect_to":{"description":"Where a redirect pointed (not followed), or null.","type":["string","null"]},"status":{"description":"The HTTP status it answered, or null when it did not answer.","type":["integer","null"]}},"required":["answered","status","redirect_to"],"type":"object"},"read_at":{"description":"When the read was taken (UTC).","format":"date-time","type":"string"},"security_txt":{"properties":{"state":{"description":"published: answered 200 with a Contact field. present_without_contact: a file answered 200 with no Contact field. absent: 404 or 410. redirected: a redirect, not followed. not_read: the request did not complete or answered a status that says neither.","enum":["published","present_without_contact","absent","redirected","not_read"],"type":"string"},"status":{"description":"The HTTP status /.well-known/security.txt answered, or null.","type":["integer","null"]},"url":{"type":"string"}},"required":["state","status","url"],"type":"object"}},"required":["host","read_at","https","headers","security_txt"],"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is missing data, never a judgment about the subject. A read_failed means Trooth could not read its own record at this moment and asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this lookup.","enum":["published","listed","unclaimed","private","observed","valid","invalid","expired","revoked","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject":{"description":"The company, domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}before
—after
Compare companies' Trust Profiles side by sidebefore
—after
Read your own workspace's company record (sign-in required)before
—after
Live read of a domain's public security surfacebefore
—after
Read a company's complete Trust Profilebefore
—after
Search the Trooth Network for companiesbefore
—after
Check the signatures on a Trust Ledger Token⟨163 unchanged words⟩ private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on ⟨518 unchanged words⟩ null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. ⟨107 unchanged words⟩ own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading"," ⟨8 unchanged words⟩ ,"knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this ⟨197 unchanged words⟩
⟨163 unchanged words⟩ private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on ⟨518 unchanged words⟩ null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. ⟨107 unchanged words⟩ own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading"," ⟨8 unchanged words⟩ ,"knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this ⟨197 unchanged words⟩
⟨163 unchanged words⟩ private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on ⟨518 unchanged words⟩ null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. ⟨107 unchanged words⟩ own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading"," ⟨8 unchanged words⟩ ,"knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this ⟨197 unchanged words⟩
⟨7 unchanged words⟩ Trooth Network, given its domain or Troothslug. The identifier isslug, matched exactly (a URL is reduced to ⟨11 unchanged words⟩ share returns their candidates, not a pick. Returns its complete Trust Profile: every section with its state and who said it. A record is keyed by its domain and ⟨13 unchanged words⟩ belongs to. Returns a status and a provenancelabel; the company's own text is labeled as its own words.label. Read only.
⟨10 unchanged words⟩ ","maxLength":2048,"type":"string"},"detail":{"description":"full (default): the complete profile, section by section. summary: the short answer and where the record is.","enum":["full","summary"],"maxLength":7,"type":"string"},"sections":{"description":"Optional. Comma-separated section names to return, from: overview, identity, history, funding, product, pricing, stack, security, privacy, ai, hosting, infrastructure, procurement, relationships, proof, people, documents, evidence, cards, faq. Omit for every section.","maxLength":400,"type":"string"}},"required":["company"],"type":"object"}
⟨163 unchanged words⟩ private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on ⟨518 unchanged words⟩ null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. ⟨107 unchanged words⟩ own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading"," ⟨8 unchanged words⟩ ,"knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array
⟨6 unchanged words⟩ readOnlyHint":true,"title":"Read a company'srecord on thecompleteTroothTrustNetworkProfile"}
⟨163 unchanged words⟩ private).","type":"string"},"comparison":{"description":"trooth_compare_companies only: each company's status and, per section, each company's state and published rows side by side. A section one company left empty is not_published for that company and is never filled from another's.","properties":{"companies":{"items":{"type":"object"},"type":"array"},"sections":{"items":{"type":"object"},"type":"array"}},"required":["companies","sections"],"type":"object"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on ⟨518 unchanged words⟩ null"]}},"type":"object"},"profile":{"description":"trooth_public_trust_profile with detail full, on a published record: the complete Trust Profile (format trooth.company-profile.v1), every section in the page's order or the sections asked for. Each section has a state (published, not_published, hidden_by_company, unavailable, request_only), a provenance and a meaning: the sentence to use about it. not_published means the company published nothing there: say so and never fill it in. hidden_by_company carries no values. unavailable is a failed read on this load, not an empty section.","type":"object"},"provenance":{"description":"Where this answer came from. ⟨107 unchanged words⟩ own workspace, selected by the verified token's subject. network_records: trooth_search_companies and trooth_compare_companies, read from several published records; each entry carries its own standing and each section its own provenance.","enum":["own_workspace","witnessed_reading"," ⟨8 unchanged words⟩ ,"knowledge_base","input_error","self_declared","read_failed","network_records"],"type":"string"},"results":{"description":"trooth_search_companies only: the published records that match, in the Network's own order. standing is Witnessed, Self-published or Unavailable (the witnessed feed did not answer; not a statement about the company). select is the exact identifier trooth_public_trust_profile reads.","items":{"properties":{"industry":{"type":"string"},"name":{"type":"string"},"profile_url":{"type":"string"},"select":{"type":"string"},"standing":{"type":"string"},"tagline":{"type":"string"}},"required":["name","select","standing","industry","tagline","profile_url"],"type":"object"},"type":"array"},"source":{"description":"What this ⟨197 unchanged words⟩
Compare two to 4 companies on the Trooth Network section by section, named by their domains or Trooth slugs separated by commas: each section's state for each company and the rows it published, side by side, with who said them. sections narrows it, e.g. security,privacy,ai. A section a company left empty is shown as not published, never filled in from another. Nothing is weighed or ordered; each cell is the company's own record. Read only.
Search the companies published on the Trooth Network by name, domain, tagline or category, optionally within one industry. Returns up to 10 entries, each with its name and tagline in the company's own words, whether Trooth witnessed it, and the identifier that reads its record with trooth_public_trust_profile. No match is an honest absence on the Network, never a judgment about a company. Read only.
⟨400 unchanged words⟩ {"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]}, ⟨142 unchanged words⟩ witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string", ⟨352 unchanged words⟩
⟨400 unchanged words⟩ {"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]}, ⟨142 unchanged words⟩ witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string", ⟨352 unchanged words⟩
⟨400 unchanged words⟩ {"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]}, ⟨142 unchanged words⟩ witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string", ⟨352 unchanged words⟩
⟨400 unchanged words⟩ {"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]}, ⟨142 unchanged words⟩ witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string", ⟨352 unchanged words⟩
⟨400 unchanged words⟩ {"as_expected":{"type":"integer"},"identities_hold":{"description":"witness_statement only: true when read + not_read = in_reading and as_expected is not more than read. false means the published counts disagree with each other and are not presented as a consistent reading. null for result_tally.","type":["boolean","null"]},"in_reading":{"type":["integer","null"]}, ⟨142 unchanged words⟩ witnessStatement field of full_record.","properties":{"binding":{"description":"Whether the statement binds its interpretation. absent: a v1 statement, which binds no check mapping, evaluator version, subject scope or evidence manifest; that is a narrower statement, not a failed one. present: a v2 statement, which binds all four.","enum":["absent","present","unknown"],"type":"string"},"covers":{"type":"string"},"key_id":{"type":"string"},"mapping_digest":{"description":"v2 only: sha256 over the exact bytes of the check mapping the reading was interpreted under. Null for v1, never filled in after the fact.","type":["string","null"]},"read_at":{"type":["string", ⟨352 unchanged words⟩
⟨163 unchanged words⟩ private).","type":"string"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer ⟨140 unchanged words⟩ not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact" ⟨150 unchanged words⟩ returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed"], ⟨144 unchanged words⟩ ","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject": ⟨50 unchanged words⟩
⟨163 unchanged words⟩ private).","type":"string"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer ⟨140 unchanged words⟩ not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact" ⟨150 unchanged words⟩ returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed"], ⟨144 unchanged words⟩ ","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject": ⟨50 unchanged words⟩
⟨163 unchanged words⟩ private).","type":"string"},"disclosures":{"description":"trooth_ai_data_use_disclosures only, on a published record: the company's AI and data-use declarations exactly as published, and what Trooth has itself observed in the company's policies. A declaration is the company's statement. policy_observation.status not_observed means Trooth has not read a supporting clause; it is never evidence that the company does not train on customer data.","properties":{"declarations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"policy_location":{"description":"The privacy notice address the company published, when it published one. A pointer to the company's own text, not a reading of it.","type":["string","null"]},"policy_observation":{"properties":{"note":{"type":"string"},"observations":{"items":{"properties":{"key":{"type":"string"},"label":{"type":"string"},"origin":{"type":"string"},"value":{"type":"string"}},"required":["key","label","value","origin"],"type":"object"},"maxItems":20,"type":"array"},"status":{"enum":["observed","not_observed"],"type":"string"}},"required":["status","observations","note"],"type":"object"}},"required":["declarations","policy_observation","policy_location"],"type":"object"},"evidence":{"description":"Present on a published profile. What this answer ⟨140 unchanged words⟩ not signed.","type":"boolean"},"record_digest":{"description":"That version's digest, sha-256=<hex>, from Trooth-Record-Digest.","type":["string","null"]},"record_version":{"description":"The published version of the record this answer was read from, as /api/network/profile states it in Trooth-Record-Version. null when not stated; never guessed.","type":["integer","null"]},"schema":{"type":"string"},"signed_artifact" ⟨150 unchanged words⟩ returned; it meant any of the three above. own_workspace: trooth_my_company_record only, read from the caller's own workspace, selected by the verified token's subject.","enum":["own_workspace","witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence","withheld_by_owner","withheld_pending_review","knowledge_base","input_error","self_declared","read_failed"], ⟨144 unchanged words⟩ ","answered","out_of_scope","bad_input","unavailable","own_record","not_linked"],"type":"string"},"subject": ⟨50 unchanged words⟩
Read what one company on the Trooth Network has declared about AI and customer data: whether it trains models on customer data, whether AI is in the product, and which approaches. The company is named by its domain or its Trooth slug, matched exactly. Each row is the company's own declaration and is labeled so. Also says whether Trooth observed a supporting policy clause; not observed means Trooth has not read one, never that the company does not train on customer data. Read only.
Needs an OAuth access token with the records:read scope from the authorization server this server's protected-resource metadata names; every other tool here needs none. Reads the company record of the Trooth workspace the signed-in person belongs to: its name, its slug and the address of its public page. The workspace comes from the token's subject and never from an argument, so this tool takes no arguments. Read only.
⟨3 unchanged words⟩ ":"Domain to read, e.g. example.com","maxLength":2048,"type":"string"}},"required":["domain ⟨2 unchanged words⟩
⟨21 unchanged words⟩ and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject ⟨338 unchanged words⟩ ,"read_failed"],"type":"string"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this ⟨21 unchanged words⟩ domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}
⟨24 unchanged words⟩ to its host), never by a similarname. Returnsname; astatusname(published,severallistedcompanies share returns their candidates,privatenot a pick. A record is keyed by its domain and does not by itself say which legal entity,unclaimedsubsidiary orunavailable)product the domain belongs to. Returns a status and a provenance label;textthecompany wrotecompany'saboutownitselftext is labeled as its own words. Read only.
⟨4 unchanged words⟩ domain (e.g. acme.com) or Trooth slug","maxLength":2048,"type":"string"}},"required":["company ⟨2 unchanged words⟩
⟨21 unchanged words⟩ and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject ⟨338 unchanged words⟩ ,"read_failed"],"type":"string"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this ⟨21 unchanged words⟩ domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"
⟨8 unchanged words⟩ or tlt. form) or its JTI","maxLength":16384,"type":"string"}},"required":["token ⟨2 unchanged words⟩
⟨21 unchanged words⟩ and no structured record.","properties":{"answered_at":{"description":"When this server produced this answer (UTC, ISO 8601). It is not the date of the facts: that is source.as_of.","format":"date-time","type":"string"},"candidates":{"description":"trooth_public_trust_profile only, with status bad_input: a name several published companies share. No company was chosen; each entry's select is the exact identifier that reads that one company.","items":{"properties":{"domain":{"type":["string","null"]},"name":{"type":"string"},"select":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name","domain","select"],"type":"object"},"type":"array"},"citations":{"description":"trooth_ask only: the entries the answer was taken from, each with where it comes from and the date it was last checked or changed.","items":{"properties":{"checked":{"type":"string"},"id":{"type":"string"},"source":{"type":"string"}},"required":["id","source","checked"],"type":"object"},"type":"array"},"claim_url":{"description":"Present when the subject ⟨338 unchanged words⟩ ,"read_failed"],"type":"string"},"source":{"description":"What this answer was read from, which version of it, and the date that source itself carries. as_of is null when the source carries no date, never a guessed one.","properties":{"as_of":{"description":"The date the source carries for this answer: last witnessed, last read, the token's issue date, the entry's check date. Null when it carries none.","type":["string","null"]},"name":{"description":"The source read: the published record contract on trooth.co, the Trooth Network directory, a live read of the domain, the Trust Ledger, the capability registry or the knowledge base.","type":"string"},"version":{"description":"The source's version: the record contract, the registry or corpus version, or null when the source has none.","type":["string","null"]}},"required":["name","version","as_of"],"type":"object"},"status":{"description":"Machine-branchable outcome for this ⟨21 unchanged words⟩ domain or token this answer is about.","maxLength":2048,"type":"string"},"summary":{"description":"The same answer as the text content, for display. Bounded; a longer answer is cut and says where the rest is.","maxLength":8000,"type":"string"}},"required":["status","provenance","subject","summary","answered_at","source"],"type":"object"}
⟨38 unchanged words⟩ private).","type":"string"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"covers":{"type":"string"},"key_id":{"type":"string"},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is ⟨22 unchanged words⟩ asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above.","enum":["witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence", ⟨63 unchanged words⟩
⟨38 unchanged words⟩ private).","type":"string"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"covers":{"type":"string"},"key_id":{"type":"string"},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is ⟨22 unchanged words⟩ asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above.","enum":["witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence", ⟨63 unchanged words⟩
⟨37 unchanged words⟩ token matches. Trooth's signature covers the signing event,andnot thepayloadclaimatbytesissuance,and not the truth of theclaimsclaims; thetokenissuingcarries.company's signature covers the payload.
⟨38 unchanged words⟩ private).","type":"string"},"evidence":{"description":"Present on a published profile. What this answer is built from, what it leaves out, and where to get the rest. The summary is a summary: the typed facts with their provenance are in the record at full_record.","properties":{"counts":{"description":"The reading's counts, from the source named. witness_statement: read, as expected and not read in this reading. result_tally: an older reading's own tally, not a count of checks read.","properties":{"as_expected":{"type":"integer"},"in_reading":{"type":["integer","null"]},"not_read":{"type":["integer","null"]},"read":{"type":"integer"},"source":{"enum":["witness_statement","result_tally"],"type":"string"}},"type":["object","null"]},"facts_published":{"type":["integer","null"]},"full_record":{"description":"The canonical record as JSON, contract 2, with every typed fact, its provenance and its date where known.","type":"string"},"last_witnessed":{"type":["string","null"]},"omitted":{"description":"What the summary leaves out. Every item is in full_record.","items":{"type":"string"},"type":"array"},"profile_signed":{"description":"Always false. The profile is not signed.","type":"boolean"},"schema":{"type":"string"},"signed_artifact":{"description":"The one signed object behind this answer, or null when the reading carries none. It is served, byte for byte as signed, in the witnessStatement field of full_record.","properties":{"covers":{"type":"string"},"key_id":{"type":"string"},"read_at":{"type":["string","null"]},"type":{"type":"string"},"verify":{"type":"string"}},"type":["object","null"]}},"type":"object"},"provenance":{"description":"Where this answer came from. An honest_absence is ⟨22 unchanged words⟩ asserts nothing either way; retry rather than concluding. witnessed_reading: a published profile whose reading Trooth witnessed; the profile is not signed, and the one signed object is the reading's witness statement (see evidence.signed_artifact). connected_system_reads: read from systems the company connected. ledger_token_signatures: the result of checking a Trust Ledger Token's two signatures; the claims inside it stay the company's. witnessed_signed is DEPRECATED since 2026-09-26 and no longer returned; it meant any of the three above.","enum":["witnessed_reading","connected_system_reads","ledger_token_signatures","witnessed_signed","signed_scan","live_observation","honest_absence", ⟨63 unchanged words⟩
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"claim_url":{"description":"Presentonlywhen the subject has no published recordand could be claimed by(unclaimeditsorowner.private).","type":"string"},"provenance":{ ⟨107 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"Ask about ⟨10 unchanged words⟩
PerformFetchahttps://<domain>/liveand /.well-known/security.txt once,neutralatreadthe moment ofathedomain'scall,publicfromsecurityTrooth'ssurfaceserver,rightandnow:reportHTTPS/TLSwhetherreachabilityHTTPS answered,commonwhichsecurityof five response headers (HSTS, CSP, nosniff, frame protection, referrer policy) are present, and/.well-known/security.txt.whetherThesesecurity.txt is published. IP literals and names resolving to private, loopback or link-local addresses areobservationsrefused;fromredirectsthearepublicreported,internetnot followed; each request stops after 4 seconds. Observations, not witnessed evidenceand, not a grade.
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"claim_url":{"description":"Presentonlywhen the subject has no published recordand could be claimed by(unclaimeditsorowner.private).","type":"string"},"provenance":{ ⟨107 unchanged words⟩
Look upReadaone company's published,witnessed Trust Profilerecord on the TroothbyNetwork, given its domain orslug.TroothReturnsslug.theThewitnessedidentifierstanding,ispillarmatchedsummary,exactlyand(aevidence-chainURLstatsisforreducedcompaniestothatitspublishhost),anneverOSbyprofile,aorsimilarthename.witnessedReturnsNetworkastandingstatus (signedpublished,scanlisted,resultprivate, unclaimed or unavailable)forandcompaniesalistedprovenanceinlabel; text thepubliccompanydirectory.wroteUnknownaboutcompaniesitselfreturnisanlabeledhonestasnot-found.its own words. Read only.
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"claim_url":{"description":"Presentonlywhen the subject has no published recordand could be claimed by(unclaimeditsorowner.private).","type":"string"},"provenance":{ ⟨107 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":true,"title":"Look upRead a company'sTroothrecordTrustonProfilethe Trooth Network"}
Verify aCheckTrooththeTrusttwoLedgersignaturesTokenon(asigned, portable trustTrustreceiptLedgerinTokentlt2(tlt2./ortlttlt. form, or its JTI).Re-runsagainstbothTrooth'ssignaturesownindependentlytokenandledger.returnsReturnswhethervalid,theinvalidtoken(aissignaturevaliddoes not check out), expired,or revoked, ortamperedunclaimed-whenplusnohonesttokenprovenance:matches. Trooth'soutersignatureattests onlycovers thewitnessingsigning event and thebyte-for-bytepayload at issuance,nevernot thetruthfulnesstruth of thedeclared claims. Unknown tokens returnclaimsanthehonesttokennot-found.carries.
{"description":"The typed form of every answer a tool completes. A call that fails partway answers isError: true with text only and no structured record.","properties":{"claim_url":{"description":"Presentonlywhen the subject has no published recordand could be claimed by(unclaimeditsorowner.private).","type":"string"},"provenance":{ ⟨107 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":truefalse,"readOnlyHint":true,"title":"VerifyCheckatheTroothsignatures on a Trust Ledger Token"}