{"id":19055790,"url":"https://github.com/taskrabbit/smyte","last_synced_at":"2026-02-24T09:02:03.428Z","repository":{"id":66227805,"uuid":"57164299","full_name":"taskrabbit/smyte","owner":"taskrabbit","description":"For fraud checking","archived":false,"fork":false,"pushed_at":"2016-08-02T18:48:43.000Z","size":15,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-27T05:59:19.666Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taskrabbit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-26T21:51:45.000Z","updated_at":"2023-09-15T04:22:56.000Z","dependencies_parsed_at":null,"dependency_job_id":"f973e223-d3aa-4ef1-aa86-48665ea4404e","html_url":"https://github.com/taskrabbit/smyte","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/taskrabbit/smyte","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskrabbit%2Fsmyte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskrabbit%2Fsmyte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskrabbit%2Fsmyte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskrabbit%2Fsmyte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taskrabbit","download_url":"https://codeload.github.com/taskrabbit/smyte/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskrabbit%2Fsmyte/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29777606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-24T04:54:30.205Z","status":"ssl_error","status_checked_at":"2026-02-24T04:53:58.628Z","response_time":75,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T23:47:02.263Z","updated_at":"2026-02-24T09:02:03.400Z","avatar_url":"https://github.com/taskrabbit.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Smyte\n\n[Smyte](https://www.smyte.com) is a fraud-checking service. This gem makes it a bit easier to work with their [API](https://docs.smyte.com/).\n\n## Setup\n\n`gem install smyte`\n\n```ruby\nrequire 'smyte'\n\nSmyte.enabled    = true\nSmyte.api_key    = '123456789'\nSmyte.api_secret = 'qwertyuiopasdfghjkl'\nSmyte.webhook_secret = 'zxcvbnmpoiuytrewq'\n```\n\n## Sending data to Smyte\n\nUses this [API](https://docs.smyte.com/docs/sending-data-to-smyte).\n\n```ruby\npayload = {\n  data: {\n    custom_id: 1\n  },\n  http_request: {\n    headers: {\n      \"X-Real-IP\" =\u003e \"5.6.7.8\"\n    },\n    path: \"/login\"\n  },\n  session: {\n    id: 'sessionguid',\n    action: {\n      user_id: 2\n    }\n  },\n  timestamp: Time.now\n}\n\nSmyte.action('my_event', payload)\n\n```\n\n## Receiving classification results\n\nUses this [API](https://docs.smyte.com/docs/receiving-classification-results).\n\n```ruby\n# payload same as before (or other, of course)\nclassification = Smyte.classify('my_event', payload)\n\nputs classification.action # will be :block, :review, or :allow\nputs classification.label_report # for example on block [\"exp:high_fail_rate_payment\", \"cc_country_mismatch\"]\n\n```\n\n## Webhooks\n\nUses this [API](https://docs.smyte.com/docs/webhooks).\nSmyte does a POST to your endpoint\n\n```ruby\n# for example in a Rails controller action\nsecret = request.headers[\"X-Smyte-Signature\"]\nnotification = ::Smyte.webhook(secret, params)\nnotification.items.each do |item|\n  puts item.action # will be :block, :review, or :allow\n  puts item.type # for example \"user\"\n  puts item.id   # user id\n  puts item.label_report #  for example on block  [\"bad_user\"]\nend\n\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskrabbit%2Fsmyte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaskrabbit%2Fsmyte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskrabbit%2Fsmyte/lists"}