{
  "openapi": "3.0.1",
  "info": {
    "title": "Truth Social Scraper - Posts, Profiles & Engagement",
    "description": "Scrape posts (Truths) and profiles from any Truth Social account: full text, replies, re-Truths and favourites counts, media, hashtags, mentions and account stats (followers, following, bio). No login, cents per post.",
    "version": "0.1",
    "x-build-id": "5H4MwBs3cgtS346WS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~truth-social-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-truth-social-scraper",
        "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/scrapesage~truth-social-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-truth-social-scraper",
        "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/scrapesage~truth-social-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-truth-social-scraper",
        "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": {
          "handles": {
            "title": "Handles",
            "type": "array",
            "description": "Truth Social account handles - the name after the @ in the profile URL (e.g. <code>realDonaldTrump</code>). A full profile URL like <code>https://truthsocial.com/@realDonaldTrump</code> or an <code>@handle</code> is accepted too. <b>Leave empty and the run returns a small free sample.</b>",
            "items": {
              "type": "string"
            }
          },
          "handlesFromFile": {
            "title": "Import handles from a file",
            "type": "string",
            "description": "Bulk-load handles. Either <b>paste the whole list</b> (one per line or comma-separated), or give <b>a single link</b> to a public <code>.txt</code>/<code>.csv</code>, a Google Sheet/Drive link, or an Apify key-value-store record. A file that cannot be read says so and charges nothing."
          },
          "startUrls": {
            "title": "Profile URLs (optional)",
            "type": "array",
            "description": "Paste Truth Social profile URLs directly instead of handles - e.g. <code>https://truthsocial.com/@realDonaldTrump</code>.",
            "items": {
              "type": "string"
            }
          },
          "maxPostsPerAccount": {
            "title": "Max posts per account",
            "minimum": 1,
            "type": "integer",
            "description": "How many of the most recent posts (Truths) to collect per account. You are only charged for posts actually saved.",
            "default": 40
          },
          "includeReplies": {
            "title": "Include replies",
            "type": "boolean",
            "description": "Include posts that are replies to another post. Turn off for original Truths only.",
            "default": true
          },
          "includeReblogs": {
            "title": "Include re-Truths (reblogs)",
            "type": "boolean",
            "description": "Include re-Truths (the account resharing someone else's post). Turn off for the account's own posts only.",
            "default": true
          },
          "outputFields": {
            "title": "Output fields (leave empty for all)",
            "type": "array",
            "description": "Pick the fields you want and every record is trimmed to exactly those - handy for lean CSV/Sheets exports. Open the dropdown and tick, or type to filter (<code>text</code>, <code>url</code>, <code>favouritesCount</code>).",
            "items": {
              "type": "string",
              "enum": [
                "type",
                "id",
                "url",
                "createdAt",
                "text",
                "language",
                "visibility",
                "isReblog",
                "rebloggedBy",
                "inReplyToId",
                "isReply",
                "repliesCount",
                "reblogsCount",
                "favouritesCount",
                "upvotesCount",
                "mediaCount",
                "mediaUrls",
                "mediaTypes",
                "cardUrl",
                "cardTitle",
                "tags",
                "mentions",
                "accountId",
                "handle",
                "displayName",
                "accountUrl",
                "verified",
                "followersCount",
                "followingCount",
                "statusesCount",
                "accountBio",
                "accountCreatedAt",
                "queryHandle",
                "accountFollowers",
                "scrapedAt"
              ],
              "enumTitles": [
                "Record type (type)",
                "Post ID (id)",
                "Post URL (url)",
                "Created at (createdAt)",
                "Text (text)",
                "Language (language)",
                "Visibility (visibility)",
                "Is re-Truth (isReblog)",
                "Re-Truthed by (rebloggedBy)",
                "In reply to ID (inReplyToId)",
                "Is reply (isReply)",
                "Replies count (repliesCount)",
                "Re-Truths count (reblogsCount)",
                "Favourites count (favouritesCount)",
                "Upvotes count (upvotesCount)",
                "Media count (mediaCount)",
                "Media URLs (mediaUrls)",
                "Media types (mediaTypes)",
                "Link card URL (cardUrl)",
                "Link card title (cardTitle)",
                "Hashtags (tags)",
                "Mentions (mentions)",
                "Account ID (accountId)",
                "Handle (handle)",
                "Display name (displayName)",
                "Account URL (accountUrl)",
                "Verified (verified)",
                "Followers (followersCount)",
                "Following (followingCount)",
                "Statuses count (statusesCount)",
                "Account bio (accountBio)",
                "Account created at (accountCreatedAt)",
                "Query handle (queryHandle)",
                "Account followers (accountFollowers)",
                "Scraped at (scrapedAt)"
              ]
            }
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Truth Social sits behind Cloudflare. US residential proxies are strongly recommended - the defaults below are the tested setup.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}