Skip to content

Eng 8702,eng 8703,eng 8704 #18072

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 33 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
5227f82
added boiler plate code
HarshGautam7101 Aug 14, 2025
f847dd0
added price endpoint action
HarshGautam7101 Aug 14, 2025
5d78903
added hourly ohlcv action
HarshGautam7101 Aug 14, 2025
026e5c1
added daily ohlcv endpoint action
HarshGautam7101 Aug 14, 2025
256b743
added moonshot tokens endpoint action
HarshGautam7101 Aug 14, 2025
5a9ce83
added tm grades tokens endpoint action
HarshGautam7101 Aug 14, 2025
fe51956
added tm grades historical tokens endpoint action
HarshGautam7101 Aug 14, 2025
1254807
added fundamental grades tokens endpoint action
HarshGautam7101 Aug 14, 2025
43fa7ca
added fundamental grades historical tokens endpoint action
HarshGautam7101 Aug 14, 2025
7668376
added technology grades tokens endpoint action
HarshGautam7101 Aug 14, 2025
674f23f
added technology grades historical tokens endpoint action
HarshGautam7101 Aug 14, 2025
c032ddb
added market metrics tokens endpoint action
HarshGautam7101 Aug 14, 2025
40eb782
added ai reports tokens endpoint action
HarshGautam7101 Aug 14, 2025
d3ddaea
added crypto investors tokens endpoint action
HarshGautam7101 Aug 14, 2025
cd8b855
added top market cap tokens endpoint action
HarshGautam7101 Aug 14, 2025
068bf3b
added resistance and support tokens endpoint action
HarshGautam7101 Aug 14, 2025
34182b3
added hourly trading signals tokens endpoint action
HarshGautam7101 Aug 14, 2025
b79de6b
added quantmetrics tokens endpoint action
HarshGautam7101 Aug 14, 2025
0f5997a
added scenario analysis tokens endpoint action
HarshGautam7101 Aug 14, 2025
9868b59
added correlation tokens endpoint action
HarshGautam7101 Aug 14, 2025
8c25d8e
added indices tokens endpoint action
HarshGautam7101 Aug 14, 2025
e18265e
added indices holdings tokens endpoint action
HarshGautam7101 Aug 14, 2025
ce3e304
added indices performance tokens endpoint action
HarshGautam7101 Aug 14, 2025
005ef63
Merge branch 'master' into ENG-8702,ENG-8703,ENG-8704
HarshGautam7101 Aug 15, 2025
9d51809
Merge branch 'master' into ENG-8702,ENG-8703,ENG-8704
HarshGautam7101 Aug 19, 2025
b7b46b7
updated readme
HarshGautam7101 Aug 19, 2025
13a06c6
Merge branch 'ENG-8702,ENG-8703,ENG-8704' of https://github.com/Harsh…
HarshGautam7101 Aug 19, 2025
aa18f0e
Update README.md
HarshGautam7101 Aug 19, 2025
eb6853b
Merge branch 'master' into ENG-8702,ENG-8703,ENG-8704
HarshGautam7101 Aug 19, 2025
e81299e
Merge branch 'master' into ENG-8702,ENG-8703,ENG-8704
HarshGautam7101 Aug 21, 2025
7fdd3ab
feat: improve component documentation and validation
HarshGautam7101 Aug 22, 2025
5a2c7fe
feat: improve component documentation and validation
HarshGautam7101 Aug 22, 2025
f0dd550
Merge branch 'master' into ENG-8702,ENG-8703,ENG-8704
HarshGautam7101 Aug 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 75 additions & 4 deletions components/token_metrics/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,82 @@
# Overview

The Token Metrics API offers access to a trove of cryptocurrency data, including analytics, rankings, and predictions that leverage artificial intelligence and expert insights. With this API, you can automate investment strategies, integrate up-to-date crypto data into your applications, and stay informed with the latest market trends. When used on Pipedream, it allows you to build robust, serverless workflows that can react to various triggers and integrate with numerous services for a seamless data handling experience.
The Token Metrics API integration for Pipedream provides comprehensive access to cryptocurrency data, analytics, and AI-powered insights. This component enables seamless integration of advanced token metrics, market analysis, and trading intelligence into your automated workflows.

Token Metrics delivers institutional-grade cryptocurrency analytics, including AI-generated reports, trading signals, fundamental and technical analysis, market metrics, and performance data across thousands of digital assets.

# Key Features

- **Comprehensive Token Data**: Access detailed information for thousands of cryptocurrencies including prices, market metrics, and historical data
- **AI-Powered Analytics**: Leverage AI-generated reports, trading signals, and investment analysis
- **Advanced Grading Systems**: Access TM Grades, Fundamental Grades, and Technology Grades for informed decision-making
- **Market Intelligence**: Get market metrics, correlation analysis, and scenario-based price predictions
- **Professional Indices**: Access crypto indices with holdings and performance data
- **OHLCV Data**: Retrieve hourly and daily Open, High, Low, Close, Volume data
- **Quantitative Metrics**: Advanced quantitative analysis and resistance/support levels

# Authentication

To use the Token Metrics API component, you'll need:

1. A Token Metrics account with API access
2. An API key from your Token Metrics dashboard

The API uses API key authentication via the `x-api-key` header. Your API key should be kept secure and not shared publicly.

## Setup Instructions

1. Sign up for a Token Metrics account at https://www.tokenmetrics.com/api
2. Navigate to your [api keys dashboard](https://app.tokenmetrics.com/en/api?tab=keys) and generate an API key
3. In Pipedream, connect the Token Metrics app using your API key
4. The API key will be automatically included in all requests via the `x-api-key` header

# Available Components

This component provides pre-built actions for all major Token Metrics API endpoints, covering token data, AI-powered analytics, market metrics, trading signals, grading systems, and more. All actions support filtering, pagination, and use API key authentication.

# Example Use Cases

- **Crypto Alert System**: Build a workflow on Pipedream that monitors the Token Metrics API for significant changes in crypto ratings or predictions. When certain thresholds are met, use the integrated Twilio app to send SMS alerts, ensuring you or your audience stay up-to-date on important market movements.
- **Automated Trading Systems**: Monitor AI-generated trading signals and execute automated trades
- **Portfolio Management**: Track cryptocurrency portfolios with comprehensive token metrics and grades
- **Market Research**: Generate detailed investment analysis using AI reports and fundamental data
- **Risk Management**: Monitor market conditions, correlations, and implement risk strategies
- **Price Monitoring**: Track token prices and receive alerts on significant market movements

# API Endpoint

Base URL: `https://api.tokenmetrics.com/v2`

All requests require the `x-api-key` header for authentication.

# Rate Limits & Usage

Please refer to the [Token Metrics API documentation](https://developers.tokenmetrics.com/) for current rate limits, usage guidelines, and pricing information.

# Data Filtering & Pagination

Actions support comprehensive filtering by token identifiers, market criteria, date ranges, and standard pagination controls. See the [Token Metrics API documentation](https://developers.tokenmetrics.com/) for specific filter options.

# Error Handling

The component includes comprehensive error handling for common scenarios:

- **401 Unauthorized**: Invalid or expired API key
- **403 Forbidden**: Insufficient API key permissions
- **429 Rate Limited**: API rate limit exceeded
- **5xx Server Errors**: Token Metrics API server issues

# Support & Resources

## Official Token Metrics Resources

- **API Dashboard**: [app.tokenmetrics.com/en/api](https://app.tokenmetrics.com/en/api) - Manage your API keys and access
- **API Pricing Plans**: [app.tokenmetrics.com/en/api-plans](https://app.tokenmetrics.com/en/api-plans) - View pricing and plan details
- **Token Metrics API Documentation**: [developers.tokenmetrics.com](https://developers.tokenmetrics.com/) - Complete API reference
- **API Support (Telegram)**: [t.me/tokenmetricsapi](https://t.me/tokenmetricsapi) - Developer community and support
- **Contact Us**: [tokenmetrics.com/contact-us](https://www.tokenmetrics.com/contact-us) - General support and inquiries

- **Investment Tracker**: Create a Pipedream workflow that pulls daily investment insights and portfolio analytics from the Token Metrics API and logs them to a Google Sheets document. This allows for easy tracking and historical data analysis, helping to refine investment strategies over time.
## Community & Support

- **Market Dashboard Sync**: Use Pipedream to set up a workflow where market data and analytics from the Token Metrics API are fetched periodically and pushed to a real-time dashboard built with Geckoboard. This keeps your team or clients informed with the latest crypto market trends and forecasts.
- **Pipedream Community**: For integration and workflow assistance
- **Component Issues**: Report bugs or request features via the Pipedream platform
- **Email Support**: [email protected] for API-related issues
66 changes: 66 additions & 0 deletions components/token_metrics/actions/get-ai-reports/get-ai-reports.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import tokenMetrics from "../../token_metrics.app.mjs";
import { ENDPOINTS } from "../../common/constants.mjs";
import { buildParams, generateFilterSummary } from "../../common/utils.mjs";

const endpoint = ENDPOINTS.AI_REPORTS;

export default {
key: "token_metrics-get-ai-reports",
name: "Get AI Reports",
description: `${endpoint.description}. [See the documentation](https://developers.tokenmetrics.com/reference/ai-reports)`,
version: "0.0.1",
type: "action",
props: {
tokenMetrics,
// Filter props using propDefinitions from the app
tokenId: {
propDefinition: [
tokenMetrics,
"tokenId",
],
description: "Select Token IDs to get AI reports for. Example: `37493,3484`",
},
symbol: {
propDefinition: [
tokenMetrics,
"symbol",
],
description: "Select token symbols to get AI reports for. Example: `APX,PAAL`",
},
// Pagination props
limit: {
propDefinition: [
tokenMetrics,
"limit",
],
description: "Limit the number of items in response. Defaults to 50",
default: 50,
},
page: {
propDefinition: [
tokenMetrics,
"page",
],
min: 1,
default: 1,
},
},
async run({ $ }) {
// Build parameters using utility function
const params = buildParams(this, endpoint.filters);

const response = await this.tokenMetrics.getAiReports({
$,
params,
});

// Generate summary using utility function
const filterSummary = generateFilterSummary(this, endpoint.filters);

// Use $ context for export
const dataLength = response.data?.length || 0;
$.export("$summary", `Successfully retrieved AI reports for ${dataLength} tokens${filterSummary}`);

return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import tokenMetrics from "../../token_metrics.app.mjs";
import { ENDPOINTS } from "../../common/constants.mjs";
import { buildParams, generateFilterSummary } from "../../common/utils.mjs";

const endpoint = ENDPOINTS.CORRELATION;

export default {
key: "token_metrics-get-correlation",
name: "Get Correlation",
description: `${endpoint.description}. [See the documentation](https://developers.tokenmetrics.com/reference/correlation)`,
version: "0.0.1",
type: "action",
props: {
tokenMetrics,
// Filter props based on endpoint configuration and API documentation
tokenId: {
propDefinition: [
tokenMetrics,
"tokenId",
],
},
symbol: {
propDefinition: [
tokenMetrics,
"symbol",
],
},
category: {
propDefinition: [
tokenMetrics,
"category",
],
description: "Select categories to filter results. Example: `layer-1,nft`",
},
exchange: {
propDefinition: [
tokenMetrics,
"exchange",
],
description: "Select exchanges to filter results. Example: `gate,binance`",
},
// Pagination props
limit: {
propDefinition: [
tokenMetrics,
"limit",
],
description: "Limit the number of items in response. Defaults to 50",
default: 50,
},
page: {
propDefinition: [
tokenMetrics,
"page",
],
min: 1,
default: 1,
},
},
async run({ $ }) {
// Build parameters using utility function
const params = buildParams(this, endpoint.filters);

const response = await this.tokenMetrics.getCorrelation({
$,
params,
});

// Generate summary using utility function
const filterSummary = generateFilterSummary(this, endpoint.filters);

// Use $ context for export
const dataLength = response.data?.length || 0;
$.export("$summary", `Successfully retrieved correlation data for ${dataLength} tokens${filterSummary}`);

return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import tokenMetrics from "../../token_metrics.app.mjs";
import { ENDPOINTS } from "../../common/constants.mjs";
import { buildParams, generateFilterSummary } from "../../common/utils.mjs";

const endpoint = ENDPOINTS.CRYPTO_INVESTORS;

export default {
key: "token_metrics-get-crypto-investors",
name: "Get Crypto Investors",
description: `${endpoint.description}. [See the documentation](https://developers.tokenmetrics.com/reference/crypto-investors)`,
version: "0.0.1",
type: "action",
props: {
tokenMetrics,
// Pagination props
limit: {
propDefinition: [
tokenMetrics,
"limit",
],
description: "Limit the number of items in response. Defaults to 50",
default: 50,
},
page: {
propDefinition: [
tokenMetrics,
"page",
],
min: 1,
default: 1,
},
},
async run({ $ }) {
// Build parameters using utility function
const params = buildParams(this, endpoint.filters);

const response = await this.tokenMetrics.getCryptoInvestors({
$,
params,
});

// Generate summary using utility function
const filterSummary = generateFilterSummary(this, endpoint.filters);

// Use $ context for export
const dataLength = response.data?.length || 0;
$.export("$summary", `Successfully retrieved ${dataLength} crypto investors${filterSummary}`);

return response;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import tokenMetrics from "../../token_metrics.app.mjs";
import { ENDPOINTS } from "../../common/constants.mjs";
import { buildParams, generateFilterSummary } from "../../common/utils.mjs";

const endpoint = ENDPOINTS.DAILY_OHLCV;

export default {
key: "token_metrics-get-daily-ohlcv",
name: "Get Daily OHLCV",
description: `${endpoint.description}. [See the documentation](https://developers.tokenmetrics.com/reference/daily-ohlcv)`,
version: "0.0.1",
type: "action",
props: {
tokenMetrics,
// Filter props based on endpoint configuration and screenshot
tokenId: {
propDefinition: [
tokenMetrics,
"tokenId",
],
},
symbol: {
propDefinition: [
tokenMetrics,
"symbol",
],
},
tokenName: {
propDefinition: [
tokenMetrics,
"tokenName",
],
description: "Select crypto asset names to filter results. Example: `Bitcoin`",
},
startDate: {
propDefinition: [
tokenMetrics,
"startDate",
],
description: "Start Date accepts date as a string - `YYYY-MM-DD` format. Note: The Start Date cannot be earlier than the past 30 days from the current date. Example: `2025-01-01`",
},
endDate: {
propDefinition: [
tokenMetrics,
"endDate",
],
description: "End Date accepts date as a string - `YYYY-MM-DD` format. Example: `2025-01-23`",
},
// Pagination props
limit: {
propDefinition: [
tokenMetrics,
"limit",
],
description: "Limit the number of items in response. Defaults to 50",
default: 50,
},
page: {
propDefinition: [
tokenMetrics,
"page",
],
min: 1,
default: 1,
},
},
async run({ $ }) {
// Build parameters using utility function
const params = buildParams(this, endpoint.filters);

const response = await this.tokenMetrics.getDailyOhlcv({
$,
params,
});

// Generate summary using utility function
const filterSummary = generateFilterSummary(this, endpoint.filters);

// Use $ context for export
const dataLength = response.data?.length || 0;
$.export("$summary", `Successfully retrieved ${dataLength} daily OHLCV records${filterSummary}`);

return response;
},
};
Loading