{
  "openapi": "3.0.1",
  "info": {
    "title": "Gab Search Scraper",
    "description": "Scrape search results and accounts and groups' info as well as the posts and comments of accounts and groups from Gab's website. Download your data in any format (JSON, CSV, XML, RSS, HTML Table). Seamless integration with apps, reports, and databases.",
    "version": "1.0",
    "x-build-id": "7mdTvuSQuXH0UsYed"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/web.harvester~gab-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-web.harvester-gab-search-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/web.harvester~gab-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-web.harvester-gab-search-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/web.harvester~gab-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-web.harvester-gab-search-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": {
          "startUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Gab search URLs: https://gab.com/search/statuses?q=bitcoin, /search/people?q=..., /search/groups?q=..., /search/top?q=... The search type is taken from the URL.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Keywords to search on Gab. What is searched for is set by <b>Search type</b>.",
            "items": {
              "type": "string"
            }
          },
          "searchType": {
            "title": "Search type",
            "enum": [
              "STATUSES",
              "PEOPLE",
              "GROUPS",
              "TOP"
            ],
            "type": "string",
            "description": "What <b>Search queries</b> look for. <i>Posts</i> saves matching posts. <i>People</i> and <i>Groups</i> save the posts of the matching accounts or groups, or their profiles when <b>Max posts</b> is 0. <i>Top</i> does both people and groups, like the Top tab on Gab.",
            "default": "STATUSES"
          },
          "desiredPostsCount": {
            "title": "Max posts per search, account or group",
            "minimum": 0,
            "type": "integer",
            "description": "How many posts to save per post search, or per account / group found by a People, Groups or Top search. Set to <code>0</code> to save the found profiles and groups instead of their posts.",
            "default": 100
          },
          "desiredAccountsCount": {
            "title": "Max accounts per search",
            "minimum": 0,
            "type": "integer",
            "description": "How many matching accounts to use per search query (People and Top search). <code>0</code> means no limit.",
            "default": 10
          },
          "desiredGroupsCount": {
            "title": "Max groups per search",
            "minimum": 0,
            "type": "integer",
            "description": "How many matching groups to use per search query (Groups and Top search). <code>0</code> means no limit.",
            "default": 10
          },
          "searchOnlyVerified": {
            "title": "Only verified accounts and groups",
            "type": "boolean",
            "description": "Skip accounts and groups without the verified badge in People, Groups and Top searches.",
            "default": false
          },
          "accountPostsSortBy": {
            "title": "Account posts sort",
            "enum": [
              "NEWEST",
              "NO_REPOSTS",
              "TOP_TODAY",
              "TOP_WEEKLY",
              "TOP_MONTHLY",
              "TOP_YEARLY",
              "TOP_ALL_TIME"
            ],
            "type": "string",
            "description": "Order of the posts on account profiles. Pinned posts are always saved first and marked with <code>pinned: true</code>.",
            "default": "NEWEST"
          },
          "groupPostsSortBy": {
            "title": "Group posts sort",
            "enum": [
              "HOT",
              "RISING",
              "NEWEST",
              "RECENT",
              "TOP_TODAY",
              "TOP_WEEKLY",
              "TOP_MONTHLY",
              "TOP_YEARLY",
              "TOP_ALL_TIME"
            ],
            "type": "string",
            "description": "Order of the posts in groups. Gab only shows the last few days of <i>Hot</i>, <i>Rising</i>, <i>Newest</i> and <i>Recent activity</i> to logged-out visitors, use a <i>Top</i> sort to get older posts.",
            "default": "NEWEST"
          },
          "groupsMediaOnly": {
            "title": "Only group posts with media",
            "type": "boolean",
            "description": "Save only group posts that have images or videos.",
            "default": false
          },
          "desiredCommentsCount": {
            "title": "Max comments per post",
            "minimum": 0,
            "type": "integer",
            "description": "How many comments (including replies) to add to each post in its <code>comments</code> field. <code>0</code> skips comments. Gab returns at most 500 comments per post.",
            "default": 0
          },
          "commentsSortBy": {
            "title": "Comments sort",
            "enum": [
              "MOST_LIKED",
              "NEWEST",
              "OLDEST"
            ],
            "type": "string",
            "description": "Order of the comments.",
            "default": "MOST_LIKED"
          },
          "addUserInfo": {
            "title": "Add author profile to posts",
            "type": "boolean",
            "description": "Add the author's profile to every post and comment in the <code>account</code> field.",
            "default": false
          },
          "addGroupInfo": {
            "title": "Add group details to posts",
            "type": "boolean",
            "description": "Add the group's details to every group post in the <code>group</code> field.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy servers used to reach Gab.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}