Home/API Docs

Signals API

Integrate AI-powered cryptocurrency trading signals into your applications.

Base URL
https://cryptochase.ai/api/v1
Rate Limit
1,000 requests/hour
Historical Data
Last 30 days

Authentication

All API requests require authentication. Include your API token in the request headers:

X-Api-Token header (recommended)
curl -H "X-Api-Token: YOUR_API_TOKEN" \
  https://cryptochase.ai/api/v1/opinions
Authorization Bearer header
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
  https://cryptochase.ai/api/v1/opinions

Security: Keep your API token secure. Never expose it in client-side code.

Opinions

GET/opinions

Retrieve paginated AI-generated trading opinions. Data limited to the last 30 days.

Query Parameters

ParameterTypeDescription
fromdatetimeStart date (ISO 8601). Max 30 days ago.
todatetimeEnd date (ISO 8601)
crypto_currency_idintegerFilter by cryptocurrency ID
signal_idintegerFilter by signal type ID
source_typestringFilter by content type
important_minintegerMinimum importance (1-5)
include_profitbooleanOnly opinions with profit data
per_pageintegerResults per page (default: 50, max: 100)

Response Fields

FieldTypeDescription
idintegerUnique opinion ID
namestringAI-generated title
short_textstringBrief summary
source_idintegerInternal source identifier
signal_idintegerSignal type (see /signal-types)
crypto_currency_idintegerCryptocurrency ID (see /cryptocurrencies)
published_atdatetimePublication timestamp (ISO 8601)
importantintegerImportance: 1 (minimal) to 5 (critical)
durationstringTimeframe: 1h, 4h, 8h, 12h, 1d, 3d, 7d, 14d, 30d
source_typestring Content type: signalopinionnewsarticleanalysisprice_alertannouncementmemewithdrawalairdrop
actual_profit_percentdecimal|nullActual profit 0-100% (filled after duration ends)
profit_calculated_atdatetime|nullWhen profit was calculated
tone_scoreintegerSentiment tone (0-100)
confidence_scoreintegerAI confidence (0-100)
quality_markersarrayQuality indicator tags
pump_markersarrayPotential pump/dump indicators
risk_levelstring Risk assessment: conservativemoderateaggressive
predicted_profit_likelihoodintegerSuccess probability (0-100%)

Example

curl -H "X-Api-Token: YOUR_TOKEN" \
  "https://cryptochase.ai/api/v1/opinions?from=2026-01-01&signal_id=1&per_page=10"
GET/opinions/{id}

Get a single opinion by ID. Only opinions from the last 30 days are accessible.

Signal Types

GET/signal-types

Get all available signal types (BUY, SELL, HOLD, etc.) with sentiment values.

Response Fields

FieldTypeDescription
idintegerUnique signal type ID
namestringSignal type name (e.g., BUY, SELL, HOLD)
slugstringURL-friendly identifier
sentiment_valuedecimal-1 (bearish) to 1 (bullish)

Cryptocurrencies

GET/cryptocurrencies

Get a paginated list of cryptocurrencies tracked by our system.

Query Parameters

ParameterTypeDescription
searchstringSearch by name or symbol
has_opinionsbooleanOnly return cryptos with opinions
per_pageintegerResults per page (default: 50, max: 500)

Webhooks

Receive real-time notifications when new opinions are generated.

PUT/webhook

Set or update your webhook URL:

{ "webhook_url": "https://your-server.com/webhook" }

Webhook Payload

When a new opinion is created, we POST this JSON to your webhook:

{
  "event": "opinion.created",
  "timestamp": "2026-01-07T12:00:00Z",
  "data": {
    "id": 12345,
    "name": "Bitcoin Shows Bullish Momentum",
    "short_text": "BTC breaks key resistance...",
    "signal_id": 1,
    "crypto_currency_id": 1,
    "published_at": "2026-01-07T12:00:00Z",
    "important": 4,
    "duration": "1d",
    "source_type": "signal",
    "tone_score": 75,
    "confidence_score": 80,
    "risk_level": "moderate",
    "predicted_profit_likelihood": 65
  }
}

Signature Verification

Each request includes an X-Webhook-Signature header (HMAC-SHA256):

PHP
$signature = hash_hmac('sha256', $requestBody, $webhookSecret);
$isValid = hash_equals($signature, $_SERVER['HTTP_X_WEBHOOK_SIGNATURE']);
POST/webhook/test

Send a test webhook to verify your endpoint is correctly configured.

Error Codes

StatusCodeDescription
401missing_api_tokenNo API token provided
401invalid_api_tokenInvalid or unrecognized token
403api_access_expiredAPI access period has expired
403api_access_inactiveAPI access is not active
404not_foundResource not found or older than 30 days
422validation_errorInvalid request parameters
429rate_limit_exceededToo many requests

Support

Need help with the API? Contact our support team: