snitcher
snitcher.
A Snitcher workspace (= one tracked website) — list yours, inspect
setup & usage
⚠ snitcher personal access token
generate a Personal Access Token in Snitcher (app → Settings → Account → API → Generate New Token — see the REST API docs), then paste it into oto.
▸ which companies visit your site
snitcher identifies the COMPANIES behind your site's anonymous traffic, in 5 tools:
snitcher_workspace(op="list") — always start there: the returned workspace_uuid is required by all the other toolssnitcher_organisation(workspace_uuid="...", op="list", date_from="2026-08-17")snitcher_organisation(op="search", filters={"operator": "AND", "conditions": [{"field": "last_seen", "comparison": "less_than_x_units_ago", "value": 30, "unit": "day"}, {"field": "pageviews", "comparison": "greater_than", "value": 5}]}) — ⚠️ FLAT conditions only (the spec's nested groups are refused for real, 422), and fields limited to visit behavior: last_seen, first_seen, tag, sessions, pageviews, time_on_site, url, referrer, source — NOT firmographics (name/industry/size → go through op="list", name="..." or a segment)snitcher_session(workspace_uuid="...", organisation_uuid="...") — each session carries an events array: pageviews (with time_on_page), form submissions (WITH the field values), custom track events, clicks, downloadssnitcher_session(workspace_uuid="...", date="2026-08-22") — without organisation_uuid, date or date_from is requiredsnitcher_contact(op="list", organisation_uuid="..." | domain="acme.com")snitcher_contact(op="reveal_email", contact_uuid="...") — ⚠️ spends a Snitcher credit, confirm intent firstsnitcher_workspace(op="create_tag", tag_name="hot lead") then snitcher_organisation(op="tag", organisation_uuid="...", tag_name="hot lead")snitcher_workspace(op="segments") — their uuids filter organisations and sessionssnitcher_custom_field(op="set", organisation_uuid="...", key="account_tier", value="enterprise") — op="set_many" sets up to 50 fields at once, unknown keys are created automatically (type inferred)· ⚠️ what costs, what destroys, what excludes
snitcher_contact(op="reveal_email") is the ONLY paid call (credits) — everything else is a read or a free write (tags, custom fields, workspace admin)snitcher_workspace(op="delete") destroys the workspace AND its visit history — irreversible, to be explicitly confirmed with the userdate (one day) and date_from/date_to (a range) are mutually exclusive wherever both existvisible_in_spotter=true on a custom field exposes its values to any script of the tracked site (Spotter response) — off by default, leave it off unless explicitly neededop="set" with an empty list (refused by the API) — use op="clear"success/current_page/total/data), gets return the bare object with no envelope, tags return {success, message}, DELETEs return an empty body — ⚠️ NEVER assume result["data"] everywhere: get_organisation for example returns the bare object, result["data"] raises a KeyError thereop="set" (one field, PUT) returns the BARE value object, but op="set_many" (several fields, PATCH) returns {"success", "data": [...]} — same intent ("set a value"), different envelope depending on the verb. Each op= has its form documented in the tool description, to be re-read before parsing the return rather than guessingsnitcher_custom_field(op="set_many") does create unknown keys automatically, type inferred (confirmed: a 42 created a number field); op="values" also returns the fixed SYSTEM fields (name, website, description…, source: "fixed") alongside the custom onessnitcher_contact(op="list", domain="...") works for any company, not just identified visitors (confirmed: 25 contacts on a third-party domain) — emails stay "[not-revealed]" until the paid reveal has been done⚙ multiple comptes
this connector accepts multiple comptes: each stored credential becomes a named account (one name per compte), at your level, your team's or your org's.
_account="<name>" on the tool; list them: oto_identity(op='list', connector='snitcher') (scope='org' or scope='group' for the org's or team's)oto_identity(op='set', connector='snitcher', identity_id='<name>'); rename: op='rename' with new_name_account) and adding upoutils
chargement…
utilisation
claude code — installe le plugin oto —
claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configurés.cli —
pipx install oto-cli puis oto snitcher …