MakeCrypt API Documentation

Access AI-curated crypto news, sentiment analysis, daily briefs, and manage your RSS feeds programmatically.

Getting Started

The MakeCrypt API provides access to real-time cryptocurrency news, sentiment data, and user-specific features. To use the API, you need an active subscription and either an API key or a JWT token.

  • Subscribe: Choose a plan on the Pricing page to activate your subscription and receive an order ID.
  • Register: Use your order ID as an invitation link to create an account at /register.
  • Get API Key: Generate an API key from the dashboard's Settings page.
  • Authenticate: Use your API key in the X-API-KEY header or obtain a JWT token via /api/v1/auth/login.

Authentication

All API requests require authentication via either:

  • API Key: Include in the X-API-KEY header.
  • JWT Token: Include in the Authorization: Bearer <token> header after logging in.

X-API-KEY: your_api_key

Authorization: Bearer your_jwt_token

API Status

Check if the MakeCrypt API is operational.

GET

/api/v1/status

Example Request

curl "https://makecrypt.com/api/v1/status"

Example Response

{"status": "ok"}

Login

Authenticate to receive a JWT token for accessing protected endpoints.

POST

/api/v1/auth/login

Request Body:

  • identifier: Email or username
  • password: User password

Example Request

curl -X POST -H "Content-Type: application/json" \
-d '{"identifier":"[email protected]","password":"securepassword"}' \
"https://makecrypt.com/api/v1/auth/login"

Example Response

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "user": {
        "id": 1,
        "username": "crypto_user",
        "email": "[email protected]"
    }
}

Register

Create a new account using your subscription order ID from the Pricing page and receive a JWT token.

POST

/api/v1/auth/register

Request Body:

  • email: User email
  • username: Unique username
  • password: User password
  • confirm_password: Password confirmation
  • invitation_code: Your subscription order ID (obtained after subscribing at /pricing)

Example Request

curl -X POST -H "Content-Type: application/json" \
-d '{"email":"[email protected]","username":"crypto_user","password":"securepassword","confirm_password":"securepassword","invitation_code":"ORDER123456"}' \
"https://makecrypt.com/api/v1/auth/register"

Example Response

{
    "message": "User created successfully.",
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "user": {
        "id": 1,
        "username": "crypto_user",
        "email": "[email protected]"
    }
}

Get All Posts

Retrieve a paginated list of published crypto news articles, optionally filtered by date.

GET

/api/v1/posts

Query Parameters:

  • page (optional): Page number (default: 1)
  • per_page (optional): Posts per page (default: 10)
  • start_date (optional): Filter articles published on or after this date (YYYY-MM-DD)
  • end_date (optional): Filter articles published on or before this date (YYYY-MM-DD)

Example Request

curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/posts?page=1&per_page=10&start_date=2025-10-01&end_date=2025-10-05"

Example Response

{
    "posts": [
        {
            "id": 123,
            "title": "Crypto Markets Brace for Volatility",
            "slug": "crypto-markets-brace-for-volatility-abc123",
            "summary": "The market is on edge as new regulatory frameworks are proposed...",
            "categories": ["regulation", "market analysis"],
            "published_date": "2025-10-05T14:34:00+00:00",
            "sentiment_score": -15,
            "source_name": "CoinDesk",
            "source_links": [
                "https://www.coindesk.com/policy/2025/10/05/us-regulator-proposes-new-defi-rules/",
                "https://www.theblock.co/post/12345/market-reacts-to-fed-statements"
            ]
        }
    ],
    "total_pages": 5,
    "current_page": 1,
    "total_posts": 50
}

Get Post by Slug

Retrieve a single article by its unique slug.

GET

/api/v1/posts/<slug>

Example Request

curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/posts/crypto-markets-brace-for-volatility-abc123"

Example Response

{
    "id": 123,
    "title": "Crypto Markets Brace for Volatility",
    "slug": "crypto-markets-brace-for-volatility-abc123",
    "summary": "The market is on edge as new regulatory frameworks are proposed...",
    "categories": ["regulation", "market analysis"],
    "published_date": "2025-10-05T14:34:00+00:00",
    "sentiment_score": -15,
    "source_name": "CoinDesk",
    "source_links": [
        "https://www.coindesk.com/policy/2025/10/05/us-regulator-proposes-new-defi-rules/",
        "https://www.theblock.co/post/12345/market-reacts-to-fed-statements"
    ]
}

Get Dashboard Stats

Retrieve key metrics from your dashboard, including article counts, RSS sources, sentiment mentions, top gainers/losers, and daily brief.

GET

/api/v1/dashboard/stats

Example Request

curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/dashboard/stats"

Example Response

