We use essential cookies to keep you signed in and improve your experience. Cookie Policy
Download datasets, access samples, and integrate social data into your pipeline. RESTful, no SDK required. The five platform tools — Trend Radar, Coordinated Behavior, Vertical Intelligence, NL Insights, and the Dataset Cleaner — live in the app's Tools menu.
100 rows, no auth required. Try before you download.
Add your API key for full access.
Global
100/min
Per IP, edge-protected
Free Plan
500/day
~15K/month average
Individual Plan
1,000/day
Per-dataset purchases
Pro Plan
Up to 15K/day
Customizable via Pro Builder
Requires the requests library (pip install requests).
Pro plan — 7-day free trial — also includes webhook subscriptions (POST /api/webhooks), scheduled exports (POST /api/exports/schedules), and custom dataset requests (POST /api/custom-dataset-requests). See the Dashboard for your API key and full endpoint reference.
/api/datasets/catalogPublicReturns all active datasets with live metadata including record counts, prices, and available formats.
Request
Response
/api/datasets/sample/{slug}PublicDownload a 100-row preview of any dataset. No authentication required. Great for testing.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug (see catalog below) |
formatquery | string | csv | json | jsonl | parquet (default: csv) |
limitquery | integer | 1–1000 rows to return (JSON only; default: full 100-row sample) |
Request
Response
/api/datasets/download/{slug} AuthDownload the full dataset. Free for datasets under 10K rows. Larger datasets require an Individual purchase or Pro plan (7-day free trial). Requires X-API-Key or Bearer token.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
formatquery | string | csv | json | jsonl | parquet (default: csv) |
limitquery | integer | Max rows to return (1–100000, JSON pagination) |
starting_afterquery | string | Cursor — last post_id from the previous page |
Request
Response
/api/datasets/info/{slug}PublicGet detailed metadata for a single dataset including sample rows and enrichment fields.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
Request
Response
/api/datasets/model-card/{slug}PublicReturns pre-computed model-card data for a dataset: topic distribution, field coverage, and platform breakdown. Public for catalog datasets.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
Request
Response
/api/datasets/catalog/eventsPublicServer-Sent Events stream. Emits a 'catalog_updated' event whenever the catalog changes (new dataset uploaded or cache invalidated), so clients can refetch /api/datasets/catalog.
Request
Response
/api/datasets/statusPublicReturns the last catalog collection timestamp. Use it to decide whether to refetch the catalog.
Response
/api/datasets/download-limit AuthReturns the current free-download usage for the authenticated user. Free users may download up to 10 full datasets per day.
Response
/api/datasets/payment-productsPublicSlug → {name, price} mapping for frontend checkout. Use /api/datasets/catalog for full metadata.
Response
/api/datasets/configsPublicAll active dataset configs for the catalog frontend. Private datasets are excluded.
Response
/api/datasets/categoriesPublicReturns all unique dataset categories, used to populate catalog filters.
Response
/api/datasets/{slug}/reviewsPublicGet all reviews for a dataset with reviewer info.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
Request
Response
/api/datasets/{slug}/reviews/mine AuthGet the current user's review for a dataset, if any.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
Response
/api/datasets/{slug}/reviews AuthCreate or update a review. You must have full download access to the dataset (Pro, or purchased). Requires a Cloudflare Turnstile token.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
ratingbody · required | integer | 1–5 stars |
bodybody · required | string | Review text |
cf_turnstile_responsebody · required | string | Cloudflare Turnstile token |
Request
Response
/api/datasets/{slug}/reviews/{review_id} AuthDelete a review. Only the review author can delete their own review.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
review_idpath · required | string | Review ID |
Response
/api/datasets/{slug}/reviews/ratingPublicGet the average rating for a dataset.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
Response
/api/reviews/featuredPublicReturn top-rated reviews for use as testimonials. No authentication required.
Response
/api/auth/oauth/googlePublicStart Google OAuth sign-in/sign-up. 302-redirects the browser to Google, then back to /auth/callback#token=... No passwords or usernames are used. On turnstile failure it redirects to /login?error=turnstile_failed.
Query Parameters
| Name | Type | Description |
|---|---|---|
redirectquery | string | Relative frontend path to return to after sign-in (default /) |
turnstilequery · required | string | Cloudflare Turnstile token (required, else 302 → /login?error=turnstile_failed) |
Request
Response
/api/user/favorites AuthReturn list of dataset slugs the current user has favorited.
Request
Response
/api/user/favorites AuthAdd a dataset to user's favorites.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugbody · required | string | Dataset slug to favorite |
Request
Response
/api/user/favorites/{slug} AuthRemove a dataset from user's favorites.
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug to unfavorite |
Request
Response
/api/auth/me AuthReturns the authenticated user's basic information including ID, email, and plan tier.
Request
Response
/api/auth/logout AuthInvalidate the current session / access token. Requires the JWT Bearer token (API keys are not accepted by this endpoint).
Request
Response
/api/auth/refresh AuthRefresh the access token before it expires. Requires the JWT Bearer token or the httpOnly access_token cookie (API keys are not accepted by this endpoint).
Request
Response
/api/auth/verify-emailPublicVerify your email address using the token sent by email (used for pending email changes).
Query Parameters
| Name | Type | Description |
|---|---|---|
tokenbody · required | string | Verification token from email |
Request
Response
/api/auth/oauth/google/callbackPublicGoogle redirects the browser here after sign-in. On success the user is signed in and redirected to /auth/callback#token=... with an httpOnly session cookie set. On failure it redirects to /login?error=...&redirect=...
Query Parameters
| Name | Type | Description |
|---|---|---|
codequery · required | string | Authorization code from Google |
statequery · required | string | State token issued by /api/auth/oauth/google |
errorquery | string | Present when the user denies consent |
Response
/api/auth/resend-verificationPublicRe-send the email verification link for an unverified account. Response is always the same regardless of whether the email exists (prevents account enumeration). Rate limited per email.
Query Parameters
| Name | Type | Description |
|---|---|---|
emailbody · required | string | Email address to resend verification for |
cf_turnstile_responsebody | string | Cloudflare Turnstile token |
Request
Response
/api/user/me AuthFull user profile including API call usage, plan details, and account info.
Request
Response
/api/user/profile AuthUpdate display name, email, or profile picture.
Query Parameters
| Name | Type | Description |
|---|---|---|
namebody | string | Display name |
profilePicbody | string | Avatar image URL or base64 data URI (max 10MB, JPEG/PNG/GIF/WebP) |
emailbody | string | New email — requires verification; applied only after the emailed token is confirmed |
Request
Response
/api/user/regenerate-key AuthRevoke the current API key and issue a new one. Confirmed by a 6-digit code emailed to you.
Query Parameters
| Name | Type | Description |
|---|---|---|
verification_codebody · required | string | 6-digit code emailed via /api/user/regenerate-key/send-code |
Request
Response
/api/user/downloads AuthList all dataset downloads made by the authenticated user. Returns an array (not wrapped in an object).
Request
Response
/api/user/regenerate-key/send-code AuthEmail a one-time 6-digit code used to confirm regenerating the primary API key. Rate limited.
Response
/api/user/preferences AuthReturn the current user's saved preferences object.
Response
/api/user/preferences AuthSave user preferences. Replaces the entire preferences object with the one provided.
Query Parameters
| Name | Type | Description |
|---|---|---|
preferencesbody · required | object | Full preferences object to store |
Request
Response
/api/user/usage-stats AuthDaily usage stats for the last 30 days: API calls, records downloaded, and datasets downloaded.
Response
/api/user/export AuthExport all of the user's data (profile, purchases, and API keys) as a JSON attachment for GDPR data portability.
Response
/api/trial/status AuthReturn the Pro trial status for the current user.
Response
/api/user/2fa/setup AuthGenerate a TOTP secret and 8 backup codes. 2FA is not enabled until verified via /api/user/2fa/verify. Requires a verified email.
Response
/api/user/2fa/verify AuthConfirm setup with a TOTP code from your authenticator app (or a backup code) to enable 2FA.
Query Parameters
| Name | Type | Description |
|---|---|---|
codebody · required | string | 6-digit TOTP code from your authenticator app |
Request
Response
/api/user/2fa/disable AuthDisable two-factor authentication for the account.
Response
/api/keys AuthList all API keys for the authenticated user.
Request
Response
/api/keys AuthCreate a new API key. Premium plan required. The raw key is returned once — save it, it will not be shown again.
Query Parameters
| Name | Type | Description |
|---|---|---|
namebody · required | string | Friendly label for the key |
scopesbody | array<string> | Scopes (default: ["datasets:read","datasets:download"]) |
dataset_slugsbody | array<string> | Restrict the key to specific dataset slugs |
Request
Response
/api/keys/{key_id} AuthGet details for a specific API key.
Query Parameters
| Name | Type | Description |
|---|---|---|
key_idpath · required | string | ID of the key |
Request
Response
/api/keys/{key_id} AuthUpdate an API key: rename it, change scopes, restrict dataset slugs, or deactivate it.
Query Parameters
| Name | Type | Description |
|---|---|---|
key_idpath · required | string | ID of the key |
namebody | string | New label |
scopesbody | array<string> | Replace the key scopes |
dataset_slugsbody | array<string> | Restrict the key to specific dataset slugs |
is_activebody | boolean | Deactivate or reactivate the key |
Request
Response
/api/keys/{key_id} AuthRevoke an API key immediately. The key will no longer work.
Query Parameters
| Name | Type | Description |
|---|---|---|
key_idpath · required | string | ID of the key to revoke |
Request
Response
/api/webhooks AuthList all registered webhooks for your account.
Request
Response
/api/webhooks AuthRegister a new webhook endpoint to receive event notifications. Pro plan required. Returns a secret preview — save it, it will not be shown again.
Query Parameters
| Name | Type | Description |
|---|---|---|
namebody · required | string | Friendly name for the webhook |
urlbody · required | string | HTTPS endpoint URL |
eventsbody · required | array<string> | Event types to subscribe to (at least one). Available: dataset.updated, dataset.new_rows, custom_dataset.ready, export.complete |
dataset_slugsbody | array<string> | Only fire events for these dataset slugs |
filtersbody | object | Optional event filters |
Request
Response
/api/webhooks/{webhook_id} AuthGet details for a specific webhook registration.
Query Parameters
| Name | Type | Description |
|---|---|---|
webhook_idpath · required | string | ID of the webhook |
Request
Response
/api/webhooks/{webhook_id} AuthUpdate a webhook: rename, change URL, events, dataset filters, or pause delivery.
Query Parameters
| Name | Type | Description |
|---|---|---|
webhook_idpath · required | string | ID of the webhook |
namebody | string | New friendly name |
urlbody | string | New HTTPS endpoint URL |
eventsbody | array<string> | Replace subscribed events |
dataset_slugsbody | array<string> | Replace the dataset slug restriction |
is_activebody | boolean | Pause or resume the webhook |
Request
Response
/api/webhooks/{webhook_id}/deliveries AuthList delivery attempts (successes and failures) for a webhook, newest first.
Query Parameters
| Name | Type | Description |
|---|---|---|
webhook_idpath · required | string | ID of the webhook |
limitquery | integer | Max deliveries (1–200, default 50) |
offsetquery | integer | Pagination offset (default 0) |
Request
Response
/api/webhooks/{webhook_id} AuthDelete a webhook and stop receiving notifications.
Query Parameters
| Name | Type | Description |
|---|---|---|
webhook_idpath · required | string | ID of the webhook |
Request
Response
/api/webhooks/{webhook_id}/test AuthSend a test payload to a registered webhook URL.
Query Parameters
| Name | Type | Description |
|---|---|---|
webhook_idpath · required | string | ID of the webhook |
Request
Response
Pro plan feature. Automatically export a dataset on a schedule and deliver it by email, S3, or webhook. The first schedule runs immediately; schedules are limited per tier (default 5).
/api/exports/schedules AuthList all scheduled exports for the account.
Response
/api/exports/schedules AuthCreate a new scheduled export. Requires a verified email and the Pro plan.
Query Parameters
| Name | Type | Description |
|---|---|---|
namebody · required | string | Schedule name |
dataset_slugbody · required | string | Dataset to export |
formatbody | string | csv | json | jsonl | parquet (default: csv) |
schedule.frequencybody · required | string | daily | weekly | monthly |
schedule.timebody | string | HH:MM run time (default 02:00) |
schedule.day_of_weekbody | integer | 0–6 (weekly only) |
schedule.day_of_monthbody | integer | 1–31 (monthly only) |
delivery.methodbody · required | string | email | s3 | webhook |
delivery.emailbody | string | Required for email delivery |
delivery.s3_pathbody | string | Required for s3 delivery |
delivery.webhook_urlbody | string | Required for webhook delivery (HTTPS, public IP) |
filtersbody | object | Row filters |
field_selectionbody | array<string> | Fields to include |
Request
Response
/api/exports/schedules/{schedule_id} AuthGet details for a specific export schedule.
Query Parameters
| Name | Type | Description |
|---|---|---|
schedule_idpath · required | string | Schedule ID |
Response
/api/exports/schedules/{schedule_id} AuthUpdate an export schedule (name, format, schedule, delivery, filters, is_active).
Query Parameters
| Name | Type | Description |
|---|---|---|
schedule_idpath · required | string | Schedule ID |
namebody | string | New name |
formatbody | string | csv | json | jsonl | parquet |
schedulebody | object | New schedule config (frequency, time, day_of_week/day_of_month) |
deliverybody | object | New delivery config (method, email/s3_path/webhook_url) |
is_activebody | boolean | Pause or resume |
Request
Response
/api/exports/schedules/{schedule_id} AuthDelete an export schedule.
Query Parameters
| Name | Type | Description |
|---|---|---|
schedule_idpath · required | string | Schedule ID |
Request
Response
/api/exports/schedules/{schedule_id}/run-now AuthTrigger an export immediately for a schedule.
Query Parameters
| Name | Type | Description |
|---|---|---|
schedule_idpath · required | string | Schedule ID |
Request
Response
/api/custom-dataset-requests AuthSubmit a custom dataset request. Enrichment runs in the background. Priced per row tier ($18–$68, +$11.98 privacy fee for private requests). Pro plan gets up to 50/month.
Query Parameters
| Name | Type | Description |
|---|---|---|
platformsbody | array<string> | Array of platform names (e.g. ["reddit","youtube"]). Auto-selected if empty |
queries_rawbody | string | Seed queries to guide enrichment |
max_rowsbody · required | integer | Maximum rows to collect — must form a valid tier with min_rows |
min_rowsbody | integer | Minimum rows (tier lower bound, default 10000) |
namebody | string | Dataset name (auto-generated from description if empty) |
is_privatebody | boolean | Private dataset (adds $11.98 privacy fee for non-Pro) |
Request
Response
/api/custom-dataset-requests/{reference_id}/status AuthCheck the processing status and result metadata of a custom dataset request.
Query Parameters
| Name | Type | Description |
|---|---|---|
reference_idpath · required | string | Reference ID returned from request creation |
Request
Response
/api/custom-dataset-requests AuthList the current user's custom dataset requests with status, price, and files-ready flags.
Query Parameters
| Name | Type | Description |
|---|---|---|
statusquery | string | Filter by status (pending | processing | done | failed | cancelled) |
limitquery | integer | Max results (1–200, default 50) |
Request
Response
/api/custom-dataset-requests/check-slug AuthCheck whether a dataset slug is available for a custom dataset (not used by a catalog dataset, an existing custom dataset, or a pending request).
Query Parameters
| Name | Type | Description |
|---|---|---|
slugquery · required | string | Slug to check |
Request
Response
/api/custom-dataset-requests/{reference_id}/edit AuthUpdate AI-generated enrichment fields (slug, category, description, search_queries, platforms, is_private) after review. Query count may be trimmed by up to 5%, platforms by up to 20%.
Query Parameters
| Name | Type | Description |
|---|---|---|
reference_idpath · required | string | Reference ID |
slugbody | string | New dataset slug |
slug_aliasesbody | array<string> | Alias slugs |
categorybody | string | One of the valid dataset categories |
descriptionbody | string | Dataset description |
search_queriesbody | array<string> | Enrichment search queries |
platformsbody | array<string> | Platforms to include |
is_privatebody | boolean | Make the dataset private |
Request
Response
/api/custom-dataset-requests/{reference_id}/cancel AuthCancel a pending or processing enrichment request.
Query Parameters
| Name | Type | Description |
|---|---|---|
reference_idpath · required | string | Reference ID |
Request
Response
/api/custom-dataset-requests/{reference_id}/download AuthDownload a finished custom dataset file. Free for sample (100 rows) and for Pro users; otherwise requires the dataset to be purchased (402 otherwise).
Query Parameters
| Name | Type | Description |
|---|---|---|
reference_idpath · required | string | Reference ID |
fmtquery | string | csv | json | jsonl | parquet (default: csv) |
samplequery | boolean | true returns a 100-row sample |
Request
Response
/api/custom-dataset-requests/{reference_id}/model-card AuthReturn pre-computed model-card data (topic distribution + field coverage) for a custom dataset.
Query Parameters
| Name | Type | Description |
|---|---|---|
reference_idpath · required | string | Reference ID |
Request
Response
/api/payments/plans AuthReturn available plans (free, individual, pro monthly/yearly) with pricing and features. Processed via PayPal.
Request
Response
/api/payments/config AuthReturn the PayPal client configuration for the frontend SDK.
Request
Response
/api/payments/create-order AuthCreate a PayPal order for a dataset purchase, a plan purchase, or a custom dataset payment. Returns an approval URL for the PayPal flow.
Query Parameters
| Name | Type | Description |
|---|---|---|
dataset_slugbody | string | Slug of the dataset to buy (one-time) |
plan_keybody | string | Plan to buy: pro_monthly | pro_yearly |
custom_reference_idbody | string | Reference ID for a custom dataset payment |
amountbody | number | Explicit amount (custom datasets) |
plan_configbody | object | Custom Pro limits |
Request
Response
/api/payments/capture-order AuthConfirm a completed PayPal order and grant access. Call this after the buyer approves the PayPal checkout.
Query Parameters
| Name | Type | Description |
|---|---|---|
paypal_order_idbody · required | string | PayPal order ID |
reference_idbody · required | string | Reference ID returned by create-order |
Request
Response
/api/payments/start-trial AuthStart a 7-day free Pro trial. No payment is collected. Requires a verified email; one trial per account.
Query Parameters
| Name | Type | Description |
|---|---|---|
plan_keybody · required | string | pro_monthly | pro_yearly |
Request
Response
/api/payments/change-plan AuthSelf-serve plan change. Only a pro → free downgrade is supported; upgrades require purchasing via /pricing.
Query Parameters
| Name | Type | Description |
|---|---|---|
target_planbody · required | string | free | pro_monthly | pro_yearly |
Request
Response
/api/payments/purchases AuthList the user's active purchases with dataset names, platforms, and amounts. Includes Pro-granted dataset slugs.
Request
Response
/api/payments/subscription AuthReturn the current subscription details (plan, status, period end, price, manage URL) or null when on the free plan.
Request
Response
/api/payments/access/{slug} AuthCheck whether the current user has download access to a dataset and why (pro_plan, trial, purchased, granted, or not_purchased).
Query Parameters
| Name | Type | Description |
|---|---|---|
slugpath · required | string | Dataset slug |
Request
Response
/api/orders AuthReturn the user's order history (dataset purchases and subscription payments) as a bare array.
Request
Response
/api/orders/{order_id}/invoice AuthReturn an HTML receipt for a completed order (downloadable attachment).
Query Parameters
| Name | Type | Description |
|---|---|---|
order_idpath · required | string | Order ID |
Request
Response
/api/subscriptions AuthReturn the user's active subscriptions (dataset subscriptions and the Pro plan) as a bare array.
Request
Response
/api/subscriptions/pro/cancel/send-otp AuthEmail a one-time verification code used to confirm cancelling the Pro plan.
Response
/api/subscriptions/pro/cancel AuthCancel the Pro plan. Only available within the 7-day risk-free trial window; a 95% refund is issued automatically. Max 4 cancellations per calendar year. Confirmed by an emailed OTP.
Query Parameters
| Name | Type | Description |
|---|---|---|
otp_codebody · required | string | 6-digit code from /api/subscriptions/pro/cancel/send-otp |
Request
Response
/api/subscriptions/{subscription_id}/cancel AuthCancel a dataset subscription via PayPal. Confirmed by an emailed OTP.
Query Parameters
| Name | Type | Description |
|---|---|---|
subscription_idpath · required | string | Subscription ID (from /api/subscriptions) |
otp_codebody · required | string | 6-digit code from /api/subscriptions/pro/cancel/send-otp |
Request
Response
/api/notifications AuthList in-app notifications for the current user, newest first.
Query Parameters
| Name | Type | Description |
|---|---|---|
limitquery | integer | Max results (1–100, default 50) |
unread_onlyquery | boolean | Only unread notifications (default false) |
Request
Response
/api/notifications/{notification_id}/read AuthMark a single notification as read.
Query Parameters
| Name | Type | Description |
|---|---|---|
notification_idpath · required | string | Notification ID |
Response
/api/notifications/read-all AuthMark all notifications as read.
Response
/api/notifications/unread-count AuthReturn the number of unread notifications.
Response
/api/contactPublicSend a message to the Social Intel support team. We respond within 24 hours. Requires a Cloudflare Turnstile token.
Query Parameters
| Name | Type | Description |
|---|---|---|
namebody · required | string | Your name |
emailbody · required | string | Your email address |
messagebody · required | string | Message body |
subjectbody | string | Message subject |
cf_turnstile_responsebody · required | string | Cloudflare Turnstile token (400 without it) |
Request
Response
/api/feedback AuthList the current user's own feedback submissions.
Query Parameters
| Name | Type | Description |
|---|---|---|
statusquery | string | open | acknowledged | implemented | closed |
limitquery | integer | Max results (1–100, default 20) |
offsetquery | integer | Pagination offset |
Request
Response
/api/feedback AuthSubmit feedback. Requires a Cloudflare Turnstile token. Quality public feedback may earn gifts.
Query Parameters
| Name | Type | Description |
|---|---|---|
categorybody · required | string | general | bug | feature_request | improvement | testimonial | other |
bodybody · required | string | Feedback text (10–5000 chars) |
ratingbody | integer | 1–5 stars |
is_publicbody | boolean | Allow it to be shown on the public wall |
cf_turnstile_responsebody | string | Cloudflare Turnstile token |
Request
Response
/api/feedback/publicPublicList public feedback submissions (no authentication required).
Response
/api/feedback/gifts AuthList gifts awarded to the current user for quality feedback.
Response
/api/referrals AuthReturn the current user's referral code, referred-user count, and current/next reward tier.
Request
Response
/api/referrals/generate-code AuthGenerate a one-time referral code for the current user.
Request
Response
/api/referrals/claim-rewards AuthClaim all pending referral rewards. Grants or upgrades Pro access with tiered limits based on how many users you referred.
Request
Response
/api/chat AuthSend a message to the Social Intel AI assistant and get a reply. Maintains conversation history for context.
Query Parameters
| Name | Type | Description |
|---|---|---|
messagebody · required | string | User message (max 2000 chars) |
historybody | array<object> | Prior messages [{role, content}], max 20 |
streambody | boolean | Reserved for future streaming (default false) |
Request
Response
2004004014034044224295005g-and-connectivity-infrastructure-discussionacademic-research-integrity-discourseaddiction-and-recovery-community-signalsadvertising-and-media-buying-communityageing-population-and-eldercare-discourseai-developer-tools-adoptionai-ethics-and-safety-debateai-in-education-community-debateai-in-healthcare-professional-discourseai-job-market-and-skills-demandai-model-release-sentimentai-startup-funding-and-newsalt-platform-echo-chambers-and-radicalisationaugmented-and-virtual-reality-discourseb2b-saas-and-enterprise-software-discourseQuestions about the API? We respond within 24 hours.