Skip to content

SMILE Endpoints

Chen Wang edited this page Oct 2, 2026 · 1 revision

HTTP routes served by the SMILE server (standalone-smm-smile). They are internal routes used by the SMILE web interface, not a stable public API. Except for /, /privacy-policy, /citation, /list-analyses, and the login routes, they require a logged-in session (in single-user mode every request counts as logged in).

The route handlers live in www/routes/ (businessLogic/, search/, auth/), and the login routes are in www/app.js.

Pages

Method Endpoint Description
GET / Home page listing the available tools
GET /query Social media data collection page
GET /history Past Results page
GET /citation How to cite SMILE
GET /privacy-policy Privacy policy

Analyses

These routes are generated from the analysis config files: GET /<path> renders the analysis form, and POST /<path> runs the analysis, in real-time or background mode depending on the dataset size.

Method Endpoint Description
GET, POST /sentiment Sentiment analysis
GET, POST /preprocessing Natural language preprocessing
GET, POST /topic-modeling Topic modeling
GET, POST /autophrase Automated phrase mining
GET, POST /NER Named entity recognition
GET, POST /networkx Network analysis
GET /classification Text classification page
POST /classification-split Classification step 1: split the dataset into training and testing sets
PUT /classification-train Classification step 2: upload the labeled training set and train a model
POST /classification-predict Classification step 3: predict labels with the trained model
GET /list-analyses List the analyses and their run modes (used by the menu and the submit logic)

Data collection

Method Endpoint Description
GET /authorized Report which social media platforms the user has authorized
POST /query-dryrun Fetch a single post to validate a query before collecting
POST /query Send a collection query to the GraphQL data server
POST /reddit-expand Expand collected Reddit posts to include their comments
POST /image-crawler Download the images in a collected dataset as a zip file
POST /prompt Look up a Twitter user by screen name
POST /histogram Histogram of collected posts over time intervals
POST /import Import your own dataset (CSV) for analysis

Datasets and results

Method Endpoint Description
POST /list List the categories of collected datasets and analysis outputs
POST /list-all List the dataset IDs in each category
POST /history Details of a selected dataset or output on the Past Results page
DELETE /history Delete a dataset or output
POST /render Preview a dataset, showing only the selected columns
POST /render-json Preview items from JSON input
POST /add-columnHead Register custom column names so they appear when previewing imported datasets
GET /list-columnHead List the registered column names
GET /tag Search tags by keyword and list the datasets with that tag
POST /tag Add tags to a dataset
DELETE /tag Remove tags from a dataset
POST /download Download a file by URL

Export and sharing

Method Endpoint Description
POST /export Export all datasets and outputs to Google Drive, Dropbox, or Box
POST /export-single Export one dataset or output to Google Drive, Dropbox, or Box
POST /check-clowder-login Check whether the user has connected Clowder
POST /clowder-login Connect Clowder with the user's credentials
POST /list-dataset, /list-collection, /list-space, /list-user List the user's Clowder datasets, collections, spaces, or registered users
POST /clowder-dataset, /clowder-collection, /clowder-space Create a Clowder dataset, collection, or space
POST /clowder-files Upload files to a Clowder dataset

Authentication

SMILE login (multi-user mode, through CILogon):

Method Endpoint Description
GET /smile-login Start CILogon login
GET /smile-login/callback CILogon OAuth callback
GET /smile-logout Log out

Platform authorization (standard OAuth flows that let SMILE collect data or export on the user's behalf):

Method Endpoint Description
GET /login/twitterV2, /login/twitterV2/callback Twitter / X (API v2)
GET, POST /login/twitter Twitter (legacy API v1.1, PIN-based)
GET /login/reddit, /login/reddit/callback Reddit
GET /login/google, /login/google/callback Google (YouTube data and Google Drive export)
POST /login/google/apikey Store a Google API key for YouTube searches
GET, POST /login/dropbox Dropbox
GET /login/box, /login/box/callback Box

Clone this wiki locally