{
    "stats": {
        "published_articles_month": 50,
        "active_sources": 5,
        "positive_sentiment_month": 200,
        "total_mentions_month": 500
    },
    "top_gainers": [
        {"ticker": "BTC", "score": 150},
        {"ticker": "ETH", "score": 100}
    ],
    "top_losers": [
        {"ticker": "XRP", "score": -50}
    ],
    "ai_brief": "Market showed volatility due to regulatory news..."
}

Get Sentiment Analysis

Access sentiment data, including leaderboard, distribution, trend for a specific ticker, and detailed log.

GET

/api/v1/dashboard/sentiment

Query Parameters:

  • start_date (optional): Start date (YYYY-MM-DD, default: 7 days ago)
  • end_date (optional): End date (YYYY-MM-DD, default: today)
  • ticker (optional): Filter by coin ticker (e.g., BTC)
  • page (optional): Page number for log (default: 1)

Example Request

curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/dashboard/sentiment?start_date=2025-09-28&end_date=2025-10-05&ticker=BTC&page=1"

Example Response

{
    "summary": [
        {
            "ticker": "BTC",
            "weighted_score": 150,
            "positive_mentions": 100,
            "negative_mentions": 20
        }
    ],
    "distribution": {
        "positive": 200,
        "negative": 50,
        "neutral": 150
    },
    "chart_data": {
        "labels": ["2025-09-28", "2025-09-29"],
        "scores": [50, 100]
    },
    "log": {
        "entries": [
            {
                "id": 1,
                "ticker": "BTC",
                "sentiment_score": 5,
                "importance_score": 8,
                "headline": "Bitcoin ETF Approved",
                "source_name": "CoinDesk",
                "article_url": "https://www.coindesk.com/...",
                "timestamp": "2025-10-05T14:34:00+00:00"
            }
        ],
        "total_pages": 2,
        "current_page": 1,
        "total_entries": 30
    }
}

Get Daily Brief

Retrieve your AI-generated daily market brief for a specific date.

GET

/api/v1/dashboard/daily-brief

Query Parameters:

  • date (optional): Date of the brief (YYYY-MM-DD, default: yesterday)

Example Request

curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/dashboard/daily-brief?date=2025-10-04"

Example Response

{
    "date": "2025-10-04",
    "brief": "Market showed volatility due to regulatory news..."
}

Get User Articles

Retrieve a paginated list of articles generated for your account, optionally filtered by date.

GET

/api/v1/user/articles

Query Parameters:

  • page (optional): Page number (default: 1)
  • start_date (optional): Filter articles published on or after this date (YYYY-MM-DD)
  • end_date (optional): Filter articles published on or before this date (YYYY-MM-DD)

Example Request

curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/user/articles?page=1&start_date=2025-10-01"

Example Response

{
    "articles": [
        {
            "id": 123,
            "title": "Your Custom Crypto Update",
            "slug": "custom-crypto-update-abc123",
            "summary": "Summary of your feeds...",
            "categories": ["market analysis"],
            "published_date": "2025-10-05T14:34:00+00:00",
            "sentiment_score": 10,
            "source_name": "Custom Feed",
            "source_links": ["https://example.com/feed"]
        }
    ],
    "total_pages": 3,
    "current_page": 1,
    "total_articles": 45
}

Manage RSS Sources

Add, retrieve, or delete RSS feed sources for your account.

GET POST DELETE

/api/v1/user/rss-sources

GET: List all sources.

POST Request Body:

  • name: Source name (e.g., Cointelegraph)
  • url: RSS feed URL (must start with http)

DELETE Query Parameter:

  • source_id: ID of the source to delete

Example Requests

# GET sources
curl -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/user/rss-sources"

# POST new source
curl -X POST -H "Authorization: Bearer your_jwt_token" \
-H "Content-Type: application/json" \
-d '{"name":"Cointelegraph","url":"https://cointelegraph.com/rss"}' \
"https://makecrypt.com/api/v1/user/rss-sources"

# DELETE source
curl -X DELETE -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/user/rss-sources?source_id=1"

Example Responses

# GET
[
    {
        "id": 1,
        "name": "Cointelegraph",
        "url": "https://cointelegraph.com/rss",
        "is_active": true,
        "last_fetched": "2025-10-05T14:34:00+00:00"
    }
]

# POST
{
    "id": 2,
    "name": "New Feed",
    "url": "https://example.com/rss",
    "is_active": true,
    "last_fetched": null
}

# DELETE
{"message": "Source deleted."}

Regenerate API Key

Generate a new API key for your account, invalidating the previous one.

POST

/api/v1/user/api-key

Example Request

curl -X POST -H "Authorization: Bearer your_jwt_token" \
"https://makecrypt.com/api/v1/user/api-key"

Example Response

{"api_key": "new_api_key_1234567890abcdef"}