# Sniffington > Sniffington finds public posts that mention your brand or keywords on Reddit, X, Hacker News, YouTube, TikTok, Instagram and other platforms, has an AI model filter and sort them by sentiment and category, and serves them over a REST API, signed webhooks and an MCP server for AI agents. The REST API lives at https://sniffington.com/api/v1 and takes `Authorization: Bearer ` (ss_sk_… full access, ss_ro_… read-only). List endpoints are cursor-paginated. Each operation below links to a page with its parameters, request body and a curl example. ## Docs - [Guide](https://sniffington.com/docs): authentication, quickstart, pagination, errors, rate limits, webhook signatures and MCP - [API reference](https://sniffington.com/docs/api): every operation on one page - [OpenAPI 3.1 spec](https://sniffington.com/openapi.json): the whole API, machine-readable - [Full reference as text](https://sniffington.com/llms-full.txt): the guide and every operation in one file - [MCP server](https://sniffington.com/mcp): Streamable HTTP; sign in with OAuth 2.1 or send an API key ## Projects - [list_projects](https://sniffington.com/docs/api/list_projects): GET /api/v1/projects. List projects - [create_project](https://sniffington.com/docs/api/create_project): POST /api/v1/projects. Create a project - [get_project](https://sniffington.com/docs/api/get_project): GET /api/v1/projects/{project}. Get a project - [update_project](https://sniffington.com/docs/api/update_project): PATCH /api/v1/projects/{project}. Update a project - [delete_project](https://sniffington.com/docs/api/delete_project): DELETE /api/v1/projects/{project}. Delete a project - [scan_project](https://sniffington.com/docs/api/scan_project): POST /api/v1/projects/{project}/scan. Scan a project now ## Keywords - [list_keyword_groups](https://sniffington.com/docs/api/list_keyword_groups): GET /api/v1/projects/{project}/groups. List keyword groups - [create_keyword_group](https://sniffington.com/docs/api/create_keyword_group): POST /api/v1/projects/{project}/groups. Create a keyword group - [update_keyword_group](https://sniffington.com/docs/api/update_keyword_group): PATCH /api/v1/groups/{group}. Update a keyword group - [delete_keyword_group](https://sniffington.com/docs/api/delete_keyword_group): DELETE /api/v1/groups/{group}. Delete a keyword group - [list_keywords](https://sniffington.com/docs/api/list_keywords): GET /api/v1/projects/{project}/keywords. List keywords - [create_keyword](https://sniffington.com/docs/api/create_keyword): POST /api/v1/projects/{project}/keywords. Add a keyword - [get_keyword](https://sniffington.com/docs/api/get_keyword): GET /api/v1/keywords/{keyword}. Get a keyword - [update_keyword](https://sniffington.com/docs/api/update_keyword): PATCH /api/v1/keywords/{keyword}. Update a keyword - [delete_keyword](https://sniffington.com/docs/api/delete_keyword): DELETE /api/v1/keywords/{keyword}. Delete a keyword ## Categories - [list_categories](https://sniffington.com/docs/api/list_categories): GET /api/v1/projects/{project}/categories. List categories - [create_category](https://sniffington.com/docs/api/create_category): POST /api/v1/projects/{project}/categories. Create a category - [update_category](https://sniffington.com/docs/api/update_category): PATCH /api/v1/categories/{category}. Update a category - [delete_category](https://sniffington.com/docs/api/delete_category): DELETE /api/v1/categories/{category}. Delete a category ## Mentions - [list_mentions](https://sniffington.com/docs/api/list_mentions): GET /api/v1/mentions. List mentions - [get_brief](https://sniffington.com/docs/api/get_brief): GET /api/v1/brief. Today's brief - [bulk_update_mentions](https://sniffington.com/docs/api/bulk_update_mentions): POST /api/v1/mentions/bulk. Change the status of many mentions - [get_mention](https://sniffington.com/docs/api/get_mention): GET /api/v1/mentions/{mention}. Get a mention - [update_mention](https://sniffington.com/docs/api/update_mention): PATCH /api/v1/mentions/{mention}. Update a mention - [mark_mention_irrelevant](https://sniffington.com/docs/api/mark_mention_irrelevant): POST /api/v1/mentions/{mention}/irrelevant. Mark a mention irrelevant - [delete_mention](https://sniffington.com/docs/api/delete_mention): DELETE /api/v1/mentions/{mention}. Delete a mention - [draft_reply](https://sniffington.com/docs/api/draft_reply): POST /api/v1/mentions/{mention}/draft. Draft a reply ## Authors - [list_authors](https://sniffington.com/docs/api/list_authors): GET /api/v1/authors. List authors ## Analytics - [get_analytics](https://sniffington.com/docs/api/get_analytics): GET /api/v1/analytics. Mention analytics - [get_breakdown](https://sniffington.com/docs/api/get_breakdown): GET /api/v1/analytics/breakdown. Break mentions down by one dimension - [get_volume](https://sniffington.com/docs/api/get_volume): GET /api/v1/analytics/volume. Mentions per day by source, project, sentiment, category or group - [query_sql](https://sniffington.com/docs/api/query_sql): POST /api/v1/analytics/sql. Run a read-only SQL query ## Views - [list_views](https://sniffington.com/docs/api/list_views): GET /api/v1/views. List saved views - [create_view](https://sniffington.com/docs/api/create_view): POST /api/v1/views. Save a view - [update_view](https://sniffington.com/docs/api/update_view): PATCH /api/v1/views/{view}. Update a saved view - [delete_view](https://sniffington.com/docs/api/delete_view): DELETE /api/v1/views/{view}. Delete a saved view ## Scans - [list_runs](https://sniffington.com/docs/api/list_runs): GET /api/v1/runs. Recent scans - [get_scan_status](https://sniffington.com/docs/api/get_scan_status): GET /api/v1/scans/status. Scan status - [scan_now](https://sniffington.com/docs/api/scan_now): POST /api/v1/scans. Scan every project now ## Webhooks - [list_webhooks](https://sniffington.com/docs/api/list_webhooks): GET /api/v1/webhooks. List webhooks - [create_webhook](https://sniffington.com/docs/api/create_webhook): POST /api/v1/webhooks. Create a webhook - [get_webhook](https://sniffington.com/docs/api/get_webhook): GET /api/v1/webhooks/{webhook}. Get a webhook - [update_webhook](https://sniffington.com/docs/api/update_webhook): PATCH /api/v1/webhooks/{webhook}. Update a webhook - [delete_webhook](https://sniffington.com/docs/api/delete_webhook): DELETE /api/v1/webhooks/{webhook}. Delete a webhook - [rotate_webhook_secret](https://sniffington.com/docs/api/rotate_webhook_secret): POST /api/v1/webhooks/{webhook}/rotate-secret. Rotate a webhook's signing secret - [test_webhook](https://sniffington.com/docs/api/test_webhook): POST /api/v1/webhooks/{webhook}/test. Send a test event - [list_webhook_deliveries](https://sniffington.com/docs/api/list_webhook_deliveries): GET /api/v1/webhooks/{webhook}/deliveries. List a webhook's deliveries - [replay_webhook_delivery](https://sniffington.com/docs/api/replay_webhook_delivery): POST /api/v1/webhook-deliveries/{delivery}/replay. Replay a delivery - [list_webhook_events](https://sniffington.com/docs/api/list_webhook_events): GET /api/v1/webhook-events. List webhook event types ## Workspace - [get_workspace](https://sniffington.com/docs/api/get_workspace): GET /api/v1/workspace. The current workspace - [update_workspace](https://sniffington.com/docs/api/update_workspace): PATCH /api/v1/workspace. Rename the workspace or change its timezone / default scan cadence - [list_members](https://sniffington.com/docs/api/list_members): GET /api/v1/members. List members - [update_member](https://sniffington.com/docs/api/update_member): PATCH /api/v1/members/{user}. Change a member's role - [remove_member](https://sniffington.com/docs/api/remove_member): DELETE /api/v1/members/{user}. Remove a member - [list_invites](https://sniffington.com/docs/api/list_invites): GET /api/v1/invites. List invites - [create_invite](https://sniffington.com/docs/api/create_invite): POST /api/v1/invites. Invite someone - [revoke_invite](https://sniffington.com/docs/api/revoke_invite): DELETE /api/v1/invites/{invite}. Revoke an invite - [get_usage](https://sniffington.com/docs/api/get_usage): GET /api/v1/usage. Usage this month ## API keys - [list_api_keys](https://sniffington.com/docs/api/list_api_keys): GET /api/v1/api-keys. List API keys - [create_api_key](https://sniffington.com/docs/api/create_api_key): POST /api/v1/api-keys. Create an API key - [revoke_api_key](https://sniffington.com/docs/api/revoke_api_key): DELETE /api/v1/api-keys/{key}. Revoke an API key - [list_oauth_connections](https://sniffington.com/docs/api/list_oauth_connections): GET /api/v1/oauth/connections. List connected apps - [revoke_oauth_connection](https://sniffington.com/docs/api/revoke_oauth_connection): DELETE /api/v1/oauth/connections/{client}. Disconnect an app ## Alerts - [list_alerts](https://sniffington.com/docs/api/list_alerts): GET /api/v1/alerts. List alerts - [create_alert](https://sniffington.com/docs/api/create_alert): POST /api/v1/alerts. Create an alert - [get_alert](https://sniffington.com/docs/api/get_alert): GET /api/v1/alerts/{alert}. Get an alert - [update_alert](https://sniffington.com/docs/api/update_alert): PATCH /api/v1/alerts/{alert}. Update an alert - [delete_alert](https://sniffington.com/docs/api/delete_alert): DELETE /api/v1/alerts/{alert}. Delete an alert - [test_alert](https://sniffington.com/docs/api/test_alert): POST /api/v1/alerts/{alert}/test. Send a test now