{
  "openapi": "3.0.1",
  "info": {
    "title": "Gab Posts Scraper",
    "description": "Find public Gab posts by keyword, post URL, or profile, or collect public profiles by username or URL. Get post text, authors, dates, engagement, media, links, mentions, tags, and source context in an Apify dataset.",
    "version": "0.0",
    "x-build-id": "nkacuQv5OKbXlQBEr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/maximedupre~gab-posts-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-maximedupre-gab-posts-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/maximedupre~gab-posts-scraper/runs": {
      "post": {
        "operationId": "runs-sync-maximedupre-gab-posts-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/maximedupre~gab-posts-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-maximedupre-gab-posts-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",
        "required": [
          "resultType"
        ],
        "properties": {
          "resultType": {
            "title": "Result type",
            "enum": [
              "posts",
              "profiles"
            ],
            "type": "string",
            "description": "Choose whether this run returns public Gab posts or public Gab profiles."
          },
          "postOptions": {
            "title": "Post options",
            "required": [
              "findPostsBy"
            ],
            "type": "object",
            "description": "Choose how to find public Gab posts. Search by keywords, retrieve direct post URLs, or get posts linked from a profile username or profile URL. Fields for other choices stay visible and are ignored.",
            "properties": {
              "findPostsBy": {
                "title": "Find posts by",
                "type": "string",
                "description": "Choose one way to find public posts for this run.",
                "editor": "select",
                "enum": [
                  "keywords",
                  "postUrls",
                  "profileUsernames",
                  "profileUrls"
                ],
                "enumTitles": [
                  "Keywords",
                  "Post URLs",
                  "Profile username",
                  "Profile URL"
                ],
                "prefill": "keywords"
              },
              "keywords": {
                "title": "Keywords",
                "type": "array",
                "description": "Enter one or more words or phrases to search public Gab posts. Used when Find posts by is Keywords.",
                "editor": "stringList",
                "items": {
                  "type": "string"
                },
                "minItems": 1,
                "prefill": [
                  "gab"
                ]
              },
              "postUrls": {
                "title": "Post URLs",
                "type": "array",
                "description": "Enter one or more public Gab post URLs. Used when Find posts by is Post URLs.",
                "editor": "requestListSources",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "title": "URL",
                      "type": "string",
                      "description": "Enter a public Gab post URL."
                    }
                  },
                  "required": [
                    "url"
                  ]
                },
                "minItems": 1
              },
              "includeThreadContext": {
                "title": "Include thread context",
                "type": "boolean",
                "description": "For Post URLs, include other available public posts from each post's thread. This field is ignored for other post methods.",
                "editor": "checkbox",
                "default": false
              }
            }
          },
          "profileOptions": {
            "title": "Profile options",
            "required": [
              "findProfilesBy"
            ],
            "type": "object",
            "description": "Choose how to find public Gab profiles. Use a username or a profile URL. Fields for the other choice stay visible and are ignored.",
            "properties": {
              "findProfilesBy": {
                "title": "Find profiles by",
                "type": "string",
                "description": "Choose one way to find public profiles for this run.",
                "editor": "select",
                "enum": [
                  "profileUsernames",
                  "profileUrls"
                ],
                "enumTitles": [
                  "Username",
                  "Profile URL"
                ]
              }
            }
          },
          "profileUsernames": {
            "title": "Profile usernames",
            "minItems": 1,
            "type": "array",
            "description": "Enter one or more public Gab usernames. Used when Find posts by is Profile username or Find profiles by is Username. If another method is selected, this field is ignored.",
            "items": {
              "type": "string"
            }
          },
          "profileUrls": {
            "title": "Profile URLs",
            "minItems": 1,
            "type": "array",
            "description": "Enter one or more public Gab profile URLs. Used when Find posts by is Profile URL or Find profiles by is Profile URL. If another method is selected, this field is ignored.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "type": "string",
                  "description": "Enter a public Gab profile URL."
                }
              },
              "required": [
                "url"
              ]
            }
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many results. Leave it empty to return all available results until the source is exhausted."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}