{
  "openapi": "3.0.1",
  "info": {
    "title": "TruthSocial.com | $0.55💰 | Profile(s) | Posts",
    "description": "💰$0.55 per 1,000 results. A powerful Apify actor for scraping Truth Social profiles and posts. This scraper extracts comprehensive data including user information, posts, engagement metrics, and more, with powerful monitoring capabilities to track updates over time.",
    "version": "0.0",
    "x-build-id": "WNdBQMJBOdjQ44QMM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/memo23~truth-social-profile-scraper-with-posts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-memo23-truth-social-profile-scraper-with-posts",
        "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/memo23~truth-social-profile-scraper-with-posts/runs": {
      "post": {
        "operationId": "runs-sync-memo23-truth-social-profile-scraper-with-posts",
        "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/memo23~truth-social-profile-scraper-with-posts/run-sync": {
      "post": {
        "operationId": "run-sync-memo23-truth-social-profile-scraper-with-posts",
        "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": {
          "searchQuery": {
            "title": "Search query",
            "type": "string",
            "description": "Free-text keyword to search Truth Social for — e.g. `trump`, `bitcoin`, `election`. Leave empty to scrape profile/post URLs instead."
          },
          "searchType": {
            "title": "Search returns",
            "enum": [
              "both",
              "accounts",
              "posts"
            ],
            "type": "string",
            "description": "In search mode, choose whether to return matching accounts, posts, or both.",
            "default": "both"
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "URLs to start with. Supports profile URLs such as `https://www.truthsocial.com/realDonaldTrump/` and direct post URLs (`.../posts/123...`). Optional when <b>Post IDs</b> or <b>Search query</b> is set.",
            "items": {
              "type": "string"
            }
          },
          "postIds": {
            "title": "Post IDs (direct fetch)",
            "type": "array",
            "description": "Fetch these exact posts by their numeric status ID — no URL needed. Works alongside or instead of Start URLs.",
            "items": {
              "type": "string"
            }
          },
          "sinceId": {
            "title": "Only posts newer than ID",
            "type": "string",
            "description": "Skip everything at or below this status ID — ideal for incremental pipelines that remember the last post they processed."
          },
          "useLastPostId": {
            "title": "Resume from last run (auto-incremental)",
            "type": "boolean",
            "description": "Remembers the newest post ID per profile (stored per account, in your own key-value store) and scrapes only newer posts on the next run. Safe to alternate runs across different accounts. An explicit <b>Only posts newer than ID</b> overrides the stored value.",
            "default": false
          },
          "onlyMedia": {
            "title": "Only posts with media",
            "type": "boolean",
            "description": "Keep only posts that carry at least one image or video attachment.",
            "default": false
          },
          "maxItems": {
            "title": "Max number of items OR limit the results per crawl",
            "type": "integer",
            "description": "Maximum number of items that will be scraped.",
            "default": 1000
          },
          "date": {
            "title": "Date (Optional)",
            "type": "string",
            "description": "Scrape posts from this date up to today. Format: YYYY-MM-DD,  e.g., 2025-02-20"
          },
          "contentType": {
            "title": "Content to scrape",
            "enum": [
              "profile_details",
              "posts",
              "replies",
              "posts_and_replies"
            ],
            "type": "string",
            "description": "What to scrape per profile. 'posts' (default) keeps existing behavior. 'profile_details' returns one normalized account record per profile and counts as 1 against maxItems. 'replies' and 'posts_and_replies' include reply statuses.",
            "default": "posts"
          },
          "includeMuted": {
            "title": "Include muted posts/replies",
            "type": "boolean",
            "description": "If checked, statuses from accounts muted by the API caller are included (passes with_muted=true to Truth Social). Default true matches previous behavior.",
            "default": true
          },
          "flattenOutput": {
            "title": "Flatten output",
            "type": "boolean",
            "description": "If checked, posts/replies are returned in a curated camelCase shape (input, id, type, accountId, username, createdAt, inReplyToId, content, mediaAttachments, repliesCount, etc.) instead of the raw Truth Social API JSON. Default false keeps the existing raw output for backwards compatibility.",
            "default": false
          },
          "monitoringMode": {
            "title": "Run in monitoring mode where only newly posts compared to previous runs will be scraped",
            "type": "boolean",
            "description": "If checked, it will only scrape newly posts compared to what has been scraped in previous runs. Please turn on or check 'Include posts' setting above in case you want this feature.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "type": "integer",
            "description": "Maximum number of pages that can be processed at the same time.",
            "default": 10
          },
          "minConcurrency": {
            "title": "Min Concurrency",
            "type": "integer",
            "description": "Minimum number of pages that will be processed at the same time.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max Request Retries",
            "type": "integer",
            "description": "Number of times the crawler will retry a failed request before giving up.",
            "default": 100
          },
          "proxy": {
            "title": "Proxy configuration (optional override)",
            "type": "object",
            "description": "Leave empty — the actor already routes all traffic through its own built-in residential proxy at no extra cost to you. Only set this if you want to use your own proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}