{
  "openapi": "3.0.1",
  "info": {
    "title": "X (Twitter) Real-Time Monitor: Posts, Follows & Profile Changes",
    "description": "Monitor X posts and account changes via WebSocket or webhook. Solo: 10 accounts for $20 per 30 days. Free demo: @Reuters only, delayed, no history.",
    "version": "1.0",
    "x-build-id": "FRavmybI3BfrQRTBq"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/feeddlabs~x-twitter-user-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-feeddlabs-x-twitter-user-tracker",
        "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/feeddlabs~x-twitter-user-tracker/runs": {
      "post": {
        "operationId": "runs-sync-feeddlabs-x-twitter-user-tracker",
        "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/feeddlabs~x-twitter-user-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-feeddlabs-x-twitter-user-tracker",
        "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",
        "required": [
          "action"
        ],
        "properties": {
          "action": {
            "title": "Action",
            "enum": [
              "track",
              "fetch",
              "webhook",
              "status",
              "stop",
              "remove",
              "key"
            ],
            "type": "string",
            "description": "Start with track: it buys your plan, adds your accounts, and gives you your stream key in the OUTPUT. fetch exports your 100 newest posts and 30 days of follows and profile changes, or only what's new since your last run. webhook sends every event to a URL, such as a Discord or Slack channel or a Zapier, Make, or n8n hook. The others check status, pause an account, remove one to free its place (2 per 30 days, for typos), or replace a lost key.",
            "default": "status"
          },
          "user": {
            "title": "Account",
            "type": "string",
            "description": "One handle or ID, e.g. @nasa."
          },
          "users": {
            "title": "Accounts",
            "type": "array",
            "description": "Up to 500 handles or IDs per run.",
            "items": {
              "type": "string"
            }
          },
          "accountsDataset": {
            "title": "Accounts from a dataset",
            "type": "string",
            "description": "Paste the dataset ID of a run of our Search Scraper, Followers Scraper, Account Watch, or Ads Library to track every account in it."
          },
          "plan": {
            "title": "Plan",
            "enum": [
              "solo",
              "team",
              "desk",
              "fleet"
            ],
            "type": "string",
            "description": "Solo: 10 accounts for $20. Team: 50 for $80. Desk: 150 for $200. Fleet: 500 for $500. Each lasts 30 days. Set Maximum cost per run at least $0.02 above the package price ($20.02 for Solo)."
          },
          "renew": {
            "title": "Renew plan",
            "type": "boolean",
            "description": "Buy another 30 days of your plan, starting when the current period ends.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new since my last run",
            "type": "boolean",
            "description": "With the fetch action: return only what's new since your last run with this ticked. Schedule it every few minutes and connect Apify's Slack, Google Sheets, or email integrations to it.",
            "default": false
          },
          "maxPages": {
            "title": "Maximum pages",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "With the fetch action: stop the export after this many pages. The run's OUTPUT says whether the export finished.",
            "default": 1000
          },
          "maxBytes": {
            "title": "Maximum bytes",
            "minimum": 1048576,
            "maximum": 268435456,
            "type": "integer",
            "description": "With the fetch action: stop writing after this many bytes. Rows already written stay in the dataset.",
            "default": 67108864
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "With the webhook action: where to send every new post, follow, unfollow, and profile change as it happens. Leave empty to stop sending. For Telegram, fill the two Telegram fields instead."
          },
          "webhookFormat": {
            "title": "Webhook format",
            "enum": [
              "discord",
              "slack",
              "telegram",
              "json"
            ],
            "type": "string",
            "description": "Discord, Slack, and Telegram: a readable message per event, each post once. JSON: the event itself, signed, for Zapier, Make, n8n, or your server.",
            "default": "json"
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "With the Telegram format: the token @BotFather gives you when you create a bot. Add the bot to your channel or group first. Leave empty to stop sending."
          },
          "telegramChat": {
            "title": "Telegram channel or group",
            "type": "string",
            "description": "With the Telegram format: @name of a public channel or group, or its numeric ID (like -1001234567890) for a private one."
          },
          "rotateKey": {
            "title": "Rotate stream key",
            "type": "boolean",
            "description": "With the key action: get a new stream key, for example if you lost yours. The old key stops working and its open stream closes.",
            "default": false
          },
          "revokeKey": {
            "title": "Revoke stream key",
            "type": "boolean",
            "description": "With the key action: delete the stream key and close its open stream.",
            "default": false
          },
          "reportProblem": {
            "title": "Report a problem",
            "type": "string",
            "description": "Something wrong or missing? Write it here and run: we get your message, the run does nothing else, and it's free. AI agents can use this too."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}