# Last30Days Online Last30Days Online runs a hosted, generic last-30-days research search. Do not provide cookies, social credentials, API keys, or browser sessions. Real searches use service-owned configured sources only. ## Demo Fetch the representative demo result without JavaScript or browser automation: GET /tools/last30days/demo.json GET /tools/last30days/demo.md API clients that can POST may also execute the query-only demo endpoint: POST /api/tools/last30days/demo Body: `{"query":"AI agent tools over the last 30 days"}` ## Structured requests Paid API requests, the unique-id URL sampler, and MCP calls support optional structured fields: - `sources`: source subset, for example `["reddit","x","polymarket"]`. Default currently uses `reddit`, `hackernews`, `polymarket`, and `x`. - `days` or `lookbackDays`: integer lookback window from 1 to 90 days; default is 30. - `depth`: `quick` or `deep`; default is `quick` for agent-friendly response times. - `x_handle`, `x_related`: X handle and related handles, with or without `@`. - `subreddits`: subreddit names without `r/`. - `tiktok_hashtags`, `tiktok_creators`, `ig_creators`: social discovery hints; do not ask for user social credentials. - `github_user`, `github_repos`: GitHub user/org or `owner/repo` targets. Use only when the hosted GitHub backend is configured. - `web_backend`: preferred hosted web/search backend when available. Grounding/web search requires a configured hosted backend. - `x_backend`: use `grok` for explicit X/Grok semantic search. Ordinary `sources=x` keeps the service feed order `AISA`, `X API`, `Scrape Creators`, then `APIFY`. - `auto_resolve`: boolean; let Last30Days infer likely source targets from the query. - `plan`: optional JSON object query plan. Do not send file paths or plain text plans. - `competitors`: integer from 1 to 6. - `competitors_list`: explicit competitor names. - `polymarket_keywords`: Polymarket keywords to prioritize. - `output`: `summary` or `full`. Ask whether the user wants `summary` or `full` results unless they already stated a preference. ## Unique-id URL sampler For a signed-in workspace, call the workspace URL with a URL-encoded query: GET /tools/last30days//search?query=AI%20agent%20tools%20over%20the%20last%2030%20days GET /tools/last30days//search?query=AI%20agent%20tools%20over%20the%20last%2030%20days&sources=reddit,x&lookbackDays=14&depth=quick&output=summary Other supported query parameters match the POST field names, including `x_handle`, `x_related`, `x_backend=grok`, `subreddits`, `github_user`, `github_repos`, JSON-object `plan`, `competitors`, `competitors_list`, and `polymarket_keywords`. Only use a workspace URL supplied by the user. The unique id can spend that workspace's Last30Days balance while access is enabled. ## MCP Agents that support HTTP MCP should prefer the OAuth-protected MCP endpoint: https://last30days.agentpaul.net/mcp Setup guide: https://last30days.agentpaul.net/tools/last30days/mcp.md Use OAuth authorization rather than asking users to copy long-lived tokens into chat. ## Results Search responses include `request_id`, `status`, and `result_url` when ready. Search responses may also include `search_id`, `poll_url`, `poll_after_seconds`, and `progress_message`. If `status` is `running` or `partial` and `poll_url` is present, tell the user searches are still running, summarize any returned results, and poll the URL after `poll_after_seconds` seconds when possible. If you cannot poll again, tell the user to ask again shortly so you can check the cached result. Treat `partial` as usable only if you disclose missing, running, or degraded sources and warnings. ## Privacy Do not send secrets. Results are retained for about 30 days. Ledger records may be retained longer for support and accounting.