Purefeed API

Connect your AI tools directly to your Purefeed intelligence feed. Use the REST API or install the OpenClaw skill to access your signals, search tweets, generate content, and publish — all from your AI assistant.

Quick Start

1

Get your API key

Go to purefeed.ai/profile and create an API key in the Public API Keys section.

2

Test your key

Terminal
curl -s https://purefeed.ai/api/v1/auth/me \
  -H "Authorization: Bearer YOUR_API_KEY"
3

Start using the API

Use the REST endpoints below directly, or install the OpenClaw skill for the easiest AI integration.

OpenClaw Setup

The fastest way to connect Purefeed to your AI assistant. One command installs everything — no MCP server, no npm packages, no Node.js required.

Terminal
# Install the Purefeed skill
clawhub install purefeed

# Set your API key
openclaw config set skills.purefeed.env.PUREFEED_API_KEY "pf_live_YOUR_KEY_HERE"

That's it. OpenClaw will automatically use the Purefeed API when you ask about your Twitter feed, signals, or content generation. The skill teaches your AI assistant how to call the REST API directly via curl.

Don't have OpenClaw? You can use the REST API directly from any tool or script. All endpoints are documented below with curl examples.

API Reference

Base URL: https://purefeed.ai/api/v1

All requests require an Authorization: Bearer YOUR_API_KEY header. Responses return { "data": ..., "error": null } on success.

Account

GET/auth/me

Get the authenticated user's profile. Use to verify your API key works.

Feed & Discovery

GET/feed

Retrieve tweets ranked by signal relevance.

limitint
Max number of tweets to return
searchstring
Filter tweets by text search
signal_idsstring
Comma-separated signal IDs to filter by
POST/search

Full-text search across your signal-matched tweets.

querystringrequired
Natural language search query
limitint
Max number of results
GET/feed/signals

Get AI signal analysis for specific tweet IDs.

tweet_idsstringrequired
Comma-separated tweet IDs to analyze

Folders

GET/folders

List all bookmark folders.

GET/folders/:id/tweets

Get tweets saved in a specific folder.

limitint
Max number of tweets to return

Signals

GET/signals

List all signal configurations.

POST/signals

Create and auto-activate a new signal. Takes up to 6 hours to process existing tweets.

namestringrequired
Name for the signal
descriptionstring
Natural language description of what to detect
tagsstring[]
Tags for categorization
include_keywordsstring[]
Keywords to include in matching
exclude_keywordsstring[]
Keywords to exclude from matching
cronstring
Cron schedule (default: "0 */6 * * *"). Use "* * * * *" for realtime
timezonestring
IANA timezone for the schedule (default: "UTC")
GET/signals/:id

Get details of a specific signal.

PUT/signals/:id

Update a signal's name, description, or schedule.

namestring
New name
descriptionstring
New description
cronstring
New cron schedule (e.g. "0 5 * * 4" for Thursdays at 5am)
timezonestring
IANA timezone (e.g. "Europe/Madrid")
DELETE/signals/:id

Permanently delete a signal (irreversible).

GET/signals/:id/matches

Get tweets matching a specific signal.

limitint
Max number of matches to return

Response Examples

Feed / Search Response

GET /feed
{
  "data": [
    {
      "tweet_id": "1234567890",
      "full_text": "The latest AI breakthroughs are...",
      "creation_date": "2026-03-10T14:30:00Z",
      "views": 12500,
      "replies": 42,
      "retweets": 189,
      "screen_name": "techleader",
      "profile_image_url": "https://pbs.twimg.com/...",
      "signals": [
        {
          "signal_name": "AI Research",
          "content": "Discusses new transformer architecture...",
          "sentiment": "positive",
          "industry_category": "Technology"
        }
      ]
    }
  ]
}

Signals List Response

GET /signals
{
  "data": [
    {
      "id": 1,
      "user_signal_name": "AI Research",
      "signal_description": "Track breakthroughs in AI...",
      "creation_date": "2026-01-15T09:00:00Z"
    }
  ]
}

Error Reference

ErrorWhat to do
401 UnauthorizedAPI key is invalid or expired. Create a new key at purefeed.ai/profile.
429 Too Many RequestsRate limit exceeded. Wait and retry (60 req/min).
Signal not foundCall GET /signals to get valid signal IDs.

Rate Limits

60 requests per minute

  • Rate limits are per API key.
  • Streaming endpoints count as 1 request each.
  • When rate-limited, the response includes a Retry-After header indicating how long to wait.
  • HTTP status 429 is returned when the limit is exceeded.
Need help? Reach out at team@purefeed.ai or check your profile settings for API key management.