{
  "openapi": "3.0.1",
  "info": {
    "title": "GMGN Crypto KOL Twitter & Telegram Signal Feed",
    "description": "Live feed of crypto KOL Twitter activity (tweets, reposts, quotes, profile changes) and Telegram channel calls from GMGN.ai. Each event tagged by user category (KOL, trader, founder, exchange, celebrity), follower count, content + translation, source tweet, and token address discussed.",
    "version": "1.0",
    "x-build-id": "wk8ZRUcd7yh6pI3tt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/logiover~gmgn-crypto-kol-twitter-telegram-feed/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-logiover-gmgn-crypto-kol-twitter-telegram-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/logiover~gmgn-crypto-kol-twitter-telegram-feed/runs": {
      "post": {
        "operationId": "runs-sync-logiover-gmgn-crypto-kol-twitter-telegram-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/logiover~gmgn-crypto-kol-twitter-telegram-feed/run-sync": {
      "post": {
        "operationId": "run-sync-logiover-gmgn-crypto-kol-twitter-telegram-feed",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "feeds": {
            "title": "Feeds to Scrape",
            "uniqueItems": true,
            "type": "array",
            "description": "Which GMGN feeds to scrape. 'twitter' = KOL Twitter activity. 'telegram' = Telegram channel signals. Both together gives the broadest alpha coverage.",
            "items": {
              "type": "string",
              "enum": [
                "twitter",
                "telegram"
              ],
              "enumTitles": [
                "Twitter (KOL feed)",
                "Telegram (channels)"
              ]
            },
            "default": [
              "twitter",
              "telegram"
            ]
          },
          "userTags": {
            "title": "Twitter User Tags",
            "uniqueItems": true,
            "type": "array",
            "description": "Which user categories to include in the Twitter feed. Leave empty for ALL categories. Possible values: kol, trader, master, politics, media, companies, founder, exchange, celebrity, binance_square, exchange_listing, other.",
            "items": {
              "type": "string",
              "enum": [
                "kol",
                "trader",
                "master",
                "politics",
                "media",
                "companies",
                "founder",
                "exchange",
                "celebrity",
                "binance_square",
                "exchange_listing",
                "other"
              ],
              "enumTitles": [
                "KOL",
                "Trader",
                "Master",
                "Politics",
                "Media",
                "Companies",
                "Founder",
                "Exchange",
                "Celebrity",
                "Binance Square",
                "Exchange Listing",
                "Other"
              ]
            },
            "default": [
              "kol",
              "trader",
              "master",
              "politics",
              "media",
              "companies",
              "founder",
              "exchange",
              "celebrity",
              "binance_square",
              "exchange_listing",
              "other"
            ]
          },
          "twTypes": {
            "title": "Twitter Event Types",
            "uniqueItems": true,
            "type": "array",
            "description": "Which Twitter event types to keep. Examples: tweet (original post), repost, quote, reply, delete_post, follow, unfollow, banner (avatar change), name / handle / description / photo (profile updates), pin / unpin.",
            "items": {
              "type": "string",
              "enum": [
                "tweet",
                "repost",
                "quote",
                "reply",
                "delete_post",
                "pin",
                "unpin",
                "follow",
                "unfollow",
                "banner",
                "photo",
                "name",
                "handle",
                "description"
              ],
              "enumTitles": [
                "Tweet",
                "Repost",
                "Quote",
                "Reply",
                "Delete Post",
                "Pin",
                "Unpin",
                "Follow",
                "Unfollow",
                "Banner Change",
                "Photo Change",
                "Name Change",
                "Handle Change",
                "Description Change"
              ]
            },
            "default": [
              "tweet",
              "repost",
              "quote",
              "reply",
              "delete_post",
              "pin",
              "unpin",
              "follow",
              "unfollow",
              "banner",
              "photo",
              "name",
              "handle",
              "description"
            ]
          },
          "hasToken": {
            "title": "Only Token-Tagged Tweets",
            "type": "boolean",
            "description": "When ON, keep only Twitter posts where GMGN matched a token contract from the content (cashtag, contract address, etc.).",
            "default": false
          },
          "featuredOnly": {
            "title": "Featured Only",
            "type": "boolean",
            "description": "When ON, GMGN returns only featured / curated items.",
            "default": false
          },
          "mineOnly": {
            "title": "Mine Only (authenticated)",
            "type": "boolean",
            "description": "When ON, GMGN tries to return only items relevant to the authenticated user. Without auth this generally returns nothing — leave OFF unless you've extended the actor with cookies.",
            "default": false
          },
          "tgFeatured": {
            "title": "Telegram Featured Only",
            "type": "boolean",
            "description": "Telegram counterpart of `featuredOnly`.",
            "default": false
          },
          "tgLimit": {
            "title": "Telegram Limit per Call",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Telegram messages per call (max 30 per call observed).",
            "default": 30
          },
          "pollIterations": {
            "title": "Poll Iterations",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "How many times to re-poll each feed in a single run, waiting `pollIntervalSec` between iterations. 1 = fetch once and exit (fast preview). Set to 30 for ~15 minutes of continuous feed monitoring at the default 30s interval. Set higher (e.g. 720) for multi-hour signal feeds.",
            "default": 1
          },
          "pollIntervalSec": {
            "title": "Poll Interval (seconds)",
            "minimum": 5,
            "maximum": 3600,
            "type": "integer",
            "description": "Seconds to wait between polls when `pollIterations > 1`.",
            "default": 30
          },
          "deduplicate": {
            "title": "Deduplicate Across Polls",
            "type": "boolean",
            "description": "When ON, items already seen in earlier polls of the same run are skipped. Recommended when using `pollIterations > 1`.",
            "default": true
          },
          "useProxy": {
            "title": "Use Apify Proxy",
            "type": "boolean",
            "description": "Route requests through Apify Proxy. Strongly recommended ON — residential proxy is the most reliable way to bypass Cloudflare rate limits.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify Proxy configuration. Residential proxy group is recommended for the highest success rate against Cloudflare.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "maxConcurrency": {
            "title": "Max Concurrent Requests",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum number of API calls running in parallel. Higher = faster runs but more chance of hitting rate limits. 3-5 is safe.",
            "default": 2
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}