Skip to main content
Predexy gives you two tools for keeping tabs on markets over time. Watchlists let you group and save canonical questions or specific markets you want to follow. Alerts let you define a price condition on a market so you can be notified when it’s met. Both features work through the main web app at app.revalonlabs.xyz and are also accessible via the API for programmatic use.

Authentication

Watchlists and alerts require a session JWT — either from SIWE wallet sign-in or from email/password login through the Developer Console. Pass the token as a bearer header:
Authorization: Bearer <your-session-jwt>
  • SIWE (Sign-In With Ethereum): Connect your Web3 wallet at app.revalonlabs.xyz. The app handles the SIWE handshake and issues a session JWT cookie automatically.
  • Email/password: Register and log in via the Developer Console or the /api/v1/auth/login endpoint to get a JWT.
API keys (X-API-Key) do not grant access to watchlists or alerts. These endpoints require a user session.

Watchlists

A watchlist is a named collection of markets or canonical questions. You can create as many as you need and add or remove items at any time.

List your watchlists

Endpoint: GET /api/v1/watchlists
curl https://api.predexy.com/api/v1/watchlists \
  -H "Authorization: Bearer <your-session-jwt>"
Example response:
{
  "data": [
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "name": "Crypto Forecasts",
      "created_at": "2026-04-01T09:00:00Z"
    },
    {
      "id": "e3a1c23d-4f56-78ab-9012-cdef01234567",
      "name": "US Politics 2026",
      "created_at": "2026-04-10T14:30:00Z"
    }
  ]
}

Create a watchlist

Endpoint: POST /api/v1/watchlists The request body requires a name field.
curl -X POST https://api.predexy.com/api/v1/watchlists \
  -H "Authorization: Bearer <your-session-jwt>" \
  -H "Content-Type: application/json" \
  -d '{"name": "Crypto Forecasts"}'
Example response:
{
  "data": {
    "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "name": "Crypto Forecasts",
    "created_at": "2026-04-01T09:00:00Z"
  }
}

Add a market to a watchlist

Endpoint: POST /api/v1/watchlists/{id}/items You can add a canonical question, a specific market, or both. Pass the relevant UUID(s) in the request body:
curl -X POST \
  https://api.predexy.com/api/v1/watchlists/7c9e6679-7425-40de-944b-e07fc1f90ae7/items \
  -H "Authorization: Bearer <your-session-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "canonical_question_id": "550e8400-e29b-41d4-a716-446655440000"
  }'

Remove an item from a watchlist

Endpoint: DELETE /api/v1/watchlists/{watchlist-id}/items/{item-id}
curl -X DELETE \
  "https://api.predexy.com/api/v1/watchlists/7c9e6679-7425-40de-944b-e07fc1f90ae7/items/c1d2e3f4-5678-90ab-cdef-012345678901" \
  -H "Authorization: Bearer <your-session-jwt>"

Update a watchlist name

Endpoint: PATCH /api/v1/watchlists/{id}
curl -X PATCH \
  https://api.predexy.com/api/v1/watchlists/7c9e6679-7425-40de-944b-e07fc1f90ae7 \
  -H "Authorization: Bearer <your-session-jwt>" \
  -H "Content-Type: application/json" \
  -d '{"name": "Crypto Markets Q2 2026"}'

Delete a watchlist

Endpoint: DELETE /api/v1/watchlists/{id}
curl -X DELETE \
  https://api.predexy.com/api/v1/watchlists/7c9e6679-7425-40de-944b-e07fc1f90ae7 \
  -H "Authorization: Bearer <your-session-jwt>"

Alerts

Alerts let you define a condition on a market so you’re notified when a price threshold is crossed. You associate an alert with a canonical question or a specific market, then provide a type and a condition object describing when to fire.

List your alerts

Endpoint: GET /api/v1/alerts
curl https://api.predexy.com/api/v1/alerts \
  -H "Authorization: Bearer <your-session-jwt>"
Example response:
{
  "data": [
    {
      "id": "a1b2c3d4-5678-90ef-ghij-012345678901",
      "type": "price_threshold",
      "condition": {
        "direction": "above",
        "threshold": 0.70
      },
      "canonical_question_id": "550e8400-e29b-41d4-a716-446655440000",
      "market_id": null,
      "is_active": true,
      "created_at": "2026-04-15T12:00:00Z"
    }
  ]
}

Create an alert

Endpoint: POST /api/v1/alerts The request body requires:
FieldTypeRequiredDescription
typestringYesAlert type, e.g. price_threshold
conditionobjectYesThe trigger condition (threshold price, direction, etc.)
canonical_question_idUUIDNoCanonical question to watch
market_idUUIDNoSpecific market to watch
curl -X POST https://api.predexy.com/api/v1/alerts \
  -H "Authorization: Bearer <your-session-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "price_threshold",
    "condition": {
      "direction": "above",
      "threshold": 0.70
    },
    "canonical_question_id": "550e8400-e29b-41d4-a716-446655440000"
  }'

Update an alert

Endpoint: PATCH /api/v1/alerts/{id} You can update the type, condition, or toggle is_active to pause or resume an alert without deleting it.
curl -X PATCH \
  https://api.predexy.com/api/v1/alerts/a1b2c3d4-5678-90ef-ghij-012345678901 \
  -H "Authorization: Bearer <your-session-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "condition": {
      "direction": "above",
      "threshold": 0.80
    },
    "is_active": true
  }'

Delete an alert

Endpoint: DELETE /api/v1/alerts/{id}
curl -X DELETE \
  https://api.predexy.com/api/v1/alerts/a1b2c3d4-5678-90ef-ghij-012345678901 \
  -H "Authorization: Bearer <your-session-jwt>"

The easiest way to manage watchlists and alerts is through the web app at app.revalonlabs.xyz. The UI lets you browse markets and add them to watchlists or set alerts with a few clicks, then the API is available if you want to automate or integrate these features into your own tooling.