{
  "openapi": "3.0.3",
  "info": {
    "title": "API Direct",
    "version": "1.1.0",
    "description": "Real-time public data from LinkedIn, Twitter/X, Reddit, YouTube, Instagram, TikTok, Facebook, Threads, Bluesky, Truth Social, Google Search, Google Maps, news sites, forums, Amazon and Trustpilot, through one REST API with one API key.\n\n## Authentication\n\nSend your API key in the `X-API-Key` header on every request. Create a free account at [apidirect.io](https://apidirect.io/signup?utm_source=openapi), then copy a key from [the dashboard](https://apidirect.io/dashboard/keys).\n\n## Pricing\n\nPay per request with no subscription. Every endpoint has a monthly free tier, and each operation below lists its price. See [Pricing](https://apidirect.io/docs/pricing).\n\n## Errors\n\nEvery error is JSON with an HTTP status, a human-readable `error` and a machine-readable `code`, for example `{\"error\": \"Missing API key\", \"code\": \"missing_api_key\"}`. Retry 502, 503 and 504 responses, and 429 `concurrency_limit_exceeded` or `upstream_rate_limit`, with exponential backoff. See [Error Handling](https://apidirect.io/docs/error-handling).\n\n## Limits\n\nUp to 10 concurrent requests per endpoint per account; requests to different endpoints are counted separately. Use `POST /v1/batch` to run up to 100 calls in one request. See [Rate Limits](https://apidirect.io/docs/rate-limits).\n",
    "termsOfService": "https://apidirect.io/terms",
    "contact": {
      "name": "API Direct support",
      "url": "https://apidirect.io",
      "email": "support@apidirect.io"
    },
    "x-logo": {
      "url": "https://apidirect.io/static/A.png",
      "altText": "API Direct"
    }
  },
  "externalDocs": {
    "description": "API Direct documentation",
    "url": "https://apidirect.io/docs"
  },
  "servers": [
    {
      "url": "https://apidirect.io",
      "description": "Production"
    }
  ],
  "security": [
    {
      "ApiKeyAuth": []
    }
  ],
  "tags": [
    {
      "name": "Amazon",
      "description": "Search Amazon products, get full product details by ASIN, look up seller profiles, reviews and catalogs, and pull Best Sellers rankings — across all 24 Amazon marketplaces."
    },
    {
      "name": "Bluesky",
      "description": "Search Bluesky posts and users, get user profiles with feeds, followers, following and likes, and get post details with comments, likes, quotes and reposts."
    },
    {
      "name": "Facebook",
      "description": "Search Facebook posts, pages, videos, and events. Get full page details, posts, photos, videos, reels, and reviews. Get group details and group posts, and search posts within a group (that endpoint is temporarily unavailable while it is upgraded). Get comments on any post. Resolve place names to location IDs to filter post and event searches by place."
    },
    {
      "name": "Forums",
      "description": "Search forum posts across the web with time and country filters."
    },
    {
      "name": "Google Places",
      "description": "Search Google Maps places, get place details with website contact scraping, photos, and reviews with sort and language controls."
    },
    {
      "name": "Google Search",
      "description": "Search Google web results in real time and prompt Google AI Mode for conversational answers with citations."
    },
    {
      "name": "Instagram",
      "description": "Search Instagram posts, users and hashtags, get full profile details with follower counts and bio links, list a profile's followers and following, fetch its posts, stories and story highlights, and pull any post's full details, comments, comment threads and likers."
    },
    {
      "name": "LinkedIn",
      "description": "Search LinkedIn posts, companies, and jobs. Get post details, person profiles, person posts, company profiles, company posts, and job details."
    },
    {
      "name": "News",
      "description": "Search news articles from worldwide sources with time, source, country, and language filters."
    },
    {
      "name": "Reddit",
      "description": "Search Reddit posts, comments, and users."
    },
    {
      "name": "Threads",
      "description": "Search Threads posts and users, get full profile details with follower counts and bio links, and fetch any user's recent posts."
    },
    {
      "name": "TikTok",
      "description": "Search TikTok videos and users and get full creator profiles and video details with view counts, like counts, follower counts, download URLs, and creator metadata."
    },
    {
      "name": "Trustpilot",
      "description": "Get Trustpilot reviews and company profiles by domain, search companies by name, browse categories and their companies, and look up reviewers — TrustScore, star ratings, per-star breakdowns, reply behaviour and every review with the company's reply."
    },
    {
      "name": "Truth Social",
      "description": "Fetch any public Truth Social user's recent posts by username. Post text, engagement metrics, media attachments and hashtags."
    },
    {
      "name": "Twitter",
      "description": "Search Twitter/X posts and users, get user profiles with timelines, followers, following, and replies, get tweet details with retweets, quotes, comments, plus trends by location."
    },
    {
      "name": "YouTube",
      "description": "Search YouTube videos and channels, look up channel and video details, and fetch video comments, with full metadata, view counts, and engagement data."
    },
    {
      "name": "Batch",
      "description": "Run up to 100 calls to any endpoints in one request."
    },
    {
      "name": "Account",
      "description": "Check that an API key works."
    }
  ],
  "paths": {
    "/v1/amazon/products": {
      "get": {
        "tags": [
          "Amazon"
        ],
        "operationId": "searchAmazonProducts",
        "summary": "Search Amazon Products",
        "description": "Search Amazon products by free-text keyword (or an ASIN) across 24 marketplaces. Each page returns ~16 results with price, rating, Prime status, sales volume, and badges.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/amazon-products"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword or a product ASIN (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "phone"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-20 (default: 1)",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 20
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Marketplace country code (default: `us`)",
            "schema": {
              "type": "string",
              "default": "us",
              "enum": [
                "us",
                "au",
                "br",
                "ca",
                "cn",
                "fr",
                "de",
                "in",
                "it",
                "mx",
                "nl",
                "sg",
                "es",
                "tr",
                "ae",
                "gb",
                "jp",
                "sa",
                "pl",
                "se",
                "be",
                "eg",
                "za",
                "ie"
              ]
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order (default: `relevance`)",
            "schema": {
              "type": "string",
              "default": "relevance",
              "enum": [
                "relevance",
                "lowest_price",
                "highest_price",
                "reviews",
                "newest",
                "best_sellers"
              ]
            },
            "example": "reviews"
          },
          {
            "name": "category_id",
            "in": "query",
            "required": false,
            "description": "Category slug, e.g. `electronics` (see https://apidirect.io/docs/amazon-categories)",
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "example": "electronics"
          },
          {
            "name": "category",
            "in": "query",
            "required": false,
            "description": "Numeric Amazon category node ID(s) from an Amazon URL's `?node=` parameter, comma-separated",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "min_price",
            "in": "query",
            "required": false,
            "description": "Minimum price in the marketplace currency",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "max_price",
            "in": "query",
            "required": false,
            "description": "Maximum price in the marketplace currency",
            "schema": {
              "type": "number"
            },
            "example": 100.0
          },
          {
            "name": "product_condition",
            "in": "query",
            "required": false,
            "description": "Product condition filter (default: `all`)",
            "schema": {
              "type": "string",
              "default": "all",
              "enum": [
                "all",
                "new",
                "used",
                "renewed",
                "collectible"
              ]
            }
          },
          {
            "name": "brand",
            "in": "query",
            "required": false,
            "description": "Brand name(s), comma-separated for multiple",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "seller_id",
            "in": "query",
            "required": false,
            "description": "Only products from specific seller ID(s), comma-separated",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "is_prime",
            "in": "query",
            "required": false,
            "description": "Set to `true` to only return products with Prime-eligible offers",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "deals_and_discounts",
            "in": "query",
            "required": false,
            "description": "Deals filter (default: `none`)",
            "schema": {
              "type": "string",
              "default": "none",
              "enum": [
                "none",
                "all_discounts",
                "todays_deals"
              ]
            }
          },
          {
            "name": "four_stars_and_up",
            "in": "query",
            "required": false,
            "description": "Set to `true` to only return products rated 4 stars and up",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchAmazonProductsResponse"
                },
                "example": {
                  "products": [
                    {
                      "asin": "B0CTW8TXGH",
                      "title": "Motorola Moto g Play 2024 | 64GB | 50MP Camera | Sapphire Blue",
                      "price": "$39.88",
                      "original_price": null,
                      "unit_price": null,
                      "unit_count": null,
                      "currency": "USD",
                      "rating": 4.3,
                      "num_ratings": 856,
                      "url": "https://www.amazon.com/dp/B0CTW8TXGH",
                      "photo": "https://m.media-amazon.com/images/I/71fflP-3W4L._AC_UY654_FMwebp_QL65_.jpg",
                      "num_offers": 1,
                      "minimum_offer_price": "$39.88",
                      "is_best_seller": false,
                      "is_amazon_choice": true,
                      "is_prime": true,
                      "climate_pledge_friendly": false,
                      "sales_volume": "5K+ bought in past month",
                      "delivery": "FREE delivery Mon, Jun 9",
                      "availability": null,
                      "has_variations": false,
                      "badge": "Overall Pick",
                      "coupon_text": null
                    }
                  ],
                  "count": 16,
                  "total_products": 132661,
                  "query": "phone",
                  "page": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Amazon data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/amazon/product": {
      "get": {
        "tags": [
          "Amazon"
        ],
        "operationId": "amazonProductDetails",
        "summary": "Amazon Product Details",
        "description": "Get full details for an Amazon product by its 10-character ASIN — pricing, buy box with seller ID, availability, photos, videos, spec tables, rating breakdown per star, and top reviews.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/amazon-product-details"
        },
        "parameters": [
          {
            "name": "asin",
            "in": "query",
            "required": true,
            "description": "10-character Amazon ASIN (e.g. `B07ZPKN6YR`), as returned by Product Search",
            "schema": {
              "type": "string",
              "minLength": 10,
              "maxLength": 10
            },
            "example": "B07ZPKN6YR"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Marketplace country code (default: `us`)",
            "schema": {
              "type": "string",
              "default": "us",
              "enum": [
                "us",
                "au",
                "br",
                "ca",
                "cn",
                "fr",
                "de",
                "in",
                "it",
                "mx",
                "nl",
                "sg",
                "es",
                "tr",
                "ae",
                "gb",
                "jp",
                "sa",
                "pl",
                "se",
                "be",
                "eg",
                "za",
                "ie"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AmazonProductDetailsResponse"
                },
                "example": {
                  "product": {
                    "asin": "B07ZPKN6YR",
                    "title": "Apple iPhone 11, 64GB, Black - Unlocked (Renewed)",
                    "item_highlight": "Fully unlocked, renewed and inspected, 64GB storage",
                    "price": "$190.00",
                    "original_price": "$249.00",
                    "delivery_price": null,
                    "minimum_order_quantity": null,
                    "currency": "USD",
                    "country": "US",
                    "byline": "Visit the Amazon Renewed Store",
                    "byline_link": "https://www.amazon.com/Amazon-Renewed/b/...",
                    "rating": 4.2,
                    "num_ratings": 57539,
                    "url": "https://www.amazon.com/dp/B07ZPKN6YR",
                    "slug": "Apple-iPhone-11-64GB-Black",
                    "photo": "https://m.media-amazon.com/images/I/514k7uOBMwL._AC_SL1000_.jpg",
                    "photos": [
                      "https://m.media-amazon.com/images/I/514k7uOBMwL._AC_SL1000_.jpg"
                    ],
                    "videos": [],
                    "user_uploaded_videos": [],
                    "has_video": false,
                    "num_offers": 47,
                    "availability": "In Stock",
                    "condition": "Buy New",
                    "is_best_seller": false,
                    "is_amazon_choice": false,
                    "is_prime": false,
                    "climate_pledge_friendly": false,
                    "sales_volume": "2K+ bought in past month",
                    "delivery": "FREE delivery Friday, June 6",
                    "main_buy_box": {
                      "title": "Buy New",
                      "price": "$190.00",
                      "seller": "iBlueberry",
                      "seller_id": "A1B2C3D4E5F6G7",
                      "seller_link": "https://www.amazon.com/gp/help/seller/at-a-glance.html/...",
                      "return_policy": "30-day refund/replacement"
                    },
                    "buy_boxes": [
                      {
                        "title": "Buy New",
                        "price": "$190.00"
                      }
                    ],
                    "about": [
                      "This phone is unlocked and compatible with any carrier of choice."
                    ],
                    "description": "The iPhone 11 features a 6.1-inch Liquid Retina display...",
                    "product_information": {
                      "Screen Size": "6.1 inches",
                      "Color": "Black"
                    },
                    "product_details": {
                      "Brand": "Apple",
                      "Model Name": "iPhone 11"
                    },
                    "rating_distribution": {
                      "1": "12",
                      "2": "3",
                      "3": "5",
                      "4": "12",
                      "5": "68"
                    },
                    "top_reviews": [
                      {
                        "review_id": "R3PXA2ZA1TUMCE",
                        "title": "Five stars !! It's worth the money !!",
                        "review_text": "I had my phone for a couple of years... it was a perfect phone.",
                        "rating": 5.0,
                        "review_link": "https://www.amazon.com/gp/customer-reviews/R3PXA2ZA1TUMCE",
                        "review_date": "Reviewed in the United States on October 30, 2025",
                        "author_id": "AHDG3DAH75Y6DILGMFNKDAXGX7YQ",
                        "author_name": "Dorothyann",
                        "author_avatar": "https://m.media-amazon.com/images/S/amazon-avatars-global/default.png",
                        "images": [],
                        "video": null,
                        "is_verified_purchase": true,
                        "helpful_votes": "12 people found this helpful",
                        "product_variant": {
                          "Size": "64GB",
                          "Color": "Purple"
                        },
                        "is_vine": false
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Product not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Amazon data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/amazon/seller": {
      "get": {
        "tags": [
          "Amazon"
        ],
        "operationId": "amazonSellerProfile",
        "summary": "Amazon Seller Profile",
        "description": "Get an Amazon seller's profile by seller ID — name, logo, about text, registered business name and address, average rating, and feedback percentages over 30 days, 90 days, 12 months, and lifetime.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/amazon-seller-profile"
        },
        "parameters": [
          {
            "name": "seller_id",
            "in": "query",
            "required": true,
            "description": "Amazon seller ID (e.g. `A2L77EE7U53NWQ`), from a product's `main_buy_box.seller_id`",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "A2L77EE7U53NWQ"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Marketplace country code (default: `us`)",
            "schema": {
              "type": "string",
              "default": "us",
              "enum": [
                "us",
                "au",
                "br",
                "ca",
                "cn",
                "fr",
                "de",
                "in",
                "it",
                "mx",
                "nl",
                "sg",
                "es",
                "tr",
                "ae",
                "gb",
                "jp",
                "sa",
                "pl",
                "se",
                "be",
                "eg",
                "za",
                "ie"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AmazonSellerProfileResponse"
                },
                "example": {
                  "seller": {
                    "seller_id": "A2L77EE7U53NWQ",
                    "name": "Amazon Resale",
                    "seller_link": "https://www.amazon.com/sp?seller=A2L77EE7U53NWQ",
                    "store_link": "https://www.amazon.com/s?ie=UTF8&marketplaceID=ATVPDKIKX0DER&me=A2L77EE7U53NWQ",
                    "logo": "https://m.media-amazon.com/images/I/01RxYGCdstL.gif",
                    "about": "Quality used, pre-owned, or open box products, tested and inspected.",
                    "business_name": "Amazon.com Services LLC",
                    "business_address": "410 Terry Ave N Seattle WA 98109 US",
                    "rating": 4.2,
                    "ratings_total": 2593,
                    "positive_percentage": 79,
                    "review_summary": {
                      "thirty_days": {
                        "positive_percent": 75,
                        "neutral_percent": 1,
                        "negative_percent": 23,
                        "count": 89
                      },
                      "ninety_days": {
                        "positive_percent": 78,
                        "neutral_percent": 1,
                        "negative_percent": 21,
                        "count": 232
                      },
                      "twelve_months": {
                        "positive_percent": 79,
                        "neutral_percent": 2,
                        "negative_percent": 19,
                        "count": 812
                      },
                      "lifetime": {
                        "positive_percent": 82,
                        "neutral_percent": 3,
                        "negative_percent": 15,
                        "count": 2593
                      }
                    },
                    "country": "US"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Seller not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Amazon data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/amazon/seller/reviews": {
      "get": {
        "tags": [
          "Amazon"
        ],
        "operationId": "amazonSellerReviews",
        "summary": "Amazon Seller Reviews",
        "description": "Get customer feedback for an Amazon seller by seller ID. Each review includes author, text, star rating, date, and whether the seller responded. Filter by star rating or positive/critical.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/amazon-seller-reviews"
        },
        "parameters": [
          {
            "name": "seller_id",
            "in": "query",
            "required": true,
            "description": "Amazon seller ID",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "A2L77EE7U53NWQ"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-50 (default: 1)",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 50
            }
          },
          {
            "name": "star_rating",
            "in": "query",
            "required": false,
            "description": "Star rating filter (default: `all`)",
            "schema": {
              "type": "string",
              "default": "all",
              "enum": [
                "all",
                "5_stars",
                "4_stars",
                "3_stars",
                "2_stars",
                "1_stars",
                "positive",
                "critical"
              ]
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Marketplace country code (default: `us`)",
            "schema": {
              "type": "string",
              "default": "us",
              "enum": [
                "us",
                "au",
                "br",
                "ca",
                "cn",
                "fr",
                "de",
                "in",
                "it",
                "mx",
                "nl",
                "sg",
                "es",
                "tr",
                "ae",
                "gb",
                "jp",
                "sa",
                "pl",
                "se",
                "be",
                "eg",
                "za",
                "ie"
              ]
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each review. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any review that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AmazonSellerReviewsResponse"
                },
                "example": {
                  "reviews": [
                    {
                      "author_name": "Tammy Parson",
                      "review_text": "Received the next day in perfect condition. Contacted the seller and was answered promptly.",
                      "rating": 5.0,
                      "review_date": "August 30, 2026",
                      "has_response": false
                    }
                  ],
                  "count": 5,
                  "seller_id": "A2L77EE7U53NWQ",
                  "page": 1,
                  "star_rating": "all",
                  "has_next_page": true
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Seller not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Amazon data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/amazon/seller/products": {
      "get": {
        "tags": [
          "Amazon"
        ],
        "operationId": "amazonSellerProducts",
        "summary": "Amazon Seller Products",
        "description": "Get the products sold by an Amazon seller by seller ID — the same product objects as Product Search plus the seller's total catalog size. Sortable and paginated (~16 results per page).\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/amazon-seller-products"
        },
        "parameters": [
          {
            "name": "seller_id",
            "in": "query",
            "required": true,
            "description": "Amazon seller ID",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "A2L77EE7U53NWQ"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-50 (default: 1)",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 50
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order (default: `relevance`)",
            "schema": {
              "type": "string",
              "default": "relevance",
              "enum": [
                "relevance",
                "lowest_price",
                "highest_price",
                "reviews",
                "newest",
                "best_sellers"
              ]
            },
            "example": "best_sellers"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Marketplace country code (default: `us`)",
            "schema": {
              "type": "string",
              "default": "us",
              "enum": [
                "us",
                "au",
                "br",
                "ca",
                "cn",
                "fr",
                "de",
                "in",
                "it",
                "mx",
                "nl",
                "sg",
                "es",
                "tr",
                "ae",
                "gb",
                "jp",
                "sa",
                "pl",
                "se",
                "be",
                "eg",
                "za",
                "ie"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AmazonSellerProductsResponse"
                },
                "example": {
                  "products": [
                    {
                      "asin": "B0BSHF7WHW",
                      "title": "Apple AirPods Pro (2nd Generation) - Refurbished",
                      "price": "$179.99",
                      "original_price": "$249.00",
                      "unit_price": null,
                      "unit_count": null,
                      "currency": "USD",
                      "rating": 4.4,
                      "num_ratings": 11203,
                      "url": "https://www.amazon.com/dp/B0BSHF7WHW",
                      "photo": "https://m.media-amazon.com/images/I/61SUj2aKoEL._AC_UY654_QL65_.jpg",
                      "num_offers": 3,
                      "minimum_offer_price": "$171.50",
                      "is_best_seller": false,
                      "is_amazon_choice": false,
                      "is_prime": true,
                      "climate_pledge_friendly": false,
                      "sales_volume": "1K+ bought in past month",
                      "delivery": "FREE delivery Tue, Sep 1",
                      "availability": null,
                      "has_variations": false,
                      "badge": null,
                      "coupon_text": null
                    }
                  ],
                  "count": 16,
                  "total_products": 224061,
                  "seller_id": "A2L77EE7U53NWQ",
                  "page": 1,
                  "sort_by": "relevance"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Seller not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Amazon data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/amazon/best-sellers": {
      "get": {
        "tags": [
          "Amazon"
        ],
        "operationId": "amazonBestSellers",
        "summary": "Amazon Best Sellers",
        "description": "Get Amazon best-seller rankings for a category — Best Sellers, New Releases, Movers & Shakers, Most Wished For, or Gift Ideas. Up to 50 ranked items per page with rank, price, and rating.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/amazon-best-sellers"
        },
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "required": true,
            "description": "Category slug, e.g. `electronics` or `software` (see https://apidirect.io/docs/amazon-categories)",
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "example": "software"
          },
          {
            "name": "type",
            "in": "query",
            "required": false,
            "description": "Ranking type (default: `best_sellers`)",
            "schema": {
              "type": "string",
              "default": "best_sellers",
              "enum": [
                "best_sellers",
                "gift_ideas",
                "most_wished_for",
                "movers_and_shakers",
                "new_releases"
              ]
            }
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1 or 2 (default: 1). Rankings cover the top 100.",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 2
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "Marketplace country code (default: `us`)",
            "schema": {
              "type": "string",
              "default": "us",
              "enum": [
                "us",
                "au",
                "br",
                "ca",
                "cn",
                "fr",
                "de",
                "in",
                "it",
                "mx",
                "nl",
                "sg",
                "es",
                "tr",
                "ae",
                "gb",
                "jp",
                "sa",
                "pl",
                "se",
                "be",
                "eg",
                "za",
                "ie"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AmazonBestSellersResponse"
                },
                "example": {
                  "products": [
                    {
                      "rank": 1,
                      "rank_change": null,
                      "asin": "B0FWV56H48",
                      "title": "TurboTax Deluxe Desktop Edition 2025, Federal & State Tax Return",
                      "price": "$79.99",
                      "rating": 4.0,
                      "num_ratings": 6866,
                      "url": "https://www.amazon.com/dp/B0FWV56H48",
                      "photo": "https://images-na.ssl-images-amazon.com/images/I/71OcM906MLL._AC_UL900_SR900,600_.jpg"
                    }
                  ],
                  "count": 50,
                  "category": "software",
                  "category_name": "Software",
                  "type": "best_sellers",
                  "page": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Amazon data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/posts": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "searchBluesky",
        "summary": "Search Bluesky Posts",
        "description": "Search Bluesky posts by keyword. Returns post text, author, publication date, engagement metrics (likes, replies, reposts, quotes, bookmarks), media, link cards, and quoted posts. Supports sorting, a date window, and fetching multiple pages in a single API call. Set get_sentiment=true to add AI emotion analysis (+$0.001/page).\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters). Bluesky search syntax works: \"exact phrase\", -exclude, from:handle, lang:en, #tag",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "anthropic"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order: most_recent or relevance (default: most_recent)",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "most_recent"
            },
            "example": "most_recent"
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Only posts from this date onward (format: YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Only posts up to this date (format: YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchBlueskyResponse"
                },
                "example": {
                  "posts": [
                    {
                      "title": "@papoo7.bsky.social on Bluesky",
                      "url": "https://bsky.app/profile/papoo7.bsky.social/post/3mvnldg3l2u24",
                      "date": "2026-09-16 16:40:21",
                      "author": "papoo7.bsky.social",
                      "author_name": "",
                      "author_id": "did:plc:57j4dnzyvdjl2bici4u3oero",
                      "author_verified": false,
                      "source": "Bluesky",
                      "domain": "bsky.app",
                      "snippet": "Anthropic is asking for brakes after helping build the car\nhttps://papoo.work/doc/f150d1ed17a55c33\n#claudenews #anthropic #claude #llm #agents",
                      "likes": 0,
                      "replies": 0,
                      "reposts": 0,
                      "quotes": 0,
                      "bookmarks": 0,
                      "lang": "en",
                      "is_reply": false,
                      "in_reply_to_id": "",
                      "is_quote": false,
                      "quoted_post": null,
                      "hashtags": [
                        "claudenews",
                        "anthropic",
                        "claude",
                        "llm",
                        "agents"
                      ],
                      "mentions": [],
                      "links": [
                        "https://papoo.work/doc/f150d1ed17a55c33"
                      ],
                      "link_preview": {
                        "url": "https://papoo.work/doc/f150d1ed17a55c33",
                        "title": "Anthropic is asking for brakes after helping build the car",
                        "description": "",
                        "image_url": "https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:57j4dnzyvdjl2bici4u3oero/bafkreib5cpnglprvtxzloallnma2vwnzypd2t2nr…"
                      },
                      "media_type": "text",
                      "image_url": "",
                      "video_url": "",
                      "carousel_media": [],
                      "post_id": "at://did:plc:57j4dnzyvdjl2bici4u3oero/app.bsky.feed.post/3mvnldg3l2u24"
                    }
                  ],
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/users": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "searchBlueskyUsers",
        "summary": "Search Bluesky Users",
        "description": "Search Bluesky users by keyword. Matches handles, display names, and bios. Returns handle, display name, DID, bio, verification status, profile picture, and join date for each account.\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-users"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "anthropic"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchBlueskyUsersResponse"
                },
                "example": {
                  "users": [
                    {
                      "username": "anthropic.com",
                      "full_name": "Anthropic",
                      "user_id": "did:plc:7xblllgnpqtiotu62pic747n",
                      "biography": "We're an Al safety and research company that builds reliable, interpretable, and steerable Al systems. Talk to our Al assistant Claude at Claude.ai.",
                      "is_verified": false,
                      "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:7xblllgnpqtiotu62pic747n/bafkreifymuozievn7kgdpqlqmbhycgcmzg2zytdtsks5diw4ost34iybjm",
                      "date_joined": "2024-11-19 19:33:47",
                      "url": "https://bsky.app/profile/anthropic.com"
                    }
                  ],
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/user": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyUserProfile",
        "summary": "Bluesky User Profile",
        "description": "Get a Bluesky user's full profile by handle, DID, or profile URL. Returns display name, bio, follower/following/post counts, verification status, profile picture and banner, join date, and the pinned post's ID.\n\n**Price:** $0.003 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-user"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "bsky.app"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyUserProfileResponse"
                },
                "example": {
                  "user": {
                    "username": "bsky.app",
                    "full_name": "Bluesky",
                    "user_id": "did:plc:z72i7hdynmk6r22z27h6tvur",
                    "biography": "official Bluesky account (check username👆)\n\nBugs, feature requests, feedback: support@bsky.app",
                    "follower_count": 34923372,
                    "following_count": 15,
                    "post_count": 863,
                    "list_count": 18,
                    "feed_count": 7,
                    "starter_pack_count": 15,
                    "is_verified": false,
                    "is_labeler": false,
                    "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreihwihm6kpd6zuwhhlro75p5qks5qtrcu55jp3gddbfjsieiv7wuka",
                    "profile_banner_url": "https://cdn.bsky.app/img/banner/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreichzyovokfzmymz36p5jibbjrhsur6n7hjnzxrpbt5jaydp2szvna",
                    "date_joined": "2023-04-12 04:53:57",
                    "date_joined_timestamp": 1681275237,
                    "pinned_post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                    "url": "https://bsky.app/profile/bsky.app"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/user/posts": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyUserPosts",
        "summary": "Bluesky User Posts",
        "description": "Get a user's feed by handle: their posts, replies, and reposts in feed order (the pinned post first, then newest first), each flagged with is_reply, is_repost, and is_pinned. Returns post text, engagement metrics, media, link cards, and quoted posts. Set get_sentiment=true to add AI emotion analysis (+$0.001/page).\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-user-posts"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "bsky.app"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyUserPostsResponse"
                },
                "example": {
                  "posts": [
                    {
                      "title": "@bsky.app on Bluesky",
                      "url": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l",
                      "date": "2024-10-17 07:06:51",
                      "author": "bsky.app",
                      "author_name": "Bluesky",
                      "author_id": "did:plc:z72i7hdynmk6r22z27h6tvur",
                      "author_verified": false,
                      "source": "Bluesky",
                      "domain": "bsky.app",
                      "snippet": "👋  Bluesky is an open social network that gives creators independence from platforms, developers the freedom to build, and users a choice in their exp…",
                      "likes": 63685,
                      "replies": 8582,
                      "reposts": 9530,
                      "quotes": 708,
                      "bookmarks": 249,
                      "lang": "en",
                      "is_reply": false,
                      "in_reply_to_id": "",
                      "is_quote": false,
                      "quoted_post": null,
                      "hashtags": [],
                      "mentions": [],
                      "links": [],
                      "link_preview": null,
                      "media_type": "text",
                      "image_url": "",
                      "video_url": "",
                      "carousel_media": [],
                      "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                      "is_repost": false,
                      "reposted_by": "",
                      "is_pinned": true
                    }
                  ],
                  "username": "bsky.app",
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/user/followers": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyUserFollowers",
        "summary": "Bluesky User Followers",
        "description": "Get the followers of a Bluesky user, newest first. Returns handle, display name, DID, bio, verification status, profile picture, and join date for each follower.\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-user-followers"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "bsky.app"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyUserFollowersResponse"
                },
                "example": {
                  "followers": [
                    {
                      "username": "useforgekit.bsky.social",
                      "full_name": "ForgeKit",
                      "user_id": "did:plc:fmtj42jmivqv5ffhhniuflov",
                      "biography": "Screenshot & PDF API without Puppeteer. One credit pool for screenshots, PDFs, OG images, QR, link previews. Agent-ready (MCP). https://useforgekit.de…",
                      "is_verified": false,
                      "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:fmtj42jmivqv5ffhhniuflov/bafkreiflnuwjcrdi36s3h63xqgrn6gumysxuhl7g4fyg5poc7mqegqhp2u",
                      "date_joined": "2026-09-03 00:11:18",
                      "url": "https://bsky.app/profile/useforgekit.bsky.social"
                    }
                  ],
                  "username": "bsky.app",
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/user/following": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyUserFollowing",
        "summary": "Bluesky User Following",
        "description": "Get the accounts a Bluesky user follows, newest first. Returns handle, display name, DID, bio, verification status, profile picture, and join date for each account.\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-user-following"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "pfrazee.com"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyUserFollowingResponse"
                },
                "example": {
                  "following": [
                    {
                      "username": "wired.sister.haus",
                      "full_name": "evil_sister.rb",
                      "user_id": "did:plc:m6stoaqv4ocgbn4icbwj7chp",
                      "biography": "dream sender",
                      "is_verified": false,
                      "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:m6stoaqv4ocgbn4icbwj7chp/bafkreifzlrytu464rba7tkbted4qzw5ovz6z5bxk2r26uctjespgz5dul4",
                      "date_joined": "2026-04-14 23:30:04",
                      "url": "https://bsky.app/profile/wired.sister.haus"
                    }
                  ],
                  "username": "pfrazee.com",
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/user/likes": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyUserLikes",
        "summary": "Bluesky User Likes",
        "description": "Get the posts a Bluesky user has liked, newest first. Returns the full post for each like plus liked_at, the time the user liked it. Set get_sentiment=true to add AI emotion analysis (+$0.001/page).\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-user-likes"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "pfrazee.com"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyUserLikesResponse"
                },
                "example": {
                  "posts": [
                    {
                      "title": "@cthomasjamh.bsky.social on Bluesky",
                      "url": "https://bsky.app/profile/cthomasjamh.bsky.social/post/3mvnh4tvkfc2j",
                      "date": "2026-09-16 15:25:06",
                      "author": "cthomasjamh.bsky.social",
                      "author_name": "Charlie Thomas",
                      "author_id": "did:plc:he2lkvdpuq3vnsnludc2r5im",
                      "author_verified": false,
                      "source": "Bluesky",
                      "domain": "bsky.app",
                      "snippet": "I am actually going to start trying to use Sankey diagrams in every briefing I do from now on while watching the reactions of the audience like a hawk…",
                      "likes": 22,
                      "replies": 1,
                      "reposts": 4,
                      "quotes": 1,
                      "bookmarks": 0,
                      "lang": "en",
                      "is_reply": false,
                      "in_reply_to_id": "",
                      "is_quote": true,
                      "quoted_post": {
                        "post_id": "at://did:plc:ragtjsm2j2vknwkz3zp4oxrd/app.bsky.feed.post/3mvm4gtzkgk2f",
                        "url": "https://bsky.app/profile/pfrazee.com/post/3mvm4gtzkgk2f",
                        "date": "2026-09-16 02:41:11",
                        "author": "pfrazee.com",
                        "author_name": "P(aul) Frazee",
                        "author_verified": true,
                        "snippet": "I’m gonna need a moratorium on sankey diagrams",
                        "likes": 311,
                        "reposts": 17
                      },
                      "hashtags": [],
                      "mentions": [],
                      "links": [],
                      "link_preview": null,
                      "media_type": "text",
                      "image_url": "",
                      "video_url": "",
                      "carousel_media": [],
                      "post_id": "at://did:plc:he2lkvdpuq3vnsnludc2r5im/app.bsky.feed.post/3mvnh4tvkfc2j",
                      "liked_at": "2026-09-16 16:43:04"
                    }
                  ],
                  "username": "pfrazee.com",
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/post": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyPostDetails",
        "summary": "Bluesky Post Details",
        "description": "Get a single Bluesky post by URL or ID. Returns the post text, author, publication date, engagement metrics (likes, replies, reposts, quotes, bookmarks), media, link card, and quoted post. Set get_sentiment=true to add AI emotion analysis (+$0.001/request).\n\n**Price:** $0.003 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-post"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"
          },
          {
            "name": "post_id",
            "in": "query",
            "required": false,
            "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyPostDetailsResponse"
                },
                "example": {
                  "post": {
                    "title": "@bsky.app on Bluesky",
                    "url": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l",
                    "date": "2024-10-17 07:06:51",
                    "author": "bsky.app",
                    "author_name": "Bluesky",
                    "author_id": "did:plc:z72i7hdynmk6r22z27h6tvur",
                    "author_verified": false,
                    "source": "Bluesky",
                    "domain": "bsky.app",
                    "snippet": "👋  Bluesky is an open social network that gives creators independence from platforms, developers the freedom to build, and users a choice in their exp…",
                    "likes": 63685,
                    "replies": 8582,
                    "reposts": 9530,
                    "quotes": 708,
                    "bookmarks": 249,
                    "lang": "en",
                    "is_reply": false,
                    "in_reply_to_id": "",
                    "is_quote": false,
                    "quoted_post": null,
                    "hashtags": [],
                    "mentions": [],
                    "links": [],
                    "link_preview": null,
                    "media_type": "text",
                    "image_url": "",
                    "video_url": "",
                    "carousel_media": [],
                    "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the post does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/post/comments": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyPostComments",
        "summary": "Bluesky Post Comments",
        "description": "Get the replies to a Bluesky post. Returns every reply Bluesky serves for the thread, nested up to 10 levels deep, as a flat list; each reply is a full post with in_reply_to_id pointing at its parent. Set get_sentiment=true to add AI emotion analysis (+$0.001/request).\n\n**Price:** $0.003 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-post-comments"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"
          },
          {
            "name": "post_id",
            "in": "query",
            "required": false,
            "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyPostCommentsResponse"
                },
                "example": {
                  "comments": [
                    {
                      "title": "@bsky.app on Bluesky",
                      "url": "https://bsky.app/profile/bsky.app/post/3l6ovfftinx2m",
                      "date": "2024-10-17 07:07:26",
                      "author": "bsky.app",
                      "author_name": "Bluesky",
                      "author_id": "did:plc:z72i7hdynmk6r22z27h6tvur",
                      "author_verified": false,
                      "source": "Bluesky",
                      "domain": "bsky.app",
                      "snippet": "• Anyone can create and subscribe to feeds. There are 50k+ feeds here, like posts from mutuals, news, or cat photos!\n\nbsky.app/feeds\n\n• The Discover f…",
                      "likes": 3254,
                      "replies": 60,
                      "reposts": 284,
                      "quotes": 41,
                      "bookmarks": 7,
                      "lang": "en",
                      "is_reply": true,
                      "in_reply_to_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                      "is_quote": false,
                      "quoted_post": null,
                      "hashtags": [],
                      "mentions": [],
                      "links": [
                        "https://bsky.app/feeds"
                      ],
                      "link_preview": null,
                      "media_type": "text",
                      "image_url": "",
                      "video_url": "",
                      "carousel_media": [],
                      "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6ovfftinx2m"
                    }
                  ],
                  "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                  "total": 8582,
                  "count": 740
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the post does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/post/likes": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyPostLikes",
        "summary": "Bluesky Post Likes",
        "description": "Get the users who liked a Bluesky post, newest first. Returns handle, display name, DID, bio, verification status, profile picture, join date, and the time of the like for each user.\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-post-likes"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"
          },
          {
            "name": "post_id",
            "in": "query",
            "required": false,
            "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyPostLikesResponse"
                },
                "example": {
                  "likes": [
                    {
                      "username": "js2k9.bsky.social",
                      "full_name": "JS_2K9",
                      "user_id": "did:plc:yqsdfrzxn6ocmtu53euptrnp",
                      "biography": "Bluesky account of JS_2K9.\n(Made back in July)",
                      "is_verified": false,
                      "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:yqsdfrzxn6ocmtu53euptrnp/bafkreianv47vz3ryjbwfifrihesvdkusyqiif3a3mbmxwq5jt5vbw5dfiq",
                      "date_joined": "2026-07-16 04:26:07",
                      "url": "https://bsky.app/profile/js2k9.bsky.social",
                      "liked_at": "2026-09-16 04:21:54"
                    }
                  ],
                  "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                  "total": 63685,
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the post does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/post/quotes": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyPostQuotes",
        "summary": "Bluesky Post Quotes",
        "description": "Get the posts that quote a Bluesky post, newest first. Returns the full quoting post with its text, author, engagement metrics, and media. Set get_sentiment=true to add AI emotion analysis (+$0.001/page).\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-post-quotes"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"
          },
          {
            "name": "post_id",
            "in": "query",
            "required": false,
            "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any item that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyPostQuotesResponse"
                },
                "example": {
                  "quotes": [
                    {
                      "title": "@ekimdafluffyeevee.bsky.social on Bluesky",
                      "url": "https://bsky.app/profile/ekimdafluffyeevee.bsky.social/post/3musg7o2nfk24",
                      "date": "2026-09-05 21:26:54",
                      "author": "ekimdafluffyeevee.bsky.social",
                      "author_name": "michael_Mikafran",
                      "author_id": "did:plc:aske3ha7qi4gm2fskxuxo64h",
                      "author_verified": false,
                      "source": "Bluesky",
                      "domain": "bsky.app",
                      "snippet": "open social network my ass being eaten by cannabis",
                      "likes": 4,
                      "replies": 0,
                      "reposts": 0,
                      "quotes": 0,
                      "bookmarks": 0,
                      "lang": "en",
                      "is_reply": false,
                      "in_reply_to_id": "",
                      "is_quote": true,
                      "quoted_post": {
                        "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                        "url": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l",
                        "date": "2024-10-17 07:06:51",
                        "author": "bsky.app",
                        "author_name": "Bluesky",
                        "author_verified": false,
                        "snippet": "👋  Bluesky is an open social network that gives creators independence from platforms, developers the freedom to build, a…",
                        "likes": 63685,
                        "reposts": 9530
                      },
                      "hashtags": [],
                      "mentions": [],
                      "links": [],
                      "link_preview": null,
                      "media_type": "text",
                      "image_url": "",
                      "video_url": "",
                      "carousel_media": [],
                      "post_id": "at://did:plc:aske3ha7qi4gm2fskxuxo64h/app.bsky.feed.post/3musg7o2nfk24"
                    }
                  ],
                  "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                  "total": 708,
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the post does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/bluesky/post/reposts": {
      "get": {
        "tags": [
          "Bluesky"
        ],
        "operationId": "blueskyPostReposts",
        "summary": "Bluesky Post Reposts",
        "description": "Get the users who reposted a Bluesky post, newest first. Returns handle, display name, DID, bio, verification status, profile picture, and join date for each user.\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/bluesky-post-reposts"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l"
          },
          {
            "name": "post_id",
            "in": "query",
            "required": false,
            "description": "The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters). Provide either url or post_id.",
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page returned). Each page returns up to 50 results. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlueskyPostRepostsResponse"
                },
                "example": {
                  "reposts": [
                    {
                      "username": "sykhotic.bsky.social",
                      "full_name": "Hunter/Hubris (XIV 7.x Spoilers)",
                      "user_id": "did:plc:zzwq6jhjnv4irlwhl5okzdut",
                      "biography": "They/He | 30s | 🔞 (18+) | Furry\nExtremely part-time Let's Player. Canadian. Severely addicted to FFXIV (Hubris Tymbaent/Bozica Tirasch - Faerie, Aethe…",
                      "is_verified": false,
                      "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:zzwq6jhjnv4irlwhl5okzdut/bafkreifcg4l3q5spoia4tdwxrdkrmuzcem3ymzllpykff7jtnps6tcejam",
                      "date_joined": "2023-08-03 15:59:32",
                      "url": "https://bsky.app/profile/sykhotic.bsky.social"
                    }
                  ],
                  "post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
                  "total": 9530,
                  "pages": 1,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the post does not exist (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Bluesky data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable: the data source is temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/posts": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "searchFacebookPosts",
        "summary": "Search Facebook Posts",
        "description": "Search for Facebook posts globally by keyword. Supports date filtering, sorting, and location filtering.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-search-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "artificial intelligence"
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "description": "Facebook location ID from /v1/facebook/locations, used to scope posts to that place. Digits only, maximum 64 characters.",
            "schema": {
              "type": "string",
              "maxLength": 64
            },
            "example": "106078429431815"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter posts from this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter posts until this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results. most_recent returns the newest posts first; relevance is the default.",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "relevance"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchFacebookPostsResponse"
                },
                "example": {
                  "count": 5,
                  "pages": 1,
                  "posts": [
                    {
                      "author_id": "61558869884404",
                      "author_name": "Knowledge of Technology",
                      "author_profile_picture": "https://scontent.fkul16-3.fna.fbcdn.net/v/t39.30808-1/494422481_122182288256295662_7620931776120958778_n.jpg?stp=cp0_dst-jpg_s80x80_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=NpF4xYnZF5oQ7kNvwFbUy-4&_nc_oc=AdpDxAyinmJFRKlKztjv8Jd_-pfqOMUOgg8SG_QUHHAJNmjT5Wmld2hKEcLRmircxEs&_nc_zt=24&_nc_ht=scontent.fkul16-3.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af3qKau73CdzIesmg1THOxvRygEHbPNvmsm0Qlitz1PIwg&oe=69D74B6F",
                      "author_url": "https://www.facebook.com/people/Knowledge-of-Technology/61558869884404/",
                      "comments_count": 12,
                      "date": "2026-04-04 11:32:37",
                      "external_url": null,
                      "image_url": "https://scontent.fkul16-3.fna.fbcdn.net/v/t39.30808-6/660531214_122225856956295662_910678198896331425_n.jpg?_nc_cat=101&ccb=1-7&_nc_sid=7b2446&_nc_ohc=Aqlx_HfCxkEQ7kNvwHXznx2&_nc_oc=AdqO8VBWoiV_lGu4kxf7wzR1b89syEI1wfVWTzp2ZMgfSbH0vQKPIWDcse564cBedWE&_nc_zt=23&_nc_ht=scontent.fkul16-3.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af1XyUh_zZc5_VzVLyGEVuvAMHo3CGdNK563LjU97TmsJQ&oe=69D75525",
                      "message": "US Air Force Declares the X-44 Manta Fighter is Ready for Action!",
                      "post_id": "122225856980295662",
                      "reactions": {
                        "angry": 0,
                        "care": 1,
                        "haha": 17,
                        "like": 98,
                        "love": 4,
                        "sad": 0,
                        "wow": 1
                      },
                      "reactions_count": 121,
                      "reshare_count": 5,
                      "timestamp": 1775302357,
                      "url": "https://www.facebook.com/permalink.php?story_fbid=pfbid0VBCazaK13bu44XTQwP7bvxDTVg6KpwmZq53HecdDwFRc94MN326Q7KYKzwU7YbHml&id=61558869884404",
                      "video": null
                    },
                    {
                      "author_id": "61580418573696",
                      "author_name": "Technology 2.0k",
                      "author_profile_picture": "https://scontent.fkul16-3.fna.fbcdn.net/v/t39.30808-1/662514144_122130923325013952_7274032871765814460_n.jpg?stp=cp0_dst-jpg_s80x80_tt6&_nc_cat=101&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=g6UTxjdKYQkQ7kNvwEAf97-&_nc_oc=AdrYvrA-xJRPNG1YCcATg50MsQ8taxtVNv5ltkrabUraIf8Zns9yxxftkC_UBci8jmA&_nc_zt=24&_nc_ht=scontent.fkul16-3.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af0bPZZJehXRwO3-wUJvBe5ItiLmyjGmxB4Ar2GK8N86ew&oe=69D7536C",
                      "author_url": "https://www.facebook.com/people/Technology-20k/61580418573696/",
                      "comments_count": 305,
                      "date": "2026-04-04 05:04:18",
                      "external_url": null,
                      "image_url": null,
                      "message": "✅ 𝗔𝗖𝗧𝗜𝗩𝗘 আছি। 🟢\n✅ 𝐅𝐎𝐋𝐋𝐎𝐖 দিন। 🟢\n🔔 নোটিফিকেশন পাওয়া মাত্রই। 🟢\n✅ 𝐅𝐎𝐋𝐋𝐎𝐖 𝐁𝐚𝐜𝐤 দিবো। 🟢",
                      "post_id": "122131030689013952",
                      "reactions": {
                        "angry": 0,
                        "care": 3,
                        "haha": 0,
                        "like": 101,
                        "love": 17,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 121,
                      "reshare_count": 1,
                      "timestamp": 1775279058,
                      "url": "https://www.facebook.com/permalink.php?story_fbid=pfbid0vDuw4To6Dk75ukQcMr5AnwQXBqT8HMZ38ffyWyu761PvjpBEHTUUMsxvdmcDCWvzl&id=61580418573696",
                      "video": null
                    },
                    {
                      "author_id": "61580418573696",
                      "author_name": "Technology 2.0k",
                      "author_profile_picture": "https://scontent.fkul16-3.fna.fbcdn.net/v/t39.30808-1/662514144_122130923325013952_7274032871765814460_n.jpg?stp=cp0_dst-jpg_s80x80_tt6&_nc_cat=101&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=g6UTxjdKYQkQ7kNvwEAf97-&_nc_oc=AdrYvrA-xJRPNG1YCcATg50MsQ8taxtVNv5ltkrabUraIf8Zns9yxxftkC_UBci8jmA&_nc_zt=24&_nc_ht=scontent.fkul16-3.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af0bPZZJehXRwO3-wUJvBe5ItiLmyjGmxB4Ar2GK8N86ew&oe=69D7536C",
                      "author_url": "https://www.facebook.com/people/Technology-20k/61580418573696/",
                      "comments_count": 224,
                      "date": "2026-04-04 02:58:39",
                      "external_url": null,
                      "image_url": null,
                      "message": "✅ 𝗔𝗖𝗧𝗜𝗩𝗘 আছি। 🟢\n✅ 𝐅𝐎𝐋𝐋𝐎𝐖 দিন। 🟢\n🔔 নোটিফিকেশন পাওয়া মাত্রই। 🟢\n✅ 𝐅𝐎𝐋𝐋𝐎𝐖 𝐁𝐚𝐜𝐤 দিবো। 🟢",
                      "post_id": "122131021443013952",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 84,
                        "love": 13,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 97,
                      "reshare_count": 1,
                      "timestamp": 1775271519,
                      "url": "https://www.facebook.com/permalink.php?story_fbid=pfbid0ns7xVfvwzQgTG6RmGTkrMuckL9yQa7eHULuMg9qR3XhJT9gDnPZoGe1BK9UC6CGRl&id=61580418573696",
                      "video": null
                    },
                    {
                      "author_id": "61586399368151",
                      "author_name": "Technology Era",
                      "author_profile_picture": "https://scontent.fkul16-2.fna.fbcdn.net/v/t39.30808-1/657790029_122104769745213312_3002454016534148734_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=108&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=8tdTbV9JHFQQ7kNvwG0xXYg&_nc_oc=AdrO-DLf-e-VxHBPffcVYto9YmWnoS6nt4tUUpCEpNfG222uN5ssG0VdKQ1ulJJxYJE&_nc_zt=24&_nc_ht=scontent.fkul16-2.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af2arMo3EMXFONfd88YUiYRZKFmscOA54LtH8my4oDJrjA&oe=69D75D24",
                      "author_url": "https://www.facebook.com/TechnologyEraofficial",
                      "comments_count": 0,
                      "date": "2026-04-04 19:24:27",
                      "external_url": null,
                      "image_url": "https://scontent.fkul16-1.fna.fbcdn.net/v/t39.30808-6/663265219_122106837243213312_3724292088094340107_n.jpg?_nc_cat=111&ccb=1-7&_nc_sid=e06c5d&_nc_ohc=04mIhN6dXQUQ7kNvwHD3Crc&_nc_oc=AdoWZiFl2l39DIK0Nd7C67-_UB9kR5EfvDGVp3JDTa9xu4FqSPA8pkHEsIJaC03X718&_nc_zt=23&_nc_ht=scontent.fkul16-1.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af3QPIPStlgtkT531hOpRbSwlOyZcK320oNHTtQsfm3n8g&oe=69D7637F",
                      "message": "🌍🚀 LOOKING BACK AT HOME\n\nSomewhere in deep space, a quiet moment unfolds…\n\nChristina Koch and Reid Wiseman pause inside the Orion spacecraft, gazing back at Earth 🌍✨\n\nFrom this distance, our world is no longer vast—it’s a small, glowing sphere floating in darkness. Peaceful. Fragile. One home for all of us 💙\n\nAs NASA’s Artemis II mission continues toward the Moon, this moment reminds us what truly matters.\n\nNo borders. No divisions.\nJust one planet… worth protecting.\n\n📸 Source: NASA\n\n#ArtemisII #NASA #EarthFromSpace #SpaceJourney #Astronauts #OurHome #DeepSpace #SpaceExploration",
                      "post_id": "959805126739728",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 3,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 3,
                      "reshare_count": 1,
                      "timestamp": 1775330667,
                      "url": "https://www.facebook.com/groups/199293622790886/posts/959805126739728/",
                      "video": null
                    },
                    {
                      "author_id": "61586399368151",
                      "author_name": "Technology Era",
                      "author_profile_picture": "https://scontent.fkul16-2.fna.fbcdn.net/v/t39.30808-1/657790029_122104769745213312_3002454016534148734_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=108&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=8tdTbV9JHFQQ7kNvwG0xXYg&_nc_oc=AdrO-DLf-e-VxHBPffcVYto9YmWnoS6nt4tUUpCEpNfG222uN5ssG0VdKQ1ulJJxYJE&_nc_zt=24&_nc_ht=scontent.fkul16-2.fna&_nc_gid=w8f-Mvbe4SRhTc2aYyM7fA&_nc_ss=7a389&oh=00_Af2arMo3EMXFONfd88YUiYRZKFmscOA54LtH8my4oDJrjA&oe=69D75D24",
                      "author_url": "https://www.facebook.com/TechnologyEraofficial",
                      "comments_count": 0,
                      "date": "2026-04-04 19:04:11",
                      "external_url": null,
                      "image_url": null,
                      "message": "🌍 Wow! Look at how our atmosphere is.\n\nThis incredible shot from Artemis II shows the northern lights tracing the thin ribbon of air that shields all life on Earth.\n\n ✨ Every creature, every forest, every ocean depends on this delicate layer.\n\nSeeing our planet from this perspective is humbling and awe-inspiring — a true reminder that we all share one home. \n\n💚How does this view make you feel about Earth?\n\nCredit: NASA",
                      "post_id": "2294917621031955",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 2,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 2,
                      "reshare_count": 1,
                      "timestamp": 1775329451,
                      "url": "https://www.facebook.com/groups/600450697145331/posts/2294917621031955/",
                      "video": null
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/locations": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "searchFacebookLocations",
        "summary": "Search Facebook Locations",
        "description": "Resolve a place name (city, region, or country) to Facebook location IDs. Use the returned id as the location_id parameter on Search Posts to scope results to a place.\n\n**Price:** $0.004 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-search-locations"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Place name to resolve, e.g. \"London\" or \"Paris, France\" (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "London, United Kingdom"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchFacebookLocationsResponse"
                },
                "example": {
                  "count": 3,
                  "results": [
                    {
                      "id": "106078429431815",
                      "label": "London, United Kingdom",
                      "timezone": "Europe/London"
                    },
                    {
                      "id": "107624535933778",
                      "label": "London, Ontario",
                      "timezone": "America/Toronto"
                    },
                    {
                      "id": "108364785855057",
                      "label": "London, Kentucky",
                      "timezone": "America/New_York"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/pages": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "searchFacebookPages",
        "summary": "Search Facebook Pages",
        "description": "Search for Facebook pages by keyword.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-search-pages"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "nike"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchFacebookPagesResponse"
                },
                "example": {
                  "count": 7,
                  "pages": 1,
                  "results": [
                    {
                      "facebook_id": "100044541544829",
                      "image_url": "https://scontent.fgye1-2.fna.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg?stp=dst-jpg_s120x120_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=v59b8CQNdxEQ7kNvwGaAgct&_nc_oc=AdrVJl4u1sbnSzP4-trGUKSPJWOpkO0-woS4NV_zfSzfty9b7rahEoqYhixZo2_F1PM&_nc_zt=24&_nc_ht=scontent.fgye1-2.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af3LF57AehOzYmj7aQvAVXE7m35OMnZfvpcxvLPBJ1z6-w&oe=69D73AF0",
                      "is_verified": true,
                      "name": "Nike",
                      "profile_url": "https://www.facebook.com/nike",
                      "url": "https://www.facebook.com/nike"
                    },
                    {
                      "facebook_id": "100080947524412",
                      "image_url": "https://scontent.fgye1-2.fna.fbcdn.net/v/t39.30808-1/464177896_563010563073856_3957029871201892295_n.jpg?stp=dst-jpg_p120x120_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=R_ey9qt6Y5QQ7kNvwGlPwTl&_nc_oc=AdquU31dLvw-yQ8ZBAFeXxLRVaC6gXO3hparO611Mrq_IFGDs0kmBpjfy-O0LKx1kQ0&_nc_zt=24&_nc_ht=scontent.fgye1-2.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af25MPAPy9zkEIOi2izbiSloKvgbKUgZXcsbjmDD4A2t0g&oe=69D75294",
                      "is_verified": false,
                      "name": "𝒩𝒾𝓀𝑒",
                      "profile_url": "https://www.facebook.com/people/%F0%9D%92%A9%F0%9D%92%BE%F0%9D%93%80%F0%9D%91%92/100080947524412/",
                      "url": "https://www.facebook.com/people/%F0%9D%92%A9%F0%9D%92%BE%F0%9D%93%80%F0%9D%91%92/100080947524412/"
                    },
                    {
                      "facebook_id": "100069103212687",
                      "image_url": "https://scontent.fgye1-2.fna.fbcdn.net/v/t39.30808-1/490707067_1009525091360922_1056008016999260844_n.jpg?stp=c137.0.990.990a_dst-jpg_s120x120_tt6&_nc_cat=103&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=AyPDpr47Z_sQ7kNvwGrV8cB&_nc_oc=AdqJS5yRUf44YgnGaAcD7TKCmU5IbNjJGrXJLhPUfKivAUYtqz-SRrtccIslcv245Eg&_nc_zt=24&_nc_ht=scontent.fgye1-2.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af2M3MwbTr397PtJvzak6lJ7X17jeSIeNEqXz5V5DA83zg&oe=69D73F55",
                      "is_verified": false,
                      "name": "Nike √",
                      "profile_url": "https://www.facebook.com/NIKE0212",
                      "url": "https://www.facebook.com/NIKE0212"
                    },
                    {
                      "facebook_id": "100075844157404",
                      "image_url": "https://scontent.fgye1-1.fna.fbcdn.net/v/t39.30808-1/438059884_439115155293286_4596973596600262589_n.jpg?stp=dst-jpg_s120x120_tt6&_nc_cat=110&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=l_ouSft0SaoQ7kNvwEehSjw&_nc_oc=AdqUaDdsqERuKqTYRfRVZ4-5R6iVLSIdVCtjoFyovnm55oLB6ntENn5H8psxfQWq3AQ&_nc_zt=24&_nc_ht=scontent.fgye1-1.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af2K7ayNJXOe2JTnzy2A-9nMLkxLtREdV0P7x83YqBU4OA&oe=69D74291",
                      "is_verified": false,
                      "name": "Hicham Nike",
                      "profile_url": "https://www.facebook.com/nike.hicham",
                      "url": "https://www.facebook.com/nike.hicham"
                    },
                    {
                      "facebook_id": "100086273798455",
                      "image_url": "https://scontent.fgye1-1.fna.fbcdn.net/v/t39.30808-1/307780521_105824382291895_7166728325618866943_n.jpg?stp=dst-jpg_s120x120_tt6&_nc_cat=104&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=3ivffHw6-LMQ7kNvwEoLi0J&_nc_oc=AdqWExP6LrFv1b9nceFyZHShGpg7jGo1lsok108EG3g6NPA0zRoX7T6OjmxnVscWUnQ&_nc_zt=24&_nc_ht=scontent.fgye1-1.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af01veccGi5BHji2Qy18CkPqMtUhRi6TiWR5wYflpAwrqw&oe=69D73F4E",
                      "is_verified": false,
                      "name": "Nike Sports Camps Canada",
                      "profile_url": "https://www.facebook.com/sportscampscanada",
                      "url": "https://www.facebook.com/sportscampscanada"
                    },
                    {
                      "facebook_id": "100044519945902",
                      "image_url": "https://scontent.fgye1-2.fna.fbcdn.net/v/t39.30808-1/387181570_863325755161415_3589774989337788111_n.jpg?stp=dst-jpg_s120x120_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=hGWGrrauZRwQ7kNvwGXMhay&_nc_oc=Adpmpuj_cQwZ1oGz3tzh91Y47grHT3WYV04kRWxRbFFikZo-el5nMjy6TvQBw5xN60Y&_nc_zt=24&_nc_ht=scontent.fgye1-2.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af1gswkGfae9BjoyMDzdxXDk5lFQHOtSukZGn5wXh-HGvQ&oe=69D742C5",
                      "is_verified": true,
                      "name": "Nike Football",
                      "profile_url": "https://www.facebook.com/nikefootball",
                      "url": "https://www.facebook.com/nikefootball"
                    },
                    {
                      "facebook_id": "100088903545919",
                      "image_url": "https://scontent.fgye1-1.fna.fbcdn.net/v/t39.30808-1/512885319_746073068366138_2076296945898240070_n.jpg?stp=dst-jpg_s120x120_tt6&_nc_cat=104&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=Q-Asn-5d_ZAQ7kNvwFvTNUd&_nc_oc=AdrTPjnyjTjvZhH4rfS4up1o1XA4fJA8JblutgNrMKYkGYVVz6F3YCwfI1b7BC_b2lk&_nc_zt=24&_nc_ht=scontent.fgye1-1.fna&_nc_gid=yFj-8GtwNphl2TjdpSLSPg&_nc_ss=7a389&oh=00_Af1ZnBid365MRC0s2ZmfUUDykaN_ekx5AUKiNWTogwIyDw&oe=69D73FD5",
                      "is_verified": false,
                      "name": "NikeVlog",
                      "profile_url": "https://www.facebook.com/NikeVloger",
                      "url": "https://www.facebook.com/NikeVloger"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/videos": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "searchFacebookVideos",
        "summary": "Search Facebook Videos",
        "description": "Search for Facebook videos by keyword. Supports date filtering and sorting.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-search-videos"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "cooking"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter videos from this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter videos until this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results. most_recent returns the newest videos first; relevance is the default.",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "relevance"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each video. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any video that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchFacebookVideosResponse"
                },
                "example": {
                  "count": 7,
                  "pages": 1,
                  "videos": [
                    {
                      "author_name": "Top Funny Eating",
                      "author_url": "https://www.facebook.com/kingmonkey99",
                      "author_verified": false,
                      "description": "Amazing Movie Handsome Chef Cooking Special Food 2026",
                      "thumbnail": "https://scontent-gru2-1.xx.fbcdn.net/v/t15.5256-10/664902933_973369045252938_8988409295812670677_n.jpg?stp=c0.133.360.202a_dst-jpg_tt6&_nc_cat=107&ccb=1-7&_nc_sid=e3495b&_nc_ohc=m3gY4Z0AvikQ7kNvwGHiLnX&_nc_oc=AdofruXSwJMg_-_AN_qQRyhbidOVRFbD0S3bl5MNgtNxeQ8AYJXulSLZow8B_DkJ1AU&_nc_zt=23&_nc_ht=scontent-gru2-1.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af2-FKOaEuXfVIfpEtCFfG0QVOGa6zS9n6UtL2fWHI7Xbw&oe=69D76A30",
                      "time_and_views": "588 views · Was live",
                      "title": "Amazing Movie Handsome Chef Cooking Special Food 2026",
                      "video_id": "2383279762174428",
                      "video_url": "https://www.facebook.com/kingmonkey99/videos/2383279762174428/"
                    },
                    {
                      "author_name": "Peach McIntyre",
                      "author_url": null,
                      "author_verified": false,
                      "description": "COOKING WITH PEACH 🍑 PEACH McINTYRE COOKS DINNER FOR HER HUSBAND 👑 & 9 KIDS 🧑🏾👦🏾🧒🏽👧🏽👶🏾👶🏾👶🏾👶🏾👶🏾",
                      "thumbnail": "https://scontent-gru1-2.xx.fbcdn.net/v/t15.5256-10/514227468_1976481929826151_510266678732981168_n.jpg?stp=c0.434.1080.605a_dst-jpg_s403x403_tt6&_nc_cat=100&ccb=1-7&_nc_sid=e3495b&_nc_ohc=2Pk99ktWksEQ7kNvwH7FAUn&_nc_oc=AdrNSy6WsupGpsMuOjU50pOCnqWY2ANhcmx6cvnG2OJ5NNf7fxyEHGgXlecA2cJr9zA&_nc_zt=23&_nc_ht=scontent-gru1-2.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af21Fpz49KrB6qw3X4tunMYvM8hEj_2aykgQuHKVJGLc5g&oe=69D75E40",
                      "time_and_views": "1 Jul 2025 · 196K views",
                      "title": "COOKING WITH PEACH 🍑 PEACH McINTYRE COOKS DINNER FOR HER HUSBAND 👑 & 9 KIDS 🧑🏾👦🏾🧒🏽👧🏽👶🏾👶🏾👶🏾👶🏾👶🏾",
                      "video_id": "1045652387547101",
                      "video_url": "https://www.facebook.com/100007128348250/videos/1045652387547101/"
                    },
                    {
                      "author_name": "Amadika Saxena",
                      "author_url": "https://www.facebook.com/amandika.saxena",
                      "author_verified": false,
                      "description": "Masala chana recipe 🥣 \n#cookingwithlove #cookingtime #kitchenhacks #reelsviralシ #viralreels",
                      "thumbnail": "https://scontent-gru1-2.xx.fbcdn.net/v/t15.5256-10/663513754_818314594665148_8370173759243828276_n.jpg?stp=c0.438.1088.609a_dst-jpg_s403x403_tt6&_nc_cat=100&ccb=1-7&_nc_sid=e3495b&_nc_ohc=zeVmlV2YzhEQ7kNvwG1MXwM&_nc_oc=AdolgUPvvb6Fgs6Dlcq3qKBH5qEC92Fy2GBCokT_1zLMnU_xHWO43oGMVcy8CpdRA2s&_nc_zt=23&_nc_ht=scontent-gru1-2.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af0xdRwmZd32921Xzn1MKegMLUjNAJG_ZGKpe4xHZfqkdQ&oe=69D73E9E",
                      "time_and_views": "8 hours ago · 158 views",
                      "title": "cooking",
                      "video_id": "26030498959983729",
                      "video_url": "https://www.facebook.com/reel/26030498959983729/"
                    },
                    {
                      "author_name": "Helen Tan",
                      "author_url": "https://www.facebook.com/helen.tan.66390",
                      "author_verified": true,
                      "description": "This chef adds extra meow-gic ✨😹🐾 \n#cat #cooking #fblifestyle #fyp #fypシ゚ #AI #catlover #fypviralシ #funnyvideos #funny #reels #viral #trending #explore #everyone #highlights",
                      "thumbnail": "https://scontent-gru1-2.xx.fbcdn.net/v/t15.5256-10/616538667_672036895899069_2839739868755687503_n.jpg?stp=c0.434.1080.605a_dst-jpg_s403x403_tt6&_nc_cat=103&ccb=1-7&_nc_sid=e3495b&_nc_ohc=nQSnxc90CTUQ7kNvwHMxgCF&_nc_oc=Adp-FIqH106hw1d6NrAkn585YHjB0XG25co5lynTPCX9jpxEX8Rcx4fqhVlV0WEO-FQ&_nc_zt=23&_nc_ht=scontent-gru1-2.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af3h-bdK0jw50XO70HPRi0OqFqT4SMrQ6sY5cTajok7L9Q&oe=69D75D6B",
                      "time_and_views": "15 Jan · 146K views",
                      "title": "Cat cooking",
                      "video_id": "872257738733122",
                      "video_url": "https://www.facebook.com/reel/872257738733122/"
                    },
                    {
                      "author_name": "Amuor Dolar",
                      "author_url": "https://www.facebook.com/AmuorDolar",
                      "author_verified": false,
                      "description": "Akou ë Kuot.\nWho remembers?\n#cooking #easyrecipe #creatorsearchinsights #reels #2026newyear",
                      "thumbnail": "https://scontent-gru1-2.xx.fbcdn.net/v/t15.5256-10/609305679_1407882914108294_7511624495067983320_n.jpg?stp=c0.434.1080.605a_dst-jpg_s403x403_tt6&_nc_cat=100&ccb=1-7&_nc_sid=e3495b&_nc_ohc=BPuL3oqchckQ7kNvwH1wjHr&_nc_oc=AdqkptmKXWB5HTJkc1xf2OIiTwSrEOCjiJcIqNEy-chqct-VroliCC4VmPBXM7b68IE&_nc_zt=23&_nc_ht=scontent-gru1-2.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af0GAfhhmvOvVEMUNM86E_ZwQxPw-xWRtLSS7m-ad0l0nA&oe=69D764D8",
                      "time_and_views": "8 Jan · 14K views",
                      "title": "Akou ë Kuot. Who remembers? #cooking #easyrecipe #creatorsearchinsights #reels #2026newyear",
                      "video_id": "2438817453203515",
                      "video_url": "https://www.facebook.com/reel/2438817453203515/"
                    },
                    {
                      "author_name": "Top Funny Eating",
                      "author_url": "https://www.facebook.com/kingmonkey99",
                      "author_verified": false,
                      "description": "Top Amazing Movie Handsome Chef Cooking Special Food 2026",
                      "thumbnail": "https://scontent-gru1-2.xx.fbcdn.net/v/t15.5256-10/662230908_872766415790067_1863583760365134432_n.jpg?stp=c0.133.360.202a_dst-jpg_tt6&_nc_cat=108&ccb=1-7&_nc_sid=e3495b&_nc_ohc=a9MCjLT3wpQQ7kNvwHiDfbk&_nc_oc=AdpAOxFrIViXioo9Z7RgECOXi0q2guxqbo7znbmkOeBkNqJewgsaO7KdSGQrhBqs2cE&_nc_zt=23&_nc_ht=scontent-gru1-2.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af1MUsMsYBfUcaVJi92t-SYJt1_ICWxGBvIt-gJSlShsdw&oe=69D76DF9",
                      "time_and_views": "46K views · Was live",
                      "title": "Top Amazing Movie Handsome Chef Cooking Special Food 2026",
                      "video_id": "4254482954861988",
                      "video_url": "https://www.facebook.com/kingmonkey99/videos/4254482954861988/"
                    },
                    {
                      "author_name": "Loi Lien",
                      "author_url": "https://www.facebook.com/Asiole.1",
                      "author_verified": false,
                      "description": "Today is Mung bean day, it's friday. \n#cooking \n#food \n#lutongbahay \n#mungbean \n#MonggoFriday",
                      "thumbnail": "https://scontent-gru1-2.xx.fbcdn.net/v/t15.5256-10/665246768_1682830289553489_4488041499943523405_n.jpg?stp=c0.434.1080.605a_dst-jpg_s403x403_tt6&_nc_cat=103&ccb=1-7&_nc_sid=e3495b&_nc_ohc=m-LX2q0WzMsQ7kNvwFQMmTr&_nc_oc=Adq2O5drtWFg2CO9ozO7Ik0umybshRbaoYzxKbFxnevrs6wN_zMzthTTZIBaUUGt69Q&_nc_zt=23&_nc_ht=scontent-gru1-2.xx&_nc_gid=pzOmeX9lwQ5tPwxP9lBVIA&_nc_ss=7a389&oh=00_Af0oCIrIQYfHJYRlCBbLqTChUur3n4_Tk5obwCMgdD146A&oe=69D76C78",
                      "time_and_views": "18 hours ago · 443 views",
                      "title": "cooking from the heart",
                      "video_id": "914067828201705",
                      "video_url": "https://www.facebook.com/reel/914067828201705/"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/events": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "searchFacebookEvents",
        "summary": "Search Facebook Events",
        "description": "Search for Facebook events by keyword. Supports date filtering and scoping to a place via a Facebook location ID.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-search-events"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "music festival"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter events from this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter events until this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "description": "Facebook location ID from /v1/facebook/locations, used to scope events to that place. Digits only, maximum 64 characters.",
            "schema": {
              "type": "string",
              "maxLength": 64
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchFacebookEventsResponse"
                },
                "example": {
                  "count": 7,
                  "events": [
                    {
                      "event_id": "2442929756209866",
                      "title": "Boomtown Recruitment & Planning Meeting",
                      "url": "https://www.facebook.com/events/2442929756209866/"
                    },
                    {
                      "event_id": "1613570396584259",
                      "title": "3rd Island Music Festival",
                      "url": "https://www.facebook.com/events/1613570396584259/"
                    },
                    {
                      "event_id": "1200079988686055",
                      "title": "Mountain Light Music Legacy Donor Retreat at Elk Lake Lodge",
                      "url": "https://www.facebook.com/events/1200079988686055/"
                    },
                    {
                      "event_id": "947635377782868",
                      "title": "Outlaw Festival: Willie Nelson, Wilco, Sheryl Crow & More!",
                      "url": "https://www.facebook.com/events/947635377782868/"
                    },
                    {
                      "event_id": "2052305225341167",
                      "title": "MIST MUSIC FESTIVAL",
                      "url": "https://www.facebook.com/events/2052305225341167/"
                    },
                    {
                      "event_id": "1174373434090662",
                      "title": "Boots and Hearts Music Festival - Full Weekend",
                      "url": "https://www.facebook.com/events/1174373434090662/"
                    },
                    {
                      "event_id": "1688633719179707",
                      "title": "Chasing Summer Music Festival 2026",
                      "url": "https://www.facebook.com/events/1688633719179707/"
                    }
                  ],
                  "pages": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/page": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPageDetails",
        "summary": "Facebook Page Details",
        "description": "Get detailed information about a Facebook page including follower count, category, description, and the page_id / delegate_page_id / reels_page_id needed for other endpoints.\n\n**Price:** $0.008 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-page-details"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Full URL of the Facebook page (e.g., https://www.facebook.com/facebook)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.facebook.com/facebook"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPageDetailsResponse"
                },
                "example": {
                  "page": {
                    "address": null,
                    "categories": [
                      "Page",
                      "Sportswear shop"
                    ],
                    "cover_image": "https://scontent.fvlc1-2.fna.fbcdn.net/v/t39.30808-6/285211224_10159903868008445_5477337468887983165_n.png?_nc_cat=102&ccb=1-7&_nc_sid=2a1932&_nc_ohc=ePvQU70_oI8Q7kNvwEW4H4Z&_nc_oc=Adq2mu9NJwYens0DqlXhcFLFWrL2qcR6NLiRyDuwxwnnEsRaojpHWd2Kmn4tr8j-YcM&_nc_zt=23&_nc_ht=scontent.fvlc1-2.fna&_nc_gid=zqiHhFtaogCHTl-NDBAmTQ&_nc_ss=7a389&oh=00_Af2bsMS3-6cVf1owzBkDkCbzTlT-l4yO9qi6hwPX7csuNw&oe=69D754E2",
                    "delegate_page_id": "15087023444",
                    "email": null,
                    "followers": 39000000,
                    "following": 24,
                    "image": "https://scontent.fvlc1-2.fna.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg?_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=v59b8CQNdxEQ7kNvwHpMoOm&_nc_oc=Adq3akDqhqX35O87cAQZ8a8bNzv7ZrtoLUx812kIYtFe6inNxxUcl_afAL7bIGyllB8&_nc_zt=24&_nc_ht=scontent.fvlc1-2.fna&_nc_gid=zqiHhFtaogCHTl-NDBAmTQ&_nc_ss=7a389&oh=00_Af1fWsLsEveQnFdCiZhMDBkvKmTdDLQbESOWeqA2XeEOGQ&oe=69D73AF0",
                    "intro": null,
                    "likes": null,
                    "name": "Nike",
                    "page_id": "100044541544829",
                    "phone": "+48 58 555 01 23",
                    "price_range": null,
                    "rating": null,
                    "reels_page_id": "YXBwX2NvbGxlY3Rpb246cGZiaWQwMjR5QlNRUWplVm1WOUcyeFJQaVB5NlFxUXo5eXpaa0NyQUxSN2ZteXp5NHEzTXh6OXhXeHZyTnhMNEVhWTFNejJwTG94SGV5NzJ5ZEdvS3poTEtvbThQRWZoZ1E3eFk4NEhzalp1bA==",
                    "type": "page",
                    "url": "https://www.facebook.com/nike",
                    "verified": true,
                    "website": "nike.com"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/page/posts": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPagePosts",
        "summary": "Facebook Page Posts",
        "description": "Get posts from a specific Facebook page. Use the page_id from the Page Details endpoint. Supports date filtering.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-page-posts"
        },
        "parameters": [
          {
            "name": "page_id",
            "in": "query",
            "required": true,
            "description": "Numeric Facebook page ID (from Page Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "100064860875397"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter posts from this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter posts until this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPagePostsResponse"
                },
                "example": {
                  "count": 3,
                  "pages": 1,
                  "posts": [
                    {
                      "author_id": "100044541544829",
                      "author_name": "Nike",
                      "author_profile_picture": "https://scontent-mia3-1.xx.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg?stp=cp0_dst-jpg_s40x40_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=v59b8CQNdxEQ7kNvwGiKOR8&_nc_oc=AdpbUY7KPDNql1Z-4r-Rci7Ivst1yg1gbmJEIMwVah9OLJBsokYQhC1GtjxOmdNU7ZA&_nc_zt=24&_nc_ht=scontent-mia3-1.xx&_nc_gid=Z5Jk_5eIbds8WCegNgwN3g&_nc_ss=7a389&oh=00_Af0lHaFFeH84Ys_6Eyd21QE_ku6uD-2JzHa1PwkFYpRc5w&oe=69D73AF0",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 1640,
                      "date": "2025-09-15 16:01:59",
                      "external_url": null,
                      "image_url": null,
                      "message": "Leave your limits at the surface. #JustDoIt",
                      "post_id": "1393461115481927",
                      "reactions": {
                        "angry": 19,
                        "care": 80,
                        "haha": 14,
                        "like": 3955,
                        "love": 687,
                        "sad": 3,
                        "wow": 27
                      },
                      "reactions_count": 4785,
                      "reshare_count": 828,
                      "timestamp": 1757952119,
                      "url": "https://www.facebook.com/reel/2166091230582141/",
                      "video": "https://www.facebook.com/reel/2166091230582141/"
                    },
                    {
                      "author_id": "100044541544829",
                      "author_name": "Nike",
                      "author_profile_picture": "https://scontent-mia3-1.xx.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg?stp=cp0_dst-jpg_s40x40_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=v59b8CQNdxEQ7kNvwGiKOR8&_nc_oc=AdpbUY7KPDNql1Z-4r-Rci7Ivst1yg1gbmJEIMwVah9OLJBsokYQhC1GtjxOmdNU7ZA&_nc_zt=24&_nc_ht=scontent-mia3-1.xx&_nc_gid=Z5Jk_5eIbds8WCegNgwN3g&_nc_ss=7a389&oh=00_Af0lHaFFeH84Ys_6Eyd21QE_ku6uD-2JzHa1PwkFYpRc5w&oe=69D73AF0",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 487,
                      "date": "2025-09-13 23:53:03",
                      "external_url": null,
                      "image_url": null,
                      "message": "The longest jump is the one you didn’t doubt. #JustDoIt",
                      "post_id": "1392071868954185",
                      "reactions": {
                        "angry": 12,
                        "care": 60,
                        "haha": 9,
                        "like": 2607,
                        "love": 447,
                        "sad": 0,
                        "wow": 18
                      },
                      "reactions_count": 3153,
                      "reshare_count": 439,
                      "timestamp": 1757807583,
                      "url": "https://www.facebook.com/reel/752115997659579/",
                      "video": "https://www.facebook.com/reel/752115997659579/"
                    },
                    {
                      "author_id": "100044541544829",
                      "author_name": "Nike",
                      "author_profile_picture": "https://scontent-mia3-1.xx.fbcdn.net/v/t39.30808-1/284964043_10159903868513445_7696353984967674128_n.jpg?stp=cp0_dst-jpg_s40x40_tt6&_nc_cat=1&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=v59b8CQNdxEQ7kNvwGiKOR8&_nc_oc=AdpbUY7KPDNql1Z-4r-Rci7Ivst1yg1gbmJEIMwVah9OLJBsokYQhC1GtjxOmdNU7ZA&_nc_zt=24&_nc_ht=scontent-mia3-1.xx&_nc_gid=Z5Jk_5eIbds8WCegNgwN3g&_nc_ss=7a389&oh=00_Af0lHaFFeH84Ys_6Eyd21QE_ku6uD-2JzHa1PwkFYpRc5w&oe=69D73AF0",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 318,
                      "date": "2025-09-09 23:54:27",
                      "external_url": null,
                      "image_url": null,
                      "message": "Two thoughts, you’re out. #justdoit",
                      "post_id": "1388501259311246",
                      "reactions": {
                        "angry": 7,
                        "care": 43,
                        "haha": 6,
                        "like": 1902,
                        "love": 272,
                        "sad": 1,
                        "wow": 15
                      },
                      "reactions_count": 2246,
                      "reshare_count": 298,
                      "timestamp": 1757462067,
                      "url": "https://www.facebook.com/reel/1168298751995880/",
                      "video": "https://www.facebook.com/reel/1168298751995880/"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/page/photos": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPagePhotos",
        "summary": "Facebook Page Photos",
        "description": "Get photos from a specific Facebook page.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-page-photos"
        },
        "parameters": [
          {
            "name": "page_id",
            "in": "query",
            "required": true,
            "description": "Numeric Facebook page ID (from Page Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "100064860875397"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPagePhotosResponse"
                },
                "example": {
                  "count": 8,
                  "pages": 1,
                  "photos": [
                    {
                      "image_url": "https://scontent.fjed4-1.fna.fbcdn.net/v/t39.30808-6/471191216_18515827705020081_6688650802525521362_n.jpg?_nc_cat=109&ccb=1-7&_nc_sid=13d280&_nc_ohc=NHTLWfUQxBQQ7kNvwGmsjkF&_nc_oc=Adq1Bq43jSSb-4udfgF5mzIDDgPnwzXyJE_5wzINE7t59mfbTGM97F4DPbKde_-DrE4&_nc_zt=23&_nc_ht=scontent.fjed4-1.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af31oEx7W8ravq-m0E3fiqrz196689Crg0Nh-8fB6M-qxA&oe=69D7511A",
                      "photo_id": "1096426968518678"
                    },
                    {
                      "image_url": "https://scontent.fjed4-6.fna.fbcdn.net/v/t39.30808-6/471309883_18515827867020081_6117692865074383845_n.jpg?_nc_cat=110&ccb=1-7&_nc_sid=13d280&_nc_ohc=-Z8snlHbFeUQ7kNvwE9tVaX&_nc_oc=Adownh6f5cMa8Dqusg1w8GxSF6-nZql0eeUv63r3dahRXZCQj7qU-PynChnNeCN2JJs&_nc_zt=23&_nc_ht=scontent.fjed4-6.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af0h3vX0qIWTzeOaT4NcirVHh2Zu01HATVPctWgNwE87TA&oe=69D7729B",
                      "photo_id": "1096426965185345"
                    },
                    {
                      "image_url": "https://scontent.fjed4-2.fna.fbcdn.net/v/t39.30808-6/471328196_18515827753020081_6616129249493745282_n.jpg?_nc_cat=111&ccb=1-7&_nc_sid=13d280&_nc_ohc=U6PmUCTz5dQQ7kNvwFNPK06&_nc_oc=AdoYPK8d7mJUfba8Ux4CCSBAbErpvKK03OlwrUqnbsZ8FblgtQeLwOc_39vsXhlQcV4&_nc_zt=23&_nc_ht=scontent.fjed4-2.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af2cGAiwAbkZzhrABbGshSbTZJ_yMP1yAY1slcIJDPkVRA&oe=69D7468B",
                      "photo_id": "1096426961852012"
                    },
                    {
                      "image_url": "https://scontent.fjed4-3.fna.fbcdn.net/v/t39.30808-6/471282123_18515827837020081_2048498995187193325_n.jpg?_nc_cat=105&ccb=1-7&_nc_sid=13d280&_nc_ohc=t5IU1UFZzisQ7kNvwHHXfm8&_nc_oc=AdqGDKNaPK1h5QzbXreUdVUEDp4smygei1hZ4crHCIGuLe9pL7HIW1uHaaDIqpVPcGg&_nc_zt=23&_nc_ht=scontent.fjed4-3.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af2m6s5wMnbr35XqjdpHj0u6cYRPM0voAPFTDTQO4AgLOQ&oe=69D7481F",
                      "photo_id": "1096411641853544"
                    },
                    {
                      "image_url": "https://scontent.fjed4-1.fna.fbcdn.net/v/t39.30808-6/471446530_18515827714020081_321525995192241284_n.jpg?_nc_cat=101&ccb=1-7&_nc_sid=13d280&_nc_ohc=Iatgl9vGphYQ7kNvwGKftX2&_nc_oc=AdoZsqMGI_mlXK4gjx4aUe50_SSpo9K0y7F9yoVB7IGUZIWvalQsDHxuN8ljwSNDPv4&_nc_zt=23&_nc_ht=scontent.fjed4-1.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af0WGv9dBScFWxKQftMu-Ecpxv1thAJhFREdv-ipev0syw&oe=69D76954",
                      "photo_id": "1096411638520211"
                    },
                    {
                      "image_url": "https://scontent.fjed4-1.fna.fbcdn.net/v/t39.30808-6/471163664_18515827870020081_6660821045787020685_n.jpg?_nc_cat=109&ccb=1-7&_nc_sid=13d280&_nc_ohc=nysnZaphRksQ7kNvwFIt-je&_nc_oc=AdohCHJj-AHZcw8q7C52VdSBwcwFZnC1j34BatqAbBFEXBofKBOrW0wMmV5H_Z629wI&_nc_zt=23&_nc_ht=scontent.fjed4-1.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af3N1zdnUmpVncS6pzKeL5Y5P9Q4eJJp40pF0OJrLT4nBA&oe=69D75EFF",
                      "photo_id": "1096411635186878"
                    },
                    {
                      "image_url": "https://scontent.fjed4-6.fna.fbcdn.net/v/t39.30808-6/471226006_18515827807020081_7253865010005468700_n.jpg?_nc_cat=102&ccb=1-7&_nc_sid=13d280&_nc_ohc=5z5ZXhcEZRoQ7kNvwFupGNI&_nc_oc=Adp3kpFgDiShonaG4gAAjoNY0zRlp056-vbpmYG6_sHjA2N5psyLOWjfPii7HSET9Os&_nc_zt=23&_nc_ht=scontent.fjed4-6.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af27fcmQxqoOwFsCh6ty3yWMbxjSNCIDS6y_DXrQP9L-JQ&oe=69D7628C",
                      "photo_id": "1096411631853545"
                    },
                    {
                      "image_url": "https://scontent.fjed4-1.fna.fbcdn.net/v/t39.30808-6/471224461_18515827027020081_2730394367175734882_n.jpg?_nc_cat=107&ccb=1-7&_nc_sid=13d280&_nc_ohc=soZTBy5WkBEQ7kNvwE2xqTz&_nc_oc=Ado8PSoxcDPX52Yg48BqfITNRWAeLkx9RB74w-pbsKXmIPNa1P_izcLXrMDWGKl-wdE&_nc_zt=23&_nc_ht=scontent.fjed4-1.fna&_nc_gid=Deu8_3xa2gq5Chie-T9Nxg&_nc_ss=7a389&oh=00_Af0lZbziFwrJEddpRmUHx986gFnf5kYm1Ypjv4JP3nokZA&oe=69D765DD",
                      "photo_id": "1095811281913580"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/page/videos": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPageVideos",
        "summary": "Facebook Page Videos",
        "description": "Get videos from a specific Facebook page. Use the delegate_page_id from the Page Details endpoint.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-page-videos"
        },
        "parameters": [
          {
            "name": "delegate_page_id",
            "in": "query",
            "required": true,
            "description": "Delegate page ID (from Page Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "20531316728"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each video. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any video that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPageVideosResponse"
                },
                "example": {
                  "count": 2,
                  "pages": 1,
                  "videos": [
                    {
                      "date": "2026-03-07 17:21:49",
                      "description": "Welcome to K-Ville, Duke University's legendary tent city where students camp out for weeks just to score basketball tickets.",
                      "play_count": 1096104,
                      "thumbnail": "https://scontent.xx.fbcdn.net/v/t15.5256-10/646502_..._n.jpg",
                      "timestamp": 1772904109,
                      "url": "https://www.facebook.com/watch/?v=1312587094016698",
                      "video_id": "1312587094016698"
                    },
                    {
                      "date": "2026-03-05 21:51:45",
                      "description": "No mascots were harmed during the making of this prank.",
                      "play_count": 631559,
                      "thumbnail": "https://scontent.xx.fbcdn.net/v/t15.5256-10/644973_..._n.jpg",
                      "timestamp": 1772747505,
                      "url": "https://www.facebook.com/watch/?v=1610049803578776",
                      "video_id": "1610049803578776"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/page/reels": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPageReels",
        "summary": "Facebook Page Reels",
        "description": "Get reels from a specific Facebook page. Use the reels_page_id from the Page Details endpoint.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-page-reels"
        },
        "parameters": [
          {
            "name": "reels_page_id",
            "in": "query",
            "required": true,
            "description": "Reels page ID (from Page Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "YXBwX2NvbGxlY3Rpb246cGZiaWQwMjR5QlNRUWplVm1WOUcyeFJQaVB5NlFxUXo5eXpaa0NyQUxSN2ZteXp5NHEzTXh6OXhXeHZyTnhMNEVhWTFNejJwTG94SGV5NzJ5ZEdvS3poTEtvbThQRWZoZ1E3eFk4NEhzalp1bA=="
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-10). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each reel. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any reel that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPageReelsResponse"
                },
                "example": {
                  "count": 6,
                  "pages": 1,
                  "reels": [
                    {
                      "author_name": "Nike",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 1640,
                      "date": "2025-09-15 16:01:55",
                      "description": "Leave your limits at the surface. #JustDoIt",
                      "length_in_seconds": 30.025,
                      "play_count": 2000000,
                      "post_id": "1393461115481927",
                      "reactions_count": 4785,
                      "reshare_count": 828,
                      "thumbnail": "https://scontent.flis5-3.fna.fbcdn.net/v/t51.82787-10/549104239_18565912819020081_2330706867671026439_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=101&ccb=1-7&_nc_sid=50ce42&_nc_ohc=BEze9yE55YMQ7kNvwGda0v1&_nc_oc=AdowPyQfD3mq6ytVU8Q6iNUqCrdI6VROHdG65oEa_qCwK-Qd4yV5xPQZ1g9m0h5nPfQ&_nc_zt=23&_nc_ht=scontent.flis5-3.fna&_nc_gid=3u8B8FkGdADBiVZXTy4Jcg&_nc_ss=7a389&oh=00_Af2RAFPMDxlxcLIQACCq0JSPnaEw_Z2X5jQkWprjQghXJQ&oe=69D75024",
                      "timestamp": 1757952115,
                      "url": "https://www.facebook.com/reel/2166091230582141/",
                      "video_id": "2166091230582141"
                    },
                    {
                      "author_name": "Nike",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 487,
                      "date": "2025-09-13 23:53:01",
                      "description": "The longest jump is the one you didn’t doubt. #JustDoIt",
                      "length_in_seconds": 30.03,
                      "play_count": 1500000,
                      "post_id": "1392071868954185",
                      "reactions_count": 3153,
                      "reshare_count": 439,
                      "thumbnail": "https://scontent.flis5-3.fna.fbcdn.net/v/t51.82787-10/548838919_18565615666020081_158902364425729178_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=104&ccb=1-7&_nc_sid=50ce42&_nc_ohc=3zOkvhpvPhYQ7kNvwHj3YBa&_nc_oc=AdpyTSqNqCP416sKJSke1f5T4Up5eDxnn0iGW-FjVpES6VNuDckzGZ1Mr7RP2TGWcJo&_nc_zt=23&_nc_ht=scontent.flis5-3.fna&_nc_gid=3u8B8FkGdADBiVZXTy4Jcg&_nc_ss=7a389&oh=00_Af1HoGCvVVHHOcx-TU9OyOX0aJ9ZRY833qsbUXKzQsSABg&oe=69D769CD",
                      "timestamp": 1757807581,
                      "url": "https://www.facebook.com/reel/752115997659579/",
                      "video_id": "752115997659579"
                    },
                    {
                      "author_name": "Nike",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 318,
                      "date": "2025-09-09 23:54:22",
                      "description": "Two thoughts, you’re out. #justdoit",
                      "length_in_seconds": 15.015,
                      "play_count": 1200000,
                      "post_id": "1388501259311246",
                      "reactions_count": 2246,
                      "reshare_count": 298,
                      "thumbnail": "https://scontent.flis5-4.fna.fbcdn.net/v/t51.71878-10/544903342_1488127749039210_7715950054603424720_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=111&ccb=1-7&_nc_sid=50ce42&_nc_ohc=Lb8TFhcYrpkQ7kNvwG6qiFR&_nc_oc=AdpDBdDBQoSM-DYpUZ1RBiFqUBhRghBky8uSYd3DyuzCCqkmiifBLbvWrS5sKnlXllo&_nc_zt=23&_nc_ht=scontent.flis5-4.fna&_nc_gid=3u8B8FkGdADBiVZXTy4Jcg&_nc_ss=7a389&oh=00_Af00NLDouCokIZhWHnDvnWV0tV-olqRAy-SduXrzrTU7dQ&oe=69D74AF7",
                      "timestamp": 1757462062,
                      "url": "https://www.facebook.com/reel/1168298751995880/",
                      "video_id": "1168298751995880"
                    },
                    {
                      "author_name": "Nike",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 395,
                      "date": "2025-09-07 15:04:13",
                      "description": "Opposites attack.\n\nThe next era of tennis belongs to those on the offense.",
                      "length_in_seconds": 23.99,
                      "play_count": 6100000,
                      "post_id": "1386634066164632",
                      "reactions_count": 5760,
                      "reshare_count": 446,
                      "thumbnail": "https://scontent.flis5-4.fna.fbcdn.net/v/t51.82787-10/542353806_18564185425020081_941598646621154100_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=109&ccb=1-7&_nc_sid=50ce42&_nc_ohc=0G75qc0Rq2YQ7kNvwHXuttE&_nc_oc=AdrClOvSJ2yvt7xCBIUETsasKBLrs7m9jORKQAtxSxP9HASt1ByluMgTHHWnbcdNY20&_nc_zt=23&_nc_ht=scontent.flis5-4.fna&_nc_gid=3u8B8FkGdADBiVZXTy4Jcg&_nc_ss=7a389&oh=00_Af26PJW50F2wt_OGUjQ2I_yIyAx_Sz6rS33E_epkVNHSug&oe=69D754B2",
                      "timestamp": 1757257453,
                      "url": "https://www.facebook.com/reel/715250314869609/",
                      "video_id": "715250314869609"
                    },
                    {
                      "author_name": "Nike",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 411,
                      "date": "2025-09-04 14:02:35",
                      "description": "Why risk it? Because you can. #JustDoIt",
                      "length_in_seconds": 60.05,
                      "play_count": 1400000,
                      "post_id": "1384177993076906",
                      "reactions_count": 3012,
                      "reshare_count": 429,
                      "thumbnail": "https://scontent.flis5-4.fna.fbcdn.net/v/t51.82787-10/541567930_18563646601020081_7147785763345228823_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=109&ccb=1-7&_nc_sid=50ce42&_nc_ohc=nuALaDP3lcQQ7kNvwGjIuE5&_nc_oc=AdoD8NwWBd_oRjw5I7dVTM7I5mswOqLYdMnHGE-oPFeuhLTMGQIYcFk_gyXN9WTq3Gc&_nc_zt=23&_nc_ht=scontent.flis5-4.fna&_nc_gid=3u8B8FkGdADBiVZXTy4Jcg&_nc_ss=7a389&oh=00_Af0Yid-Bn-jT6vacHl262kGJv5vOOpaGoChNGWqN5zI6Zg&oe=69D75F77",
                      "timestamp": 1756994555,
                      "url": "https://www.facebook.com/reel/1092946072904831/",
                      "video_id": "1092946072904831"
                    },
                    {
                      "author_name": "Nike",
                      "author_url": "https://www.facebook.com/nike",
                      "comments_count": 552,
                      "date": "2025-07-29 07:16:19",
                      "description": "Better is the only choice.\n@fcbarcelona purest expression of footballing perfection meets the constant growth mindset of Mamba Mentality.\n\nMillor és l’única opció.\nLa màxima expressió de la perfecció futbolística del @fcbarcelona conflueix amb l’actitud de creixement constant de la Mamba Mentality.\n\nMejor es la única opción.\nLa máxima expresión de la perfección futbolística del @fcbarcelona confluye con la actitud de crecimiento constante de la Mamba Mentality.\n\n#NikeFootball",
                      "length_in_seconds": 34.8,
                      "play_count": 1700000,
                      "post_id": "1351025399725499",
                      "reactions_count": 2457,
                      "reshare_count": 254,
                      "thumbnail": "https://scontent.flis5-3.fna.fbcdn.net/v/t51.71878-10/525883795_1085439846411383_4669152059414146552_n.jpg?stp=dst-jpg_s960x960_tt6&_nc_cat=104&ccb=1-7&_nc_sid=50ce42&_nc_ohc=Ikrzk3NMQx4Q7kNvwG5dFNa&_nc_oc=Adpx29GHhiGiQ_VIqi1ZaB7YkKjMS8rHcmDYukAu1pC-BITy_owQK_gBL_ApZ-ZesHM&_nc_zt=23&_nc_ht=scontent.flis5-3.fna&_nc_gid=3u8B8FkGdADBiVZXTy4Jcg&_nc_ss=7a389&oh=00_Af3n_zYiRfAlia8ZPF9OfbSPd58yhmyze2W-jH4BQrGUQw&oe=69D75A85",
                      "timestamp": 1753773379,
                      "url": "https://www.facebook.com/reel/1256772305920939/",
                      "video_id": "1256772305920939"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/page/reviews": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPageReviews",
        "summary": "Facebook Page Reviews",
        "description": "Get the reviews and recommendations posted to a Facebook page. Returns the review text, the reviewer's recommend flag, author name and profile URL, and the reaction count on each review. Facebook replaced star ratings with recommendations, so no numeric rating is returned.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-page-reviews"
        },
        "parameters": [
          {
            "name": "page_id",
            "in": "query",
            "required": true,
            "description": "Numeric Facebook page ID (from Page Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "100063543614476"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each review. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any review that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPageReviewsResponse"
                },
                "example": {
                  "count": 2,
                  "pages": 1,
                  "reviews": [
                    {
                      "author_name": "Sarah Johnson",
                      "author_url": "https://www.facebook.com/profile.php?id=100048392017456",
                      "reactions_count": 12,
                      "recommend": true,
                      "review_text": "Great customer service and fast response times. Highly recommend!"
                    },
                    {
                      "author_name": "Michael Chen",
                      "author_url": "https://www.facebook.com/profile.php?id=100039284710385",
                      "reactions_count": 4,
                      "recommend": true,
                      "review_text": "Decent product but shipping took longer than expected."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/group": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookGroupDetails",
        "summary": "Facebook Group Details",
        "description": "Get detailed information about a Facebook group including name, description, privacy, member count, location and cover photo. The returned `group.id` is the value to pass as `group_id` to the group posts endpoint.\n\n**Price:** $0.008 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-group-details"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Full URL of the Facebook group",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.facebook.com/groups/example"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookGroupDetailsResponse"
                },
                "example": {
                  "group": {
                    "cover_photo": "https://scontent-for2-2.xx.fbcdn.net/v/t39.30808-6/311180385_10158844374957927_6863656432160449788_n.jpg?stp=dst-jpg_s720x720_tt6&_nc_cat=100&ccb=1-7&_nc_sid=25d718&_nc_ohc=CrKVKAuhaOkQ7kNvwG1AHc0&_nc_oc=Adpa-dEZ79WFH_J2g_yy-KAJZlpryLbbadv7e1xmhnBdJPSPtAOIE7jFWjS_y3rgHP0&_nc_zt=23&_nc_ht=scontent-for2-2.xx&_nc_gid=iyBHjXu8TBm1K_p4RPk69A&_nc_ss=7a389&oh=00_Af0Yx480PVi32eOTkQUNmjvbkxIWmaeKd50edKSYzRh6nw&oe=69D7690D",
                    "description": "Where Southern California residents come to find information, share resources, and elevate the community.",
                    "id": "2200032550",
                    "location": "Orange County, California",
                    "members_count": 43300,
                    "name": "ORANGE COUNTY, CA.",
                    "privacy": "Public group",
                    "url": "https://www.facebook.com/groups/2200032550"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/group/posts": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookGroupPosts",
        "summary": "Facebook Group Posts",
        "description": "Get posts from a specific Facebook group. Use the group_id from the Group Details endpoint.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-group-posts"
        },
        "parameters": [
          {
            "name": "group_id",
            "in": "query",
            "required": true,
            "description": "Numeric Facebook group ID (from Group Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "1439220986320043"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-15). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 15,
              "default": 1
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results. most_recent returns the group's posts chronologically; relevance returns its top posts. Omit to use the default order.",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ]
            },
            "example": "most_recent"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookGroupPostsResponse"
                },
                "example": {
                  "count": 3,
                  "pages": 1,
                  "posts": [
                    {
                      "author_id": "pfbid02GtvzJnfpdSBVnCCVcvtMJriSqTQe8xYsuBVeCBw9oN3FVkxVMFV9EqAKb2hS7v6Al",
                      "author_name": "Cynthia Peters",
                      "author_profile_picture": "https://scontent.fhex5-2.fna.fbcdn.net/v/t39.30808-1/470153588_8857862624302079_7023965406753926399_n.jpg?stp=c132.55.1206.1207a_cp0_dst-jpg_s80x80_tt6&_nc_cat=105&ccb=1-7&_nc_sid=e99d92&_nc_ohc=kkos92gfNicQ7kNvwG-09pG&_nc_oc=AdoNIIO5vx3eqWepfv-qCKQE4LHwqFSIGE5ibANven3guNUiVG88-HyF74RGaJ2COHFalULTrE8PKEsyDJT7kUlh&_nc_zt=24&_nc_ht=scontent.fhex5-2.fna&_nc_gid=f7kI0TpXOTMyF3619K--EQ&_nc_ss=7a389&oh=00_Af2nby34-c-7_UkLSM-G9klic5XOaRM3rUySYCneYy51zA&oe=69D77505",
                      "author_url": "https://www.facebook.com/pfbid02GtvzJnfpdSBVnCCVcvtMJriSqTQe8xYsuBVeCBw9oN3FVkxVMFV9EqAKb2hS7v6Al",
                      "comments_count": 0,
                      "date": "2026-04-04 22:22:49",
                      "external_url": null,
                      "image_url": null,
                      "message": "Hello!\n\nCongrats!\n\n.\n\nCynthia Katelyn Photography specializes in newborn & maternity photography.\n\nThere are many different packages including 3 different Mini-Sessions and a Payment Plan is Available!\n\nDigital files are included!  I am currently booking newborn clients arriving in May/June/July. Maternity sessions typically are done around 7 months along.\n\n .\n\n***********Pricing?*****************\n\nAll pricing, packages, and details are listed on the pricing page, why make it complicated?\n\n.\n\nThanks, Cynthia                                                                                       \n\n.\n\n*travel fees may apply\n\n.\n\nwww.CynthiaKatelyn. com     @c.katelyn.photo\n\n.\n\n.\n\n.\n\n \n\nRainbow Newborn Photographer Baby Photography Maternity Prop Dress Twin Photos Pictures Moon Bed Basket Bucket Wrap Angel Feather Wings Shower Tulle Lace Chiffon Long Photoshoot Dress Rental IVF\n\nMaternity Prop Dress Twin Rainbow Photoshoot Pictures In-Home & Studio\n\nNewborn Photographer Baby Photography",
                      "post_id": "10162223151097551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 0,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 0,
                      "reshare_count": 0,
                      "timestamp": 1775341369,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162223151097551/",
                      "video": null
                    },
                    {
                      "author_id": "pfbid035oaDJQzELCkxH6vU7VDzC7ur9LsmrhctnVspsqY9DhGnh867DWrT53RgcF1T57hol",
                      "author_name": "Dima Yakovlev",
                      "author_profile_picture": "https://scontent.fhex5-2.fna.fbcdn.net/v/t39.30808-1/273496291_5006955412680992_4112037787609849004_n.jpg?stp=cp0_dst-jpg_s80x80_tt6&_nc_cat=107&ccb=1-7&_nc_sid=e99d92&_nc_ohc=zHxMTxJhGKkQ7kNvwGP4Wq-&_nc_oc=AdrwGC2ZRPqMOZm3AC1zJ1483Gu3H9_IBP10oLUv-A5Elcrmar4E-IfcYc8fJcptXByqgfvr5LsfbdorbgaIXhRq&_nc_zt=24&_nc_ht=scontent.fhex5-2.fna&_nc_gid=f7kI0TpXOTMyF3619K--EQ&_nc_ss=7a389&oh=00_Af19dXrc9Qd2ecIsaKKkJmN3pBeHsjLDPDQQovveHfaweQ&oe=69D7582A",
                      "author_url": "https://www.facebook.com/dima.yakovlev.10",
                      "comments_count": 0,
                      "date": "2026-04-04 21:55:09",
                      "external_url": null,
                      "image_url": null,
                      "message": "👋 Looking for the right coach to help your child get stronger, faster, and more confident in sports?\n     Hello! My name is Dmitrii Iakovlev.\nI’m a professional fitness coach with over 16 years of experience.\n\n🎓 Education: Graduated from the Lesgaft National State University of Physical Education and Sports (St. Petersburg, Russia).\n🏆 Experience: Worked as a senior trainer in top fitness clubs in St. Petersburg, and as a strength & conditioning coach for children and athletes in both Russia and the USA.\n\n📌 Specialization:\n• Ice Hockey\n• Figure Skating\n• Rhythmic Gymnastics\n• Track & Field\n\n📜 Certified Competitive Coach, USA Gymnastics Federation.\n\n✨ I invite children to join personal training sessions in general and sport-specific physical conditioning.\n✅ Individual approach\n✅ Focus on safety and proper technique\n✅ Fun and effective workouts\n\n📍 Training available at your location in Orange County and El Segundo, LA.\n\n📲 For details, please text: 949-555-0142\n\n#PersonalTraining #KidsSports #Gymnastics #Hockey #FigureSkating #Фитнес #Тренер #СпортДляДетей #ФитнесЛосАнджелес #ОФП #Тренировки #Gym #fit #ConditioningTraining",
                      "post_id": "10162223068297551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 0,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 0,
                      "reshare_count": 0,
                      "timestamp": 1775339709,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162223068297551/",
                      "video": "https://www.facebook.com/dima.yakovlev.10/videos/791007333741716/?idorvanity=2200032550"
                    },
                    {
                      "author_id": "pfbid04W16mr9cbzdbiHige5un1PTUnGDoFF1UyJNYpWKpfaH3Q6Jr757mk2ivYD8UgMxWl",
                      "author_name": "Bryce Gossett",
                      "author_profile_picture": "https://scontent.fhex5-1.fna.fbcdn.net/v/t39.30808-1/654244591_122212400786569796_1203611323060461481_n.jpg?stp=cp0_dst-jpg_s80x80_tt6&_nc_cat=101&ccb=1-7&_nc_sid=e99d92&_nc_ohc=2qC0b6WpqXAQ7kNvwH3ywNI&_nc_oc=AdqEpfD2UWtrhdVOuSz2vI0Bii7AnYtcVAdD8ZJhBuJvUV1Z0LWRKYPptXUw_fWk8T41dJAQXlgj6cU1gLBPrIrI&_nc_zt=24&_nc_ht=scontent.fhex5-1.fna&_nc_gid=f7kI0TpXOTMyF3619K--EQ&_nc_ss=7a389&oh=00_Af3XWASxnk9gporIeufOcltb0uzcRe0nhzEcLDDcN0eZMQ&oe=69D77874",
                      "author_url": "https://www.facebook.com/bryce.gossett.331728",
                      "comments_count": 0,
                      "date": "2026-04-04 21:43:20",
                      "external_url": null,
                      "image_url": "https://scontent.fhex5-1.fna.fbcdn.net/v/t39.30808-6/666944885_122214718778569796_8324083614214094461_n.jpg?_nc_cat=100&ccb=1-7&_nc_sid=e06c5d&_nc_ohc=_kMp77noGoQQ7kNvwHwMaoc&_nc_oc=AdriQF7J_rwmLm8ghYuwr__o9sPD238305arVmvV9WRITbhZf9MHglo06TJIYljCfS68nxcsT6piwZwzNTdOCcIp&_nc_zt=23&_nc_ht=scontent.fhex5-1.fna&_nc_gid=f7kI0TpXOTMyF3619K--EQ&_nc_ss=7a389&oh=00_Af2O4E24IJKQFvA6uG20eYeLJQqPSj1X7sABAM3UPf245Q&oe=69D75C09",
                      "message": "Now booking bands at Gallaghers Pub & Grill long beach. Contact Bryce Gossett at booking.contact@example.com or DM through messenger. #booknow #band #livemusic #longbeach #gallaghers",
                      "post_id": "10162223030167551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 0,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 0,
                      "reshare_count": 0,
                      "timestamp": 1775339000,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162223030167551/",
                      "video": null
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/group/search": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookGroupSearch",
        "summary": "Search Facebook Group Posts",
        "description": "Temporarily unavailable: this endpoint is offline while we upgrade it, and every request currently returns 503 with \"code\": \"endpoint_suspended\". The rest of this reference describes the endpoint as it behaves when available. Search for posts within a specific Facebook group by keyword. Supports date filtering.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-group-search"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "help"
          },
          {
            "name": "group_id",
            "in": "query",
            "required": true,
            "description": "Numeric Facebook group ID (from Group Details endpoint)",
            "schema": {
              "type": "string"
            },
            "example": "137206643664121"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-10). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Filter posts from this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Filter posts until this date (YYYY-MM-DD)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookGroupSearchResponse"
                },
                "example": {
                  "count": 7,
                  "pages": 1,
                  "posts": [
                    {
                      "author_id": "pfbid02uG76ygE6PgHR8aVgM4Dno6X7nqRhhWa4SNQM68yajDBFyHWzVcmX68VtaqEWbAcTl",
                      "author_name": "Mey Mousa",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-1/474574659_3567779366700455_878732740218883390_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=109&ccb=1-7&_nc_sid=e99d92&_nc_ohc=7deKbZL2krUQ7kNvwEl8Td3&_nc_oc=Adpbf8qU3bWL231EuZ7tNFL1rvtKiQcZAaXmASz5J7nYA3Ter5YmXRZEU3PQVEjbLxU&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af1PeGrPaRi8FiciG5jt4cxm-wBzYZT-Pnsa1h_GV4Hajg&oe=69D76A8D",
                      "author_url": "https://www.facebook.com/pfbid02uG76ygE6PgHR8aVgM4Dno6X7nqRhhWa4SNQM68yajDBFyHWzVcmX68VtaqEWbAcTl",
                      "comments_count": 1,
                      "date": "2026-01-16 06:11:10",
                      "external_url": null,
                      "image_url": null,
                      "message": "Mediterranean & Arabic homemade food for gatherings, parties, and birthday celebrations 🥗🥙🎉\n\nI prepare fresh Mediterranean food trays, mini pastries, and a variety of homemade Arabic & Mediterranean dishes — perfect for family gatherings and special events.\n\n📍 Based in Huntington Beach\nThis is a small home-based business, and with your support, it will grow step by step 🤍\n\n📩 Message me for details, menus, or pricing\n🚗 Pick-up available\n🚚 Paid delivery available\n\n⏰ Orders must be placed at least 3–5 days in advance to ensure everything is fresh and to organize orders properly.\n\nThank you for supporting small businesses 🙏✨",
                      "post_id": "10161914008977551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 11,
                        "love": 1,
                        "sad": 1,
                        "wow": 0
                      },
                      "reactions_count": 13,
                      "reshare_count": 0,
                      "timestamp": 1768543870,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10161914008977551/",
                      "video": null
                    },
                    {
                      "author_id": "1507810471",
                      "author_name": "Keri Muniz",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-1/480667391_10235837886476750_7295232765831778380_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=102&ccb=1-7&_nc_sid=1d2534&_nc_ohc=sxrki6A1BsoQ7kNvwHXuVNJ&_nc_oc=Ado4gaWaYsW62SclKPPrwYOP9lBiJ9G9elL3Z00HX82TvU1TIa4FvbJrenQbVUWPq_k&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af0LW__4j3G5z6urjAu5c4lNQTrLyFaRIcGuTPnUiv4TSA&oe=69D75A18",
                      "author_url": "https://www.facebook.com/kerilyn29",
                      "comments_count": 0,
                      "date": "2026-03-06 21:18:21",
                      "external_url": null,
                      "image_url": null,
                      "message": "Clearly Elegant!! A beautiful way to serve and store your food!! Imagine this on your dinner table with salad or fruit!! What a steal for the 5 pc set!!\n@everyone",
                      "post_id": "10162108131467551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 1,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 1,
                      "reshare_count": 0,
                      "timestamp": 1772831901,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162108131467551/",
                      "video": null
                    },
                    {
                      "author_id": "pfbid0MLLj3hUnE3GHJbEvDWbWzrpmyZ3mhUEeqZ6TQVKZWUywqdbou4uqak714bUEvUMWl",
                      "author_name": "La Xen",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t1.6435-1/41915666_10210022756763760_190576396232294400_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=107&ccb=1-7&_nc_sid=e99d92&_nc_ohc=WZXpRZh3d3sQ7kNvwGLI9GK&_nc_oc=AdrFDiIDDxT5wCE5bi7mKJEBKSZrwRLe0_Kq8tTCx58nOffoallsWEgT7An4yTPmmtE&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af0IHR1AX1w8saHC5IDxxAlyGjv23_mMe6UAOPANWT6ltA&oe=69F8FB30",
                      "author_url": "https://www.facebook.com/laxen88",
                      "comments_count": 39,
                      "date": "2026-02-25 00:46:39",
                      "external_url": null,
                      "image_url": null,
                      "message": "Hi everyone! \n\nWe’re new in Orange County/Irvine and on a serious food exploration mission 😄\nNow we’re looking for the best ribs ever, the kind that are fall-off-the-bone, smoky, saucy and unforgettable 🍖🔥\n\nWhere do we absolutely HAVE to go?",
                      "post_id": "10162069221112551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 4,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 4,
                      "reshare_count": 0,
                      "timestamp": 1771980399,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162069221112551/",
                      "video": null
                    },
                    {
                      "author_id": "100064800365793",
                      "author_name": "Waymakers",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-1/518276878_1233680868801914_3820030004636213283_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=109&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=-OhXOzHf6HUQ7kNvwHPuH5l&_nc_oc=AdqEaOPSw8rYXPjfKRw578XmFrcUzsSvltL3sCLY6EwK4CRPWnBkLE6G6V1MIaXlBBI&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af3HMe8GHfdjBLbDdjbZTnpuiXb3hU7jK8fURtULBx0tVg&oe=69D75810",
                      "author_url": "https://www.facebook.com/WaymakersOC",
                      "comments_count": 0,
                      "date": "2026-01-22 12:34:53",
                      "external_url": null,
                      "image_url": null,
                      "message": "Love Grows by Giving 💗🍷⁣\n⁣\nJoin us for an unforgettable evening of food, wine, and community at the 15th Annual Love Grows by Giving—a beloved Orange County tradition benefiting the Waymakers Huntington Beach Youth Shelter.⁣\n⁣\nEnjoy wine, beer, and cocktail tastings, delicious bites from local restaurants, live music, and exciting silent and live auctions—all while making a meaningful impact for youth in crisis right here in our community.⁣\n⁣\n📅 Friday, March 6, 2026⁣\n⏰ 5:30–9:00 PM⁣\n📍 Hyatt Regency Huntington Beach⁣\n⁣\n🎟 Tickets are on sale now—grab yours early and be part of an evening where every sip helps change a life.⁣\n⁣\n✨ Sponsorship opportunities are available!⁣\n🍽️ Local restaurants, wineries, breweries, and beverage partners: we’d love for you to join us and showcase your flavors to over 350 guests while supporting a powerful cause.⁣\n⁣\n📩 Interested in sponsoring or participating? Send us a message or reach out—we’d love to connect.⁣\n⁣\nBecause when our community comes together, love truly grows by giving. 💕",
                      "post_id": "10161934090232551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 0,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 0,
                      "reshare_count": 0,
                      "timestamp": 1769085293,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10161934090232551/",
                      "video": null
                    },
                    {
                      "author_id": "100094870585231",
                      "author_name": "Defalco Family Wines And Foods",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-1/362266345_119066107932408_6651769671376003041_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=109&ccb=1-7&_nc_sid=2d3e12&_nc_ohc=irPpeudFIG0Q7kNvwFLrgYe&_nc_oc=AdrkGWwpqh-rtuOHwlSk_Y7359m4Ywk1iBHXUCPUOdLz4nydKrS21jPxIUwNo_S-Ab4&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af1lUVSBpDdP_do_EMiTqFum-O-8lvLIFOArkJHitgJ6Fw&oe=69D77907",
                      "author_url": "https://www.facebook.com/people/Defalco-Family-Wines-And-Foods/100094870585231/",
                      "comments_count": 0,
                      "date": "2026-02-27 17:42:45",
                      "external_url": null,
                      "image_url": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-6/641849922_775829782256034_6932881149664959650_n.jpg?stp=cp6_dst-jpg_s1080x2048_tt6&_nc_cat=107&ccb=1-7&_nc_sid=e06c5d&_nc_ohc=x1-p1olacOYQ7kNvwFvo3dj&_nc_oc=Adotbiaa14mUbITFF_UCkXmAk-tKoyxHwL9BaGqdZoyB89e21-N05v2Uzxkm_snbOug&_nc_zt=23&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af32UfgbCn8mL_5BJsVxGviyCOmKylmrfF4DmEkJZQOlCw&oe=69D7774A",
                      "message": "Italian Market • Fountain Valley\nStop by for yummy food!",
                      "post_id": "10162072752217551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 0,
                        "love": 0,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 0,
                      "reshare_count": 0,
                      "timestamp": 1772214165,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162072752217551/",
                      "video": null
                    },
                    {
                      "author_id": "pfbid0fnbkXqt8FTZvn9h8EhoHawgwry5JxCXdXEcEELhCy2npY6pu1yUd5QBF7GCCrQ3fl",
                      "author_name": "Itzi Burns",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-1/661619577_10230854720221669_1069404537865897975_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=111&ccb=1-7&_nc_sid=e99d92&_nc_ohc=jNgxvdX1-qcQ7kNvwFx1Qml&_nc_oc=AdrBTa9cokG4eSqmVEfn8tFxT3aPkRWGK7y99tvc3vRWeVaUBy4EicwonYLN6sYa8RE&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af0ZKcfdJF-o2dFDH1E_wODjfgc3BO6_pBFwYd1f3RcrBg&oe=69D76D73",
                      "author_url": "https://www.facebook.com/itzi.burns",
                      "comments_count": 1,
                      "date": "2026-03-02 14:20:19",
                      "external_url": null,
                      "image_url": null,
                      "message": "🚨 REMINDER: Singles Mixer THIS Tuesday! 🚨\n\nWe’re heading to a NEW venue and you do not want to miss this one!\n\n📍 GameCraft Brewing Company (Anaheim) \n🗓 Tuesday, March 3\n⏰ 7–10PM\n\nCome mix, mingle, flirt a little 😉 and meet amazing local singles in a fun, low-pressure vibe.\n\n🍔 Food truck on site: King Papa** — because great connections start with great food!\n\nWhether you come solo or bring a single friend, this is your sign to get out of the house and try something new ✨\n\nPresented by OC Singles 💕\n\nTag your single friends & we’ll see you Tuesday!",
                      "post_id": "10162090897977551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 3,
                        "love": 1,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 4,
                      "reshare_count": 0,
                      "timestamp": 1772461219,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162090897977551/",
                      "video": null
                    },
                    {
                      "author_id": "pfbid02mhjhqQMqkjbYPEnUVm9nMSxRrrsjp8tF6Myi6pirAJMveXxKk5rsHrqdPXra71oGl",
                      "author_name": "Alma Veronica Kelly",
                      "author_profile_picture": "https://scontent.farn1-2.fna.fbcdn.net/v/t39.30808-1/635382521_26502592146005560_7006426173821509705_n.jpg?stp=cp0_dst-jpg_s48x48_tt6&_nc_cat=106&ccb=1-7&_nc_sid=e99d92&_nc_ohc=LYlEmiA-wnYQ7kNvwFfFRov&_nc_oc=AdoAWmi6Vv6qQ3eqC0lQRyRwIZyT56FOWJj8EYHNYDp4KuLH666dnKwlpwUJ2_GKgtg&_nc_zt=24&_nc_ht=scontent.farn1-2.fna&_nc_gid=M6i1vyUWm_y3F5u8xRV3AQ&_nc_ss=7a389&oh=00_Af0vthffcY4rrl2fxDx5aUOXRboOnzSpW1Hp53RXpDXSEQ&oe=69D77E36",
                      "author_url": "https://www.facebook.com/pfbid02mhjhqQMqkjbYPEnUVm9nMSxRrrsjp8tF6Myi6pirAJMveXxKk5rsHrqdPXra71oGl",
                      "comments_count": 0,
                      "date": "2026-02-21 13:54:12",
                      "external_url": null,
                      "image_url": null,
                      "message": "Hi! I’m new to this group and recently joined because I’m passionate about strengthening the nonprofit presence here in South Orange County.\n\nI serve as a supervisor at Upscale Resale, a nonprofit thrift store benefiting South County Outreach. Our work directly supports families facing food insecurity, housing instability, and financial hardship in our local community.\n Come see us!\n\n📍28985 Golden Lantern \n      Laguna Niguel, Ca 92677\n\nSouth County Outreach",
                      "post_id": "10162054882247551",
                      "reactions": {
                        "angry": 0,
                        "care": 0,
                        "haha": 0,
                        "like": 5,
                        "love": 2,
                        "sad": 0,
                        "wow": 0
                      },
                      "reactions_count": 7,
                      "reshare_count": 1,
                      "timestamp": 1771682052,
                      "url": "https://www.facebook.com/groups/2200032550/posts/10162054882247551/",
                      "video": null
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Endpoint temporarily unavailable while we upgrade it (\"code\": \"endpoint_suspended\"). Every request currently returns this.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/facebook/post/comments": {
      "get": {
        "tags": [
          "Facebook"
        ],
        "operationId": "facebookPostComments",
        "summary": "Facebook Post Comments",
        "description": "Get comments on a Facebook post by post ID. Use a post_id from Page Posts, Group Posts, or Search Posts (pfbid and numeric IDs are accepted). Returns comment text, author details, reaction and reply counts, dates, and any attachment.\n\n**Price:** $0.008 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/facebook-post-comments"
        },
        "parameters": [
          {
            "name": "post_id",
            "in": "query",
            "required": true,
            "description": "Facebook post ID (pfbid or numeric)",
            "schema": {
              "type": "string"
            },
            "example": "pfbid02BzYRNmoznsZjci5FuztPUb9mKd9ameNVYSBweaBEvb8oEzSMjcs8nbXnMkYA5Benl"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each comment. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any comment that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FacebookPostCommentsResponse"
                },
                "example": {
                  "comments": [
                    {
                      "comment_id": "Y29tbWVudDo5NDM5NDIxODExMTExMzZfMTIxNzA1OTI3NjU2OTgwNw==",
                      "legacy_comment_id": "1217059276569807",
                      "message": "Even the dog wants to dominate AI",
                      "date": "2025-07-03 19:25:36",
                      "timestamp": 1751570736,
                      "author_name": "Gerson Stefano",
                      "author_id": "100006584266587",
                      "author_url": "https://www.facebook.com/Gerson.Stefano.48",
                      "author_gender": "MALE",
                      "author_profile_picture": "https://scontent.xx.fbcdn.net/v/t39.30808-1/462473244_..._n.jpg",
                      "replies_count": 0,
                      "reactions_count": 0,
                      "is_sticker": false,
                      "sticker_url": null,
                      "is_gif": false,
                      "gif": null,
                      "image": null,
                      "video": null
                    }
                  ],
                  "count": 1,
                  "pages": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or more than 10 concurrent requests to this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Facebook data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/forums/posts": {
      "get": {
        "tags": [
          "Forums"
        ],
        "operationId": "searchForums",
        "summary": "Search Forum Posts",
        "description": "Search for forum posts across the web, including discussion boards, Q&A sites, and community boards. Each result returns its position and rank, the post title, URL, source forum, domain, and a content snippet. Supports filtering by time period (hour, day, week, month, year) and by country (ISO 3166-1 alpha-2 code). Results are paginated 10 at a time via the page parameter, and count reports how many were returned. The search runs in English. Set get_sentiment=true to add AI emotion analysis to each post.\n\n**Price:** $0.008 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/forum-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters). Leading and trailing whitespace is trimmed, and the query must not be empty.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "programming"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination, 1-10 (default: 1). Results are paginated 10 at a time, so page=2 starts at the 11th result. Values below 1, and values that are not numbers, are treated as 1. A page above 10 returns 400.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1,
              "maximum": 10
            }
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "Filter by time period. 'any' applies no time filter. Any value outside this list returns 400.",
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "hour",
                "day",
                "week",
                "month",
                "year"
              ],
              "default": "any"
            },
            "example": "week"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "ISO 3166-1 alpha-2 country code (e.g., US, GB, DE). Case-insensitive. Any value that is not exactly 2 letters returns 400.",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2
            },
            "example": "US"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchForumsResponse"
                },
                "example": {
                  "count": 10,
                  "page": 1,
                  "posts": [
                    {
                      "domain": "reddit.com",
                      "position": 1,
                      "rank": 1,
                      "snippet": "Programming is how everything in tech works. It's a set of instructions given to the computer to run a set of tasks. Let's take Google for ...",
                      "source": "Reddit",
                      "title": "What is programming? : r/AskProgramming - Reddit",
                      "url": "https://www.reddit.com/r/AskProgramming/comments/1eo7fez/what_is_programming/"
                    },
                    {
                      "domain": "sololearn.com",
                      "position": 2,
                      "rank": 2,
                      "snippet": "'%' this sign stands for modulo sign. It is use to get carry after devision. Like if you are dividing 10 by 3 then carry will be 1 because 3*3 = 9 and 1 will ...",
                      "source": "Sololearn",
                      "title": "What does \"%\" mean in programming? - Sololearn",
                      "url": "https://www.sololearn.com/en/Discuss/1629466/what-does-mean-in-programming"
                    },
                    {
                      "domain": "forum.freecodecamp.org",
                      "position": 3,
                      "rank": 3,
                      "snippet": "Computer programming is teaching humans to think like a computer and to write instructions in a human-like meta language that can be translated into the 1s and ...",
                      "source": "The freeCodeCamp Forum",
                      "title": "What is Programming - The freeCodeCamp Forum",
                      "url": "https://forum.freecodecamp.org/t/what-is-programming/484906"
                    },
                    {
                      "domain": "forums.xfinity.com",
                      "position": 4,
                      "rank": 4,
                      "snippet": "E. W. Scripps cable network programming is currently unavailable as our agreement with E. W. Scripps has expired.",
                      "source": "Xfinity Community Forum",
                      "title": "E. W. Scripps Programming Agreement Expired",
                      "url": "https://forums.xfinity.com/conversations/channels-and-programming/e-w-scripps-programming-agreement-expired/69cc2cd7d5983d629c66e1cc"
                    },
                    {
                      "domain": "itsfoss.community",
                      "position": 5,
                      "rank": 5,
                      "snippet": "C is a bit of a strange language. Many things that are hard in C or at least take some thought are taken for granted in newer languages.",
                      "source": "It's FOSS Community",
                      "title": "The C Programming Language: Some Initial Thoughts",
                      "url": "https://itsfoss.community/t/the-c-programming-language-some-initial-thoughts/11881"
                    },
                    {
                      "domain": "quora.com",
                      "position": 6,
                      "rank": 6,
                      "snippet": "Programming is the process of developing software, websites, and other computer applications. It involves writing code in a specific programming ...",
                      "source": "Quora",
                      "title": "What do you understand by computer programming? - Quora",
                      "url": "https://www.quora.com/What-do-you-understand-by-computer-programming"
                    },
                    {
                      "domain": "careervillage.org",
                      "position": 7,
                      "rank": 7,
                      "snippet": "Programming is a process that leads from an original formulation of a computing problem to executable computer programs.",
                      "source": "CareerVillage",
                      "title": "what is programming? | CareerVillage",
                      "url": "https://www.careervillage.org/questions/21116/what-is-programming"
                    },
                    {
                      "domain": "english.stackexchange.com",
                      "position": 8,
                      "rank": 8,
                      "snippet": "The word programming is a Greek word. In Greek the word is \"προγραμματισμός\" (programmatismos). It refers basically to words united together.",
                      "source": "English Language & Usage Stack Exchange",
                      "title": "“Programming” versus “programing”: which is preferred?",
                      "url": "https://english.stackexchange.com/questions/244280/programming-versus-programing-which-is-preferred"
                    },
                    {
                      "domain": "forums.swift.org",
                      "position": 9,
                      "rank": 9,
                      "snippet": "Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns. Also for ...",
                      "source": "Swift Forums",
                      "title": "An Introduction to Programming Using Swift",
                      "url": "https://forums.swift.org/t/an-introduction-to-programming-using-swift/83901"
                    },
                    {
                      "domain": "windowsforum.com",
                      "position": 10,
                      "rank": 10,
                      "snippet": "r/programming has begun a temporary ban on LLM-related posts for a trial period of two to four weeks in April, while still allowing broader AI ...",
                      "source": "Windows Forum",
                      "title": "r/programming Temporarily Bans LLM Posts to Cut AI Hype ...",
                      "url": "https://windowsforum.com/threads/r-programming-temporarily-bans-llm-posts-to-cut-ai-hype-and-restore-technical-signal.409812/"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing query, query over 500 characters, unsupported time value, or a country code that is not 2 letters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving forum data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/places/search": {
      "get": {
        "tags": [
          "Google Places"
        ],
        "operationId": "searchPlaces",
        "summary": "Search Google Places",
        "description": "Search Google Maps places (local businesses, restaurants, hotels, shops and points of interest) by free-text query. Returns name, address, phone, website, rating, review count, opening hours, coordinates, and a sample of photos for each result. Optionally bias results by latitude, longitude and zoom level; `lat` and `lng` must be sent together. Each page returns up to 10 places and is billed as one request, up to 20 pages per call.\n\n**Price:** $0.01 per page. **Free tier:** 20 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/places-search"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters). E.g. `coffee shops brooklyn`, `dentists 90210`, `hilton hotels paris`",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "pizza new york"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge. Each page returns up to 10 results and is billed as one request",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Alternative to `pages`: maximum number of results, rounded up to whole pages of 10 (e.g. `limit=15` fetches 2 pages, so up to 20 results). Ignored when `pages` is also sent. Maximum 200",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "lat",
            "in": "query",
            "required": false,
            "description": "Center latitude for geographic bias (provide with `lng`)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "lng",
            "in": "query",
            "required": false,
            "description": "Center longitude for geographic bias (provide with `lat`)",
            "schema": {
              "type": "number"
            }
          },
          {
            "name": "zoom",
            "in": "query",
            "required": false,
            "description": "Map zoom level. Smaller values widen the search radius (13 ≈ city, 15 ≈ neighborhood, 10 ≈ metro area)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 region code",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchPlacesResponse"
                },
                "example": {
                  "places": [
                    {
                      "place_id": "ChIJifIePKtZwokRVZ-UdRGkZzs",
                      "name": "Joe's Pizza Broadway",
                      "type": "Pizza restaurant",
                      "subtypes": [
                        "Pizza restaurant",
                        "Pizza delivery",
                        "Restaurant"
                      ],
                      "phone_number": "+16465550142",
                      "website": "https://www.joespizzanyc.com",
                      "domain": "joespizzanyc.com",
                      "rating": 4.5,
                      "review_count": 25433,
                      "reviews_per_rating": {
                        "1": 753,
                        "2": 604,
                        "3": 2107,
                        "4": 4946,
                        "5": 17023
                      },
                      "price_level": "$10–20",
                      "verified": true,
                      "business_status": "OPEN",
                      "opening_status": "Open · Closes 3 AM",
                      "working_hours": {
                        "Monday": [
                          "10 AM–3 AM"
                        ],
                        "Sunday": [
                          "10 AM–3 AM"
                        ]
                      },
                      "opening_date": null,
                      "address": "Joe's Pizza Broadway, 1435 Broadway, New York, NY 10018",
                      "street_address": "1435 Broadway",
                      "district": "Manhattan",
                      "city": "New York",
                      "state": "New York",
                      "zipcode": "10018",
                      "country": "US",
                      "latitude": 40.75468,
                      "longitude": -73.98703,
                      "timezone": "America/New_York",
                      "summary": "Modern outpost of a longtime counter-serve pizza joint prepping New York-style slices and pies.",
                      "about": {
                        "summary": "Modern outpost of a longtime counter-serve pizza joint prepping New York-style slices and pies.",
                        "details": {
                          "Accessibility": {
                            "Wheelchair accessible entrance": true,
                            "Wheelchair accessible parking lot": false,
                            "Wheelchair accessible seating": false
                          }
                        }
                      },
                      "photo_count": 22117,
                      "photos_sample": [
                        {
                          "photo_id": "CIABIhBpKlqRIOpwhdI384bUAF4L",
                          "type": "photo",
                          "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...",
                          "photo_url_large": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...=w3000-h4000-k-no",
                          "video_thumbnail_url": null,
                          "latitude": 40.7546469,
                          "longitude": -73.9868158,
                          "photo_datetime_utc": "2026-06-16T00:00:00.000Z",
                          "photo_timestamp": 1781568000
                        }
                      ],
                      "place_link": "https://www.google.com/maps/place/data=...",
                      "reviews_link": "https://search.google.com/local/reviews?placeid=ChIJifIePKtZwokRVZ-UdRGkZzs",
                      "booking_link": "https://www.google.com/searchviewer/42?...",
                      "reservations_link": "https://www.fooddiscoveryapp.com/new-york-city/joes-pizza",
                      "order_link": "https://www.google.com/searchviewer/42?...",
                      "owner_name": "Joe's Pizza Broadway",
                      "owner_link": "https://maps.google.com/maps/contrib/103877821925204408966",
                      "cid": "4280570365733019477"
                    }
                  ],
                  "count": 1,
                  "query": "pizza new york",
                  "pages": 2
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Places data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/places/details": {
      "get": {
        "tags": [
          "Google Places"
        ],
        "operationId": "placeDetails",
        "summary": "Google Place Details",
        "description": "Get full details for a single Google Maps place by `place_id`. Returns everything Places Search returns, plus Plus Codes, a menu link, and an `emails_and_contacts` scrape of the place's official website (emails, phone numbers and links to Facebook, Instagram, LinkedIn, Twitter/X, TikTok, YouTube, Pinterest, Snapchat, Yelp, and GitHub). The `emails_and_contacts` block is always present: `emails` and `phone_numbers` come back as empty arrays and each social link as `null` when nothing is found.\n\n**Price:** $0.003 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/places-details"
        },
        "parameters": [
          {
            "name": "place_id",
            "in": "query",
            "required": true,
            "description": "Google `place_id` (e.g. `ChIJifIePKtZwokRVZ-UdRGkZzs`), as returned by the Places Search endpoint",
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "example": "ChIJifIePKtZwokRVZ-UdRGkZzs"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 region code",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaceDetailsResponse"
                },
                "example": {
                  "place": {
                    "place_id": "ChIJifIePKtZwokRVZ-UdRGkZzs",
                    "name": "Joe's Pizza Broadway",
                    "type": "Pizza restaurant",
                    "subtypes": [
                      "Pizza restaurant",
                      "Pizza delivery",
                      "Restaurant"
                    ],
                    "phone_number": "+16465550142",
                    "website": "https://www.joespizzanyc.com",
                    "domain": "joespizzanyc.com",
                    "rating": 4.5,
                    "review_count": 25433,
                    "reviews_per_rating": {
                      "1": 753,
                      "2": 604,
                      "3": 2107,
                      "4": 4946,
                      "5": 17023
                    },
                    "price_level": "$10–20",
                    "verified": true,
                    "business_status": "OPEN",
                    "opening_status": "Open · Closes 3 AM",
                    "working_hours": {
                      "Monday": [
                        "10 AM–3 AM"
                      ]
                    },
                    "opening_date": null,
                    "address": "1435 Broadway, New York, NY 10018",
                    "street_address": "1435 Broadway",
                    "district": "Manhattan",
                    "city": "New York",
                    "state": "New York",
                    "zipcode": "10018",
                    "country": "US",
                    "latitude": 40.75468,
                    "longitude": -73.98703,
                    "timezone": "America/New_York",
                    "summary": "Modern outpost of a longtime counter-serve pizza joint prepping New York-style slices and pies.",
                    "about": {
                      "summary": "Modern outpost of a longtime counter-serve pizza joint prepping New York-style slices and pies.",
                      "details": {
                        "Accessibility": {
                          "Wheelchair accessible entrance": true,
                          "Wheelchair accessible parking lot": false,
                          "Wheelchair accessible seating": false
                        }
                      }
                    },
                    "photo_count": 22117,
                    "photos_sample": [
                      {
                        "photo_id": "CIABIhAViB6GuQB0Czq6u1UIyD60",
                        "type": "photo",
                        "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...",
                        "photo_url_large": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...=w4280-h3407-k-no",
                        "video_thumbnail_url": null,
                        "latitude": 40.7546469,
                        "longitude": -73.9868158,
                        "photo_datetime_utc": "2026-05-30T00:00:00.000Z",
                        "photo_timestamp": 1780099200
                      }
                    ],
                    "place_link": "https://www.google.com/maps/place/...",
                    "reviews_link": "https://search.google.com/local/reviews?placeid=ChIJifIePKtZwokRVZ-UdRGkZzs",
                    "booking_link": "https://www.google.com/searchviewer/42?...",
                    "reservations_link": "https://www.fooddiscoveryapp.com/new-york-city/joes-pizza",
                    "order_link": "https://www.google.com/searchviewer/42?...",
                    "owner_name": "Joe's Pizza Broadway",
                    "owner_link": "https://maps.google.com/maps/contrib/103877821925204408966",
                    "cid": "4280570365733019477",
                    "global_plus_code": "87G8Q237+V5",
                    "compound_plus_code": "Q237+V5 New York",
                    "menu_link": null,
                    "emails_and_contacts": {
                      "emails": [],
                      "phone_numbers": [
                        "2123661182",
                        "7183882216",
                        "2122670860",
                        "2123889474"
                      ],
                      "facebook": null,
                      "instagram": "https://www.instagram.com/joespizzanyc",
                      "linkedin": null,
                      "twitter": null,
                      "tiktok": null,
                      "youtube": null,
                      "pinterest": null,
                      "snapchat": null,
                      "yelp": null,
                      "github": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Place not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Places data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/places/reviews": {
      "get": {
        "tags": [
          "Google Places"
        ],
        "operationId": "placeReviews",
        "summary": "Google Place Reviews",
        "description": "Get user reviews for a place by `place_id`. Each review includes the rating, full review text, author info (with photo URL, total review count, and Local Guide level), timestamps, attached photos, and any owner response (`owner_response` is `null` when the owner has not replied, otherwise an object with `text`, `datetime_utc`, `timestamp`, `time` and `language`). Sort by most relevant, newest, highest ranking, or lowest ranking. Set `translate_reviews=true` to translate all returned reviews into the requested `language`, and `get_sentiment=true` to add AI emotion analysis to each review. Each page returns up to 10 reviews and is billed as one request, up to 10 pages per call.\n\n**Price:** $0.01 per page. **Free tier:** 20 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/places-reviews"
        },
        "parameters": [
          {
            "name": "place_id",
            "in": "query",
            "required": true,
            "description": "Google `place_id`, as returned by the Places Search endpoint",
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "example": "ChIJifIePKtZwokRVZ-UdRGkZzs"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge. Each page returns up to 10 reviews and is billed as one request",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Alternative to `pages`: maximum number of reviews, rounded up to whole pages of 10 (e.g. `limit=15` fetches 2 pages, so up to 20 reviews). Ignored when `pages` is also sent. Maximum 100",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for reviews",
            "schema": {
              "type": "string",
              "enum": [
                "most_relevant",
                "newest",
                "highest_ranking",
                "lowest_ranking"
              ],
              "default": "most_relevant"
            },
            "example": "newest"
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code for the returned reviews. Set `translate_reviews=true` to translate the returned reviews into this language",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "translate_reviews",
            "in": "query",
            "required": false,
            "description": "Set to `true` to translate the returned reviews into the requested `language`",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 region code",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each review. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any review that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlaceReviewsResponse"
                },
                "example": {
                  "reviews": [
                    {
                      "review_id": "Ci9DQUlRQUNvZENodHljRjlvT2pWeU1rdFZhREZPY214dmRVSlplRzQ0ZURWVk9XYxAB",
                      "rating": 5,
                      "review_text": "Amazing pizza, fast service. Highly recommend.",
                      "review_datetime_utc": "2026-02-15T12:05:54.947Z",
                      "review_timestamp": 1771157154,
                      "review_time": "3 months ago",
                      "review_link": "https://www.google.com/maps/reviews/...",
                      "review_photos": [
                        "https://lh3.googleusercontent.com/grass-cs/..."
                      ],
                      "review_language": "en",
                      "review_text_translated_language": "en",
                      "like_count": 0,
                      "review_source": "Google",
                      "review_source_logo": "https://www.gstatic.com/images/branding/product/1x/googleg_48dp.png",
                      "author_id": "103696814314978516852",
                      "author_name": "Salman Idrees",
                      "author_link": "https://www.google.com/maps/contrib/103696814314978516852",
                      "author_photo_url": "https://lh3.googleusercontent.com/a-/ALV-...",
                      "author_review_count": 392,
                      "author_photo_count": 356,
                      "author_reviews_link": "https://www.google.com/maps/contrib/103696814314978516852/reviews",
                      "author_is_local_guide": true,
                      "author_local_guide_level": 7,
                      "owner_response": null
                    }
                  ],
                  "count": 1,
                  "pages": 2,
                  "sort_by": "newest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Place not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Places data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/places/photos": {
      "get": {
        "tags": [
          "Google Places"
        ],
        "operationId": "placePhotos",
        "summary": "Google Place Photos",
        "description": "Get photos and videos for a place by `place_id`. Returns photo URLs (standard and high-resolution), capture coordinates, and timestamps. Filter on the `type` field if you only want photos or only videos. Each page returns up to 10 items and is billed as one request, up to 10 pages per call.\n\n**Price:** $0.01 per page. **Free tier:** 20 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/places-photos"
        },
        "parameters": [
          {
            "name": "place_id",
            "in": "query",
            "required": true,
            "description": "Google `place_id`, as returned by the Places Search endpoint",
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "example": "ChIJifIePKtZwokRVZ-UdRGkZzs"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge. Each page returns up to 10 items and is billed as one request",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 region code",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlacePhotosResponse"
                },
                "example": {
                  "photos": [
                    {
                      "photo_id": "CIABIhAViB6GuQB0Czq6u1UIyD60",
                      "type": "photo",
                      "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...",
                      "photo_url_large": "https://lh3.googleusercontent.com/gps-cs-s/APNQkAH...=w4280-h3407-k-no",
                      "video_thumbnail_url": null,
                      "latitude": 40.7546469,
                      "longitude": -73.9868158,
                      "photo_datetime_utc": "2026-05-30T00:00:00.000Z",
                      "photo_timestamp": 1780099200
                    },
                    {
                      "photo_id": "CIHM0ogKEICAgICGgNfJ4wE",
                      "type": "video",
                      "photo_url": "https://lh3.googleusercontent.com/gps-cs-s/...",
                      "photo_url_large": null,
                      "video_thumbnail_url": "https://lh3.googleusercontent.com/gps-cs-s/...=w640-h360-k-no",
                      "latitude": 40.7546795,
                      "longitude": -73.9870291,
                      "photo_datetime_utc": "2021-11-16T00:00:00.000Z",
                      "photo_timestamp": 1637020800
                    }
                  ],
                  "count": 20,
                  "pages": 2
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Place not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Places data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/web/search": {
      "get": {
        "tags": [
          "Google Search"
        ],
        "operationId": "searchWeb",
        "summary": "Google Web Search",
        "description": "Run a real-time Google search and return organic results with position, rank, title, URL, snippet, source, domain, and displayed link. Supports Google advanced operators (site:, inurl:, intitle:). Fetch 1-10 pages of results in a single call: each page is 10 results and every page is merged into one results array. Supports country, language, time window, city-level location, and device targeting. Set include_ai_overview=true to include Google's AI Overview when one is available for the query.\n\n**Price:** $0.004 per page (+$0.002 flat per request when `include_ai_overview=true`). **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/web-search"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters, measured after leading and trailing whitespace is trimmed). Supports Google advanced operators (site:, inurl:, intitle:, etc.)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "how to build a website"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of result pages to fetch and merge (10 results per page). This is a count, not a page number: pages=3 returns the first 30 results in a single results array. Values above 10 are rejected with 400; values below 1 are treated as 1. Each page is billed as one request.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 country code. A value that is not exactly 2 letters is rejected with 400.",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code. A value that is not exactly 2 letters is rejected with 400.",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            },
            "example": "en"
          },
          {
            "name": "time",
            "in": "query",
            "required": false,
            "description": "Time filter for results",
            "schema": {
              "type": "string",
              "enum": [
                "any",
                "hour",
                "day",
                "week",
                "month",
                "year"
              ],
              "default": "any"
            }
          },
          {
            "name": "location",
            "in": "query",
            "required": false,
            "description": "City-level geo location (e.g. London,England,United Kingdom)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "device",
            "in": "query",
            "required": false,
            "description": "Device type to simulate",
            "schema": {
              "type": "string",
              "enum": [
                "desktop",
                "mobile"
              ],
              "default": "desktop"
            }
          },
          {
            "name": "include_ai_overview",
            "in": "query",
            "required": false,
            "description": "When true, include Google's AI Overview for the query. Only the exact value true (case-insensitive) enables it. When enabled, the response always contains an ai_overview field, which is null if Google generated no overview for the query.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchWebResponse"
                },
                "example": {
                  "results": [
                    {
                      "position": 1,
                      "rank": 1,
                      "title": "Website Builder - Create a Free Website",
                      "url": "https://www.canva.com/website-builder/",
                      "snippet": "Design and launch a professional, one-of-a-kind website in minutes...",
                      "source": "Canva",
                      "domain": "canva.com",
                      "displayed_link": "https://www.canva.com › website-builder"
                    },
                    {
                      "position": 2,
                      "rank": 2,
                      "title": "Wix.com: Website Builder - Create a Free Website In Minutes",
                      "url": "https://www.wix.com/",
                      "snippet": "Get everything you need to create your website, your way...",
                      "source": "Wix",
                      "domain": "wix.com",
                      "displayed_link": "https://www.wix.com"
                    }
                  ],
                  "pages": 2,
                  "count": 20,
                  "ai_overview": {
                    "text_parts": [
                      {
                        "type": "paragraph",
                        "text": "Building a website involves choosing a platform, designing pages, and publishing. Most modern builders offer drag-and-drop interfaces..."
                      }
                    ],
                    "reference_links": [
                      {
                        "title": "How to Create a Website From Scratch",
                        "link": "https://www.wix.com/blog/how-to-build-website-from-scratch-guide",
                        "source": "Wix"
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving search data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/web/ai-mode": {
      "get": {
        "tags": [
          "Google Search"
        ],
        "operationId": "googleAiMode",
        "summary": "Google AI Mode",
        "description": "Send a prompt to Google's AI Mode and receive a structured conversational reply broken into ordered parts (paragraph, heading, list, images) with cited reference links. Each response includes a session_token: pass it on the next call to continue the conversation in context. Each call, including a follow-up, is billed as one request. The same endpoint also accepts POST with a JSON body for prompts that do not fit comfortably in a URL. In the rare case where Google returns no answer, the response is still 200 with an empty reply_parts array.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/google-ai-mode"
        },
        "parameters": [
          {
            "name": "prompt",
            "in": "query",
            "required": true,
            "description": "The AI Mode prompt (max 12000 characters)",
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "example": "How do I make pizza?"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 country code. A value that is not exactly 2 letters is rejected with 400.",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code. A value that is not exactly 2 letters is rejected with 400.",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "session_token",
            "in": "query",
            "required": false,
            "description": "Token from a previous AI Mode response. Pass it to continue the conversation with prior context. Treat as an opaque string.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoogleAiModeResponse"
                },
                "example": {
                  "reply_parts": [
                    {
                      "type": "paragraph",
                      "text": "Making pizza at home involves preparing the dough, sauce, and toppings, then baking at high heat."
                    },
                    {
                      "type": "heading",
                      "text": "1. Prepare the Dough"
                    },
                    {
                      "type": "list",
                      "ordered": false,
                      "list": [
                        {
                          "title": "Activate Yeast:",
                          "text": "Mix warm water with yeast and a pinch of sugar. Let it sit for about 5-10 minutes until foamy."
                        },
                        {
                          "title": "Mix and Knead:",
                          "text": "Combine the yeast mixture with flour and salt. Knead for 5-10 minutes until smooth and elastic."
                        }
                      ]
                    }
                  ],
                  "reference_links": [
                    {
                      "title": "Best Homemade Pizza Dough (photo tutorial)",
                      "link": "https://www.crunchycreamysweet.com/the-best-homemade-pizza-dough-photo-tutorial/",
                      "snippet": "Instructions. Place water and sugar in a large mixing bowl...",
                      "source": "Crunchy Creamy Sweet",
                      "favicon": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://www.crunchycreamysweet.com&size=128",
                      "date": "Jul 6, 2012"
                    }
                  ],
                  "session_token": "Q21vd1lUZHFaMjlNYWtOTWREQndWRmRyV1RNemFqRnViak01Ym1FeE1tdFZVemhFVGxCeFQxZE9RV1o0..."
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving search data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Google Search"
        ],
        "operationId": "googleAiModePost",
        "summary": "Google AI Mode (JSON Body)",
        "description": "Same behaviour as GET /v1/web/ai-mode, with the parameters sent as a JSON body instead of query string parameters. Use POST for long prompts that do not fit comfortably in a URL. If a parameter is sent in both places, a non-empty query string value takes precedence over the body. In the rare case where Google returns no answer, the response is still 200 with an empty reply_parts array. Every field may be sent either in the JSON body or as a query parameter; when both are present the query parameter wins. A request that supplies `prompt` as a query parameter therefore needs no body at all.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/google-ai-mode"
        },
        "parameters": [
          {
            "name": "prompt",
            "in": "query",
            "required": false,
            "description": "The AI Mode prompt (max 12000 characters). Optional on POST: overrides the same field in the JSON body when both are sent",
            "schema": {
              "type": "string",
              "maxLength": 12000
            },
            "example": "How do I make pizza?"
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 country code. A value that is not exactly 2 letters is rejected with 400. Optional on POST: overrides the same field in the JSON body when both are sent",
            "schema": {
              "type": "string",
              "default": "us",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code. A value that is not exactly 2 letters is rejected with 400. Optional on POST: overrides the same field in the JSON body when both are sent",
            "schema": {
              "type": "string",
              "default": "en",
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "session_token",
            "in": "query",
            "required": false,
            "description": "Token from a previous AI Mode response. Pass it to continue the conversation with prior context. Treat as an opaque string. Optional on POST: overrides the same field in the JSON body when both are sent",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "prompt"
                ],
                "properties": {
                  "prompt": {
                    "type": "string",
                    "maxLength": 12000,
                    "description": "The AI Mode prompt (max 12000 characters)"
                  },
                  "country": {
                    "type": "string",
                    "default": "us",
                    "description": "2-letter ISO 3166-1 alpha-2 country code. A value that is not exactly 2 letters is rejected with 400."
                  },
                  "language": {
                    "type": "string",
                    "default": "en",
                    "description": "2-letter ISO 639-1 language code. A value that is not exactly 2 letters is rejected with 400."
                  },
                  "session_token": {
                    "type": "string",
                    "description": "Token from a previous AI Mode response. Pass it to continue the conversation with prior context. Treat as an opaque string."
                  }
                }
              },
              "example": {
                "prompt": "How do I make pizza?",
                "country": "us",
                "language": "en"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GoogleAiModePostResponse"
                },
                "example": {
                  "reply_parts": [
                    {
                      "type": "paragraph",
                      "text": "Making pizza at home involves preparing the dough, sauce, and toppings, then baking at high heat."
                    },
                    {
                      "type": "heading",
                      "text": "1. Prepare the Dough"
                    },
                    {
                      "type": "list",
                      "ordered": false,
                      "list": [
                        {
                          "title": "Activate Yeast:",
                          "text": "Mix warm water with yeast and a pinch of sugar. Let it sit for about 5-10 minutes until foamy."
                        },
                        {
                          "title": "Mix and Knead:",
                          "text": "Combine the yeast mixture with flour and salt. Knead for 5-10 minutes until smooth and elastic."
                        }
                      ]
                    }
                  ],
                  "reference_links": [
                    {
                      "title": "Best Homemade Pizza Dough (photo tutorial)",
                      "link": "https://www.crunchycreamysweet.com/the-best-homemade-pizza-dough-photo-tutorial/",
                      "snippet": "Instructions. Place water and sugar in a large mixing bowl...",
                      "source": "Crunchy Creamy Sweet",
                      "favicon": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://www.crunchycreamysweet.com&size=128",
                      "date": "Jul 6, 2012"
                    }
                  ],
                  "session_token": "Q21vd1lUZHFaMjlNYWtOTWREQndWRmRyV1RNemFqRnViak01Ym1FeE1tdFZVemhFVGxCeFQxZE9RV1o0..."
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body larger than 1 MB (`payload_too_large`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving search data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/posts": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "searchInstagram",
        "summary": "Search Instagram Posts",
        "description": "Search for Instagram posts by keyword. Returns post captions, engagement metrics (likes, comments, shares, reposts, views), author metadata, hashtags, mentions, media URLs, carousel slides, audio track info, tagged users, and location. Supports fetching multiple pages in a single API call (billed per page).\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters). Cannot start with @ or #, though either character may appear elsewhere in the query.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "technology"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchInstagramResponse"
                },
                "example": {
                  "count": 20,
                  "pages": 1,
                  "posts": [
                    {
                      "author": "travelwithasavari",
                      "author_name": "Ankita Vijay Pable",
                      "author_verified": false,
                      "comments": 516,
                      "date": "2026-01-15 23:25:40",
                      "domain": "instagram.com",
                      "hashtags": [
                        "#CanadaRoadTrip",
                        "#RoadTripCanada",
                        "#TravelCouple",
                        "#ExploreCanada",
                        "#coupletravel"
                      ],
                      "is_video": true,
                      "likes": 77469,
                      "media_type": "clips",
                      "mentions": [],
                      "reposts": 933,
                      "shares": 21562,
                      "snippet": "Buckle up, Canada! 🚗✨ We're hitting the open road with windows down, coffee in hand, and endless highways. Get ready for hidden gems, iconic landscapes, and core memories in 2026. Slow travel, big views, and unforgettable moments. Save for your next adventure 📍. Where to next? 👀⬇️ #CanadaRoadTrip #RoadTripCanada #TravelCouple #ExploreCanada #coupletravel",
                      "source": "Instagram",
                      "title": "@travelwithasavari on Instagram",
                      "url": "https://instagram.com/p/DTi6c7DEfJL",
                      "views": 2069698,
                      "media_id": "3512345678901234567",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
                      "video_url": "https://scontent.cdninstagram.com/o1/v/t2/clip.mp4",
                      "video_duration": 24.5,
                      "width": 1080,
                      "height": 1920,
                      "carousel_media_count": 0,
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      },
                      "location": null,
                      "tagged_users": [],
                      "coauthors": [],
                      "carousel_media": [],
                      "audio": {
                        "type": "original",
                        "title": "Original audio",
                        "artist": "travelwithasavari",
                        "audio_id": "1234567890123456",
                        "duration_ms": 24500
                      }
                    },
                    {
                      "author": "naturztincer",
                      "author_name": "Nature || Travel || Explore",
                      "author_verified": false,
                      "comments": 0,
                      "date": "2026-01-14 10:14:12",
                      "domain": "instagram.com",
                      "hashtags": [],
                      "is_video": false,
                      "likes": 0,
                      "media_type": "feed",
                      "mentions": [],
                      "reposts": 31,
                      "shares": 0,
                      "snippet": "",
                      "source": "Instagram",
                      "title": "@naturztincer on Instagram",
                      "url": "https://instagram.com/p/DTfMMewCK_4",
                      "views": null,
                      "media_id": "3510498712345678901",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/photo.jpg",
                      "video_url": "",
                      "video_duration": null,
                      "width": 1080,
                      "height": 1350,
                      "carousel_media_count": 0,
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      },
                      "location": null,
                      "tagged_users": [],
                      "coauthors": [],
                      "carousel_media": [],
                      "audio": null
                    },
                    {
                      "author": "travelguzo",
                      "author_name": "Guzo 🛩️",
                      "author_verified": false,
                      "comments": 0,
                      "date": "2026-01-12 19:06:59",
                      "domain": "instagram.com",
                      "hashtags": [],
                      "is_video": false,
                      "likes": 0,
                      "media_type": "carousel_container",
                      "mentions": [],
                      "reposts": 31,
                      "shares": 0,
                      "snippet": "",
                      "source": "Instagram",
                      "title": "@travelguzo on Instagram",
                      "url": "https://instagram.com/p/DTa_k8UiTt1",
                      "views": null,
                      "media_id": "3509887612345678902",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
                      "video_url": "",
                      "video_duration": null,
                      "width": 1080,
                      "height": 1350,
                      "carousel_media_count": 2,
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      },
                      "location": null,
                      "tagged_users": [],
                      "coauthors": [],
                      "carousel_media": [
                        {
                          "media_id": "3509887612345678903",
                          "is_video": false,
                          "image_url": "https://scontent.cdninstagram.com/v/t51.82787-15/slide1.jpg",
                          "video_url": "",
                          "width": 1080,
                          "height": 1350
                        },
                        {
                          "media_id": "3509887612345678904",
                          "is_video": false,
                          "image_url": "https://scontent.cdninstagram.com/v/t51.82787-15/slide2.jpg",
                          "video_url": "",
                          "width": 1080,
                          "height": 1350
                        }
                      ],
                      "audio": null
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/users": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "searchInstagramUsers",
        "summary": "Search Instagram Users",
        "description": "Search for Instagram users by keyword. Returns username, full name, user ID, verification status, privacy status, profile picture URL, and a direct profile link.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-users"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "photography"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchInstagramUsersResponse"
                },
                "example": {
                  "count": 51,
                  "users": [
                    {
                      "full_name": "Min's Photography 📷",
                      "is_private": false,
                      "is_verified": false,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.82787-19/612450041_18123924403526762_4162197328343347637_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/miins.photography",
                      "user_id": "15642894761",
                      "username": "miins.photography"
                    },
                    {
                      "full_name": "Wedding Photography / videography",
                      "is_private": false,
                      "is_verified": false,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.82787-19/615359350_18425865820112050_8485770003554415684_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/srrh.studio",
                      "user_id": "3444560049",
                      "username": "srrh.studio"
                    },
                    {
                      "full_name": "Photography",
                      "is_private": false,
                      "is_verified": false,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.2885-19/426660911_751264396634526_1977151766404099385_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/photography",
                      "user_id": "1375861045",
                      "username": "photography"
                    },
                    {
                      "full_name": "Sam | Travel Photography",
                      "is_private": false,
                      "is_verified": false,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.2885-19/374723254_6644655145577845_4324019003219865274_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/samsnaps.jpeg",
                      "user_id": "56611950771",
                      "username": "samsnaps.jpeg"
                    },
                    {
                      "full_name": "Photography By Mahad Ur Rehman",
                      "is_private": false,
                      "is_verified": true,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.82787-19/582546222_18382501291197581_4715082269887520558_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/mahadphotographyofficial",
                      "user_id": "5886773580",
                      "username": "mahadphotographyofficial"
                    },
                    {
                      "full_name": "DARWIS TRIADI PHOTOGRAPHY📞0817.858.889",
                      "is_private": false,
                      "is_verified": true,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.82787-19/522609845_18522538357029067_1493251908113704026_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/darwistriadiartgallery",
                      "user_id": "1776477066",
                      "username": "darwistriadiartgallery"
                    },
                    {
                      "full_name": "Roos | Travel Photography",
                      "is_private": false,
                      "is_verified": false,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.2885-19/339284990_1158033991550314_8272525498136468894_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/rooshazeveld",
                      "user_id": "12193744",
                      "username": "rooshazeveld"
                    },
                    {
                      "full_name": "Maria Mutlaq",
                      "is_private": false,
                      "is_verified": true,
                      "profile_pic_url": "https://scontent-vie1-1.cdninstagram.com/v/t51.2885-19/364264017_645016984279785_2611302983982731897_n.jpg",
                      "is_ai_generated_profile": false,
                      "url": "https://instagram.com/maria.photography_",
                      "user_id": "1432811046",
                      "username": "maria.photography_"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/user": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramUserProfile",
        "summary": "Instagram User Profile",
        "description": "Look up a single Instagram user by username or profile URL. Returns biography, follower / following counts, media count, business category, external link, bio links, public email and phone number when the account lists them, verification status, and \"About this account\" info (country the account is based in, join date, verification date, and how many former usernames it has had). Provide exactly one of `username` or `url`.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-user"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Instagram username, with or without leading @ (max 100 characters, cannot start with # or /). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "natgeo"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.instagram.com/natgeo/"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramUserProfileResponse"
                },
                "example": {
                  "user": {
                    "username": "natgeo",
                    "full_name": "National Geographic",
                    "user_id": "787132",
                    "biography": "Step into wonder and find your inner explorer with National Geographic 🌎",
                    "follower_count": 274777448,
                    "following_count": 194,
                    "media_count": 31593,
                    "is_verified": true,
                    "is_private": false,
                    "is_business": true,
                    "category": "",
                    "external_url": "http://visitstore.bio/natgeo",
                    "bio_links": [
                      {
                        "url": "http://visitstore.bio/natgeo",
                        "title": ""
                      }
                    ],
                    "profile_pic_url": "https://scontent.cdninstagram.com/.../photo.jpg",
                    "profile_pic_url_hd": "https://scontent.cdninstagram.com/.../photo_hd.jpg",
                    "public_email": "",
                    "public_phone_number": "",
                    "account_based_in": "United States",
                    "date_joined": "November 2010",
                    "date_joined_timestamp": 1288569600,
                    "date_verified": "",
                    "date_verified_timestamp": null,
                    "former_usernames": 0,
                    "is_ai_generated_profile": false,
                    "url": "https://instagram.com/natgeo"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing both parameters, both provided, or a value too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/user/posts": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramUserPosts",
        "summary": "Instagram User Posts",
        "description": "Get a single Instagram user's recent posts and reels (their feed) by profile URL or username. Returns post captions, engagement metrics (likes, comments, shares, reposts, views), author metadata, hashtags, mentions, media URLs, carousel slides, audio track info, tagged users, location, and whether each post is pinned to the profile. Supports fetching multiple pages in a single API call (billed per page). Provide exactly one of url or username.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-user-posts"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters). Provide either url or username.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://instagram.com/natgeo"
          },
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Instagram username, with or without leading @ (max 100 characters, cannot start with # or /). Provide either url or username.",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Each page returns up to 12 posts.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramUserPostsResponse"
                },
                "example": {
                  "count": 24,
                  "pages": 2,
                  "posts": [
                    {
                      "author": "natgeo",
                      "author_name": "National Geographic",
                      "author_verified": true,
                      "comments": 5608,
                      "date": "2026-06-14 16:00:06",
                      "domain": "instagram.com",
                      "hashtags": [],
                      "is_video": false,
                      "likes": 530176,
                      "media_type": "carousel_container",
                      "mentions": [
                        "petelas"
                      ],
                      "reposts": 4353,
                      "shares": 9536,
                      "snippet": "Photograph by @petelas | A curious fox in the snow...",
                      "source": "Instagram",
                      "title": "@natgeo on Instagram",
                      "url": "https://instagram.com/p/DZkn1f0Flsc",
                      "views": null,
                      "media_id": "3520497851234567890",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
                      "video_url": "",
                      "video_duration": null,
                      "width": 1080,
                      "height": 1350,
                      "carousel_media_count": 3,
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      },
                      "location": {
                        "name": "Serengeti National Park",
                        "city": "Arusha",
                        "lat": -2.3333,
                        "lng": 34.8333
                      },
                      "tagged_users": [
                        {
                          "username": "natgeotv",
                          "full_name": "National Geographic TV",
                          "user_id": "18091046"
                        }
                      ],
                      "coauthors": [],
                      "carousel_media": [
                        {
                          "media_id": "3520497851234567891",
                          "is_video": false,
                          "image_url": "https://scontent.cdninstagram.com/v/t51.82787-15/slide1.jpg",
                          "video_url": "",
                          "width": 1080,
                          "height": 1350
                        },
                        {
                          "media_id": "3520497851234567892",
                          "is_video": false,
                          "image_url": "https://scontent.cdninstagram.com/v/t51.82787-15/slide2.jpg",
                          "video_url": "",
                          "width": 1080,
                          "height": 1350
                        },
                        {
                          "media_id": "3520497851234567893",
                          "is_video": true,
                          "image_url": "https://scontent.cdninstagram.com/v/t51.82787-15/slide3.jpg",
                          "video_url": "https://scontent.cdninstagram.com/o1/v/t2/slide3.mp4",
                          "width": 1080,
                          "height": 1920
                        }
                      ],
                      "audio": null,
                      "is_pinned": false
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing both parameters, both provided, or a value too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "The account is private: its data is only visible to accepted followers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/post": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramPostDetails",
        "summary": "Instagram Post Details",
        "description": "Look up a single Instagram post, reel, or IGTV video by URL, shortcode, or numeric media ID. Returns the caption, like / comment / share / view counts, media URLs, carousel slides, audio track info, tagged users, location, accessibility caption, and author details. Provide exactly one of `url` or `code`.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-post"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram post, reel, IGTV, or story URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters). Must be an instagram.com URL containing /p/, /reel, /tv/, or /stories/. Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.instagram.com/reel/DaTSSukB-Lb/"
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters, letters/digits/-/_ only). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "DaTSSukB-Lb"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to the post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). If the post cannot be scored, `sentiment` is null.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramPostDetailsResponse"
                },
                "example": {
                  "post": {
                    "title": "@instagram on Instagram",
                    "url": "https://instagram.com/p/DaTSSukB-Lb",
                    "date": "2026-07-02 18:58:11",
                    "date_timestamp": 1783018691,
                    "author": "instagram",
                    "author_id": "25025320",
                    "source": "Instagram",
                    "domain": "instagram.com",
                    "snippet": "this glow >>> #InTheMoment Video by @chriswoodlight Music by Amory Reel",
                    "likes": 167541,
                    "comments": 2493,
                    "shares": 13063,
                    "reposts": 0,
                    "views": 21786137,
                    "is_video": true,
                    "media_type": "clips",
                    "author_verified": true,
                    "author_name": "Instagram",
                    "hashtags": [
                      "#InTheMoment"
                    ],
                    "mentions": [
                      "chriswoodlight"
                    ],
                    "media_id": "3932567351408976603",
                    "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
                    "video_url": "https://scontent.cdninstagram.com/o1/v/t2/video.mp4",
                    "video_duration": 22.03,
                    "width": 720,
                    "height": 1280,
                    "carousel_media_count": 0,
                    "is_paid_partnership": false,
                    "ai_label": {
                      "label": null,
                      "detection_method": "NONE"
                    },
                    "location": null,
                    "tagged_users": [
                      {
                        "username": "chriswoodlight",
                        "full_name": "Chris Wood Light Studio",
                        "user_id": "2107151539"
                      }
                    ],
                    "coauthors": [],
                    "carousel_media": [],
                    "audio": {
                      "type": "music",
                      "title": "her garden",
                      "artist": "Amory Reel",
                      "audio_id": "7115801341882925",
                      "duration_ms": 89205
                    },
                    "is_pinned": false,
                    "accessibility_caption": ""
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing both parameters, both provided, or a value invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram post not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/user/followers": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramUserFollowers",
        "summary": "Instagram User Followers",
        "description": "Get a user's followers by username or profile URL. Returns username, full name, user ID, verification status, privacy status, and profile picture for each account, 50 per page. Pass a query to search the list instead. Verified accounts return only their first 50 followers.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-user-followers"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Instagram username, with or without leading @ (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "worldofartists"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 accounts. Verified (blue checkmark) accounts return the first page only.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 40,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Search the followers list by username or name (max 100 characters). Returns up to 50 matches in a single request; pages is ignored.",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramUserFollowersResponse"
                },
                "example": {
                  "followers": [
                    {
                      "username": "traits_abstraits65",
                      "full_name": "TRAITS ABSTRAITS",
                      "user_id": "25986338196",
                      "is_verified": false,
                      "is_private": false,
                      "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/photo.jpg",
                      "url": "https://instagram.com/traits_abstraits65"
                    }
                  ],
                  "username": "worldofartists",
                  "pages": 2,
                  "count": 100
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "The account is private, or Instagram hides its followers and following lists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/user/following": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramUserFollowing",
        "summary": "Instagram User Following",
        "description": "Get the accounts a user follows by username or profile URL. Returns username, full name, user ID, verification status, privacy status, and profile picture for each account, 50 per page. Pass a query to search the list instead.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-user-following"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Instagram username, with or without leading @ (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "natgeo"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 accounts.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 40,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Search the following list by username or name (max 100 characters). Returns up to 50 matches in a single request; pages is ignored.",
            "schema": {
              "type": "string",
              "maxLength": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramUserFollowingResponse"
                },
                "example": {
                  "following": [
                    {
                      "username": "marcuswestbergphotography",
                      "full_name": "Photographer & Storyteller",
                      "user_id": "364094780",
                      "is_verified": false,
                      "is_private": false,
                      "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/photo.jpg",
                      "url": "https://instagram.com/marcuswestbergphotography"
                    }
                  ],
                  "username": "natgeo",
                  "pages": 2,
                  "count": 100
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "The account is private, or Instagram hides its followers and following lists",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/user/stories": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramUserStories",
        "summary": "Instagram User Stories",
        "description": "Get a user's currently active stories by username or profile URL. Returns each story's media URLs, post time and expiry, link stickers, mentions, tagged users, location, and audio.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-user-stories"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Instagram username, with or without leading @ (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "natgeo"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramUserStoriesResponse"
                },
                "example": {
                  "stories": [
                    {
                      "title": "@natgeo on Instagram",
                      "url": "https://instagram.com/stories/natgeo/3976510169036109894/",
                      "date": "2026-09-01 10:02:53",
                      "date_timestamp": 1788256973,
                      "expires_at": "2026-09-02 10:02:53",
                      "expires_at_timestamp": 1788343373,
                      "author": "natgeo",
                      "author_id": "787132",
                      "author_name": "National Geographic",
                      "author_verified": true,
                      "source": "Instagram",
                      "domain": "instagram.com",
                      "snippet": "",
                      "is_video": false,
                      "media_type": "story",
                      "media_id": "3976510169036109894",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/story.jpg",
                      "video_url": "",
                      "video_duration": null,
                      "width": 750,
                      "height": 1334,
                      "location": null,
                      "tagged_users": [],
                      "mentions": [],
                      "links": [
                        {
                          "url": "https://www.nationalgeographic.com/environment/article/super-el-nino-extreme-weather-climate",
                          "title": "Visit Link"
                        }
                      ],
                      "audio": null,
                      "coauthors": [],
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      }
                    }
                  ],
                  "username": "natgeo",
                  "count": 3
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/user/highlights": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramUserHighlights",
        "summary": "Instagram User Highlights",
        "description": "Get a user's story highlights by username or profile URL. Returns each highlight's ID, title, story count, cover image, and created / updated dates. Use the highlight ID with the Highlight Stories endpoint to get the stories inside.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-user-highlights"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "Instagram username, with or without leading @ (max 100 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "mrbeast"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters). Provide either username or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramUserHighlightsResponse"
                },
                "example": {
                  "highlights": [
                    {
                      "highlight_id": "17929440964811872",
                      "title": "Operation Chad",
                      "media_count": 14,
                      "cover_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
                      "created_at": "2021-12-01 21:15:33",
                      "created_at_timestamp": 1638393333,
                      "updated_at": "2025-08-09 03:54:16",
                      "updated_at_timestamp": 1754706856,
                      "is_pinned": false,
                      "url": "https://instagram.com/stories/highlights/17929440964811872/",
                      "author": "mrbeast",
                      "author_id": "2278169415"
                    }
                  ],
                  "username": "mrbeast",
                  "count": 9
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "The account is private: its data is only visible to accepted followers",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/highlight/stories": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramHighlightStories",
        "summary": "Instagram Highlight Stories",
        "description": "Get the stories saved in a single Instagram highlight by highlight ID (from the User Highlights endpoint) or highlight URL. Returns the highlight's title and cover plus each story's media URLs, post date, link stickers, mentions, tagged users, location, and audio.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-highlight-stories"
        },
        "parameters": [
          {
            "name": "highlight_id",
            "in": "query",
            "required": true,
            "description": "Highlight ID from the User Highlights endpoint, e.g. 17987606483520330, or a highlight URL like https://www.instagram.com/stories/highlights/17987606483520330/ (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "17987606483520330"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramHighlightStoriesResponse"
                },
                "example": {
                  "highlight": {
                    "highlight_id": "17987606483520330",
                    "title": "Football 🏈",
                    "media_count": 4,
                    "cover_url": "https://scontent.cdninstagram.com/v/t51.82787-15/cover.jpg",
                    "created_at": "2023-10-24 03:48:13",
                    "created_at_timestamp": 1698114493,
                    "updated_at": "2023-10-24 03:51:23",
                    "updated_at_timestamp": 1698114683,
                    "is_pinned": false,
                    "url": "https://instagram.com/stories/highlights/17987606483520330/",
                    "author": "mrbeast",
                    "author_id": "2278169415"
                  },
                  "stories": [
                    {
                      "title": "@mrbeast on Instagram",
                      "url": "https://instagram.com/stories/mrbeast/3219347044383400902/",
                      "date": "2023-10-22 17:34:53",
                      "date_timestamp": 1697996093,
                      "expires_at": "",
                      "expires_at_timestamp": null,
                      "author": "mrbeast",
                      "author_id": "2278169415",
                      "author_name": "MrBeast",
                      "author_verified": true,
                      "source": "Instagram",
                      "domain": "instagram.com",
                      "snippet": "",
                      "is_video": false,
                      "media_type": "story",
                      "media_id": "3219347044383400902",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.82787-15/story.jpg",
                      "video_url": "",
                      "video_duration": null,
                      "width": 1284,
                      "height": 2282,
                      "location": null,
                      "tagged_users": [],
                      "mentions": [
                        "buccaneers"
                      ],
                      "links": [],
                      "audio": null,
                      "coauthors": [],
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      }
                    }
                  ],
                  "count": 4
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram highlight not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/post/comments": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramPostComments",
        "summary": "Instagram Post Comments",
        "description": "Get the comments on an Instagram post or reel by URL or shortcode. Returns each comment's text, author details, like and reply counts, date, and link. Sort by popular or recent, and fetch multiple pages in a single call.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-post-comments"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "CxYQJO8xuC6"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch, 1-20 (default: 1). Each page returns up to 15 comments.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order: popular or recent (default: popular)",
            "schema": {
              "type": "string",
              "enum": [
                "popular",
                "recent"
              ],
              "default": "popular"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis (Plutchik's Wheel) to each result. Adds +$0.001 per page to the cost. Returns emotion scores, dominant emotion, intensity, and polarity.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramPostCommentsResponse"
                },
                "example": {
                  "comments": [
                    {
                      "comment_id": "18058799162049620",
                      "text": "Nice post!",
                      "author": "garcia99.r",
                      "author_name": "Robert Garcia",
                      "author_id": "72771312829",
                      "author_verified": false,
                      "author_is_ai_generated_profile": false,
                      "author_url": "https://instagram.com/garcia99.r",
                      "author_profile_pic_url": "https://scontent.cdninstagram.com/v/t51.89012-19/photo.jpg",
                      "likes": 23,
                      "reply_count": 0,
                      "is_pinned": false,
                      "hashtags": [],
                      "mentions": [],
                      "date": "2025-03-09 13:20:14",
                      "date_timestamp": 1741524014,
                      "url": "https://www.instagram.com/p/CxYQJO8xuC6/c/18058799162049620/",
                      "source": "Instagram",
                      "domain": "instagram.com",
                      "gif_url": null
                    }
                  ],
                  "code": "CxYQJO8xuC6",
                  "total": 4006,
                  "pages": 2,
                  "count": 23
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram post not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/comment/replies": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramCommentReplies",
        "summary": "Instagram Comment Replies",
        "description": "Get the replies to a single Instagram comment by post URL or shortcode plus the comment ID from the Post Comments endpoint. Returns each reply's text, author details, like count, date, link, and the comment it replies to.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-comment-replies"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "C3OqtMeRxrV"
          },
          {
            "name": "comment_id",
            "in": "query",
            "required": true,
            "description": "The comment's numeric ID, from the Post Comments endpoint (max 50 characters)",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "18033049183828491"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch, 1-10 (default: 1)",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis (Plutchik's Wheel) to each result. Adds +$0.001 per page to the cost. Returns emotion scores, dominant emotion, intensity, and polarity.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramCommentRepliesResponse"
                },
                "example": {
                  "replies": [
                    {
                      "comment_id": "18026563642931570",
                      "text": "@instagram haha",
                      "author": "omer.arincc",
                      "author_name": "ÖmerArnc",
                      "author_id": "52890574747",
                      "author_verified": false,
                      "author_is_ai_generated_profile": false,
                      "author_url": "https://instagram.com/omer.arincc",
                      "author_profile_pic_url": "https://scontent.cdninstagram.com/v/t51.89012-19/photo.jpg",
                      "likes": 9,
                      "reply_count": 0,
                      "is_pinned": false,
                      "hashtags": [],
                      "mentions": [
                        "instagram"
                      ],
                      "date": "2024-02-12 18:56:19",
                      "date_timestamp": 1707759379,
                      "url": "https://www.instagram.com/p/C3OqtMeRxrV/c/18033049183828491/r/18026563642931570/",
                      "source": "Instagram",
                      "domain": "instagram.com",
                      "gif_url": null,
                      "parent_comment_id": "18033049183828491",
                      "replied_to_comment_id": "18033049183828491"
                    }
                  ],
                  "comment_id": "18033049183828491",
                  "code": "C3OqtMeRxrV",
                  "total": 52,
                  "pages": 1,
                  "count": 9
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram post or comment not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/post/likes": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramPostLikes",
        "summary": "Instagram Post Likes",
        "description": "Get the users who liked an Instagram post or reel by URL or shortcode. Returns username, full name, user ID, verification status, privacy status, and profile picture for each liker, plus the post's total like count, in a single request.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-post-likes"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "code",
            "in": "query",
            "required": false,
            "description": "The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters). Provide either url or code.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "CxYQJO8xuC6"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramPostLikesResponse"
                },
                "example": {
                  "likes": [
                    {
                      "username": "grannyfeet9",
                      "full_name": "Feetgranny",
                      "user_id": "25641676135",
                      "is_verified": false,
                      "is_private": true,
                      "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/photo.jpg",
                      "url": "https://instagram.com/grannyfeet9"
                    }
                  ],
                  "code": "CxYQJO8xuC6",
                  "total": 182068,
                  "count": 845
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram post not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/instagram/hashtag/posts": {
      "get": {
        "tags": [
          "Instagram"
        ],
        "operationId": "instagramHashtagPosts",
        "summary": "Instagram Hashtag Posts",
        "description": "Get posts and reels for any Instagram hashtag. Returns the same post objects as post search (captions, engagement metrics, media URLs, author metadata) plus the hashtag's total post count (top tab). Choose the top, recent, or reels tab, and fetch multiple pages in a single call.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/instagram-hashtag-posts"
        },
        "parameters": [
          {
            "name": "hashtag",
            "in": "query",
            "required": true,
            "description": "Hashtag, with or without the leading # (max 100 characters)",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "summer"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch, 1-10 (default: 1). Each page adds up to about 30 posts; repeats across pages are removed.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Hashtag tab: top, recent, or reels (default: top)",
            "schema": {
              "type": "string",
              "enum": [
                "top",
                "recent",
                "reels"
              ],
              "default": "top"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis (Plutchik's Wheel) to each result. Adds +$0.001 per page to the cost. Returns emotion scores, dominant emotion, intensity, and polarity.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstagramHashtagPostsResponse"
                },
                "example": {
                  "posts": [
                    {
                      "title": "@chloeaustenn19 on Instagram",
                      "url": "https://instagram.com/p/DcvNO0YDqxz",
                      "date": "2026-09-01 08:14:01",
                      "author": "chloeaustenn19",
                      "source": "Instagram",
                      "domain": "instagram.com",
                      "snippet": "am i cute? #chicago #style #summer",
                      "likes": 6009,
                      "comments": 107,
                      "shares": 228,
                      "reposts": 0,
                      "views": 372196,
                      "is_video": true,
                      "media_type": "clips",
                      "author_verified": false,
                      "author_name": "Chloe",
                      "hashtags": [
                        "#chicago",
                        "#style",
                        "#summer"
                      ],
                      "mentions": [],
                      "media_id": "3976455188906945651",
                      "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.71878-15/cover.jpg",
                      "video_url": "https://scontent.cdninstagram.com/o1/v/t2/clip.mp4",
                      "video_duration": 10.1,
                      "width": 1080,
                      "height": 1920,
                      "carousel_media_count": 0,
                      "is_paid_partnership": false,
                      "ai_label": {
                        "label": null,
                        "detection_method": "NONE"
                      },
                      "location": null,
                      "tagged_users": [],
                      "coauthors": [],
                      "carousel_media": [],
                      "audio": {
                        "type": "original",
                        "title": "Original audio",
                        "artist": "chloeaustenn19",
                        "audio_id": "38320043790943785",
                        "duration_ms": 10076
                      }
                    }
                  ],
                  "hashtag": "summer",
                  "total": 578259801,
                  "pages": 2,
                  "count": 64
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing, both alternatives were provided, or a value is invalid or too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Instagram hashtag not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Instagram data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/posts": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "searchLinkedin",
        "summary": "Search LinkedIn Posts",
        "description": "Search for LinkedIn posts by keyword. Returns post content, author information, engagement metrics (likes, comments, shares, reactions), and attached content entities (images, articles, videos, job listings). Includes a has_content_entities flag, true when the post has an attached image, article, video, or job. Results can be sorted by most recent or relevance, and limited to posts from the past 24 hours, week, or month.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Search query (max 500 characters). Required unless at least one filter (e.g. author) is provided.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "artificial intelligence"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-25 (default: 1). 20 posts per page. LinkedIn's search pool is at most ~500 posts per query, so pages past the pool return an empty list. Values below 1 are treated as 1; a page above 25 returns 400.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1,
              "maximum": 25
            },
            "example": 1
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "most_recent"
            },
            "example": "most_recent"
          },
          {
            "name": "posted_ago",
            "in": "query",
            "required": false,
            "description": "Only return posts from this period: 24h (past day), 7d (past week), or 30d (past month). Works with both sort orders and every filter. Omit for all time. Any other value returns 400.",
            "schema": {
              "type": "string",
              "enum": [
                "24h",
                "7d",
                "30d"
              ]
            }
          },
          {
            "name": "author",
            "in": "query",
            "required": false,
            "description": "Filter to posts authored by a specific person. Accepts a profile URL, public slug (e.g. williamhgates), or member URN, resolved automatically. Comma-separate for multiple (max 5 values).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mentions_member",
            "in": "query",
            "required": false,
            "description": "Filter to posts that mention a specific person (profile URL, slug, or member URN). Comma-separate for multiple (max 5 values).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "from_company",
            "in": "query",
            "required": false,
            "description": "Filter to posts authored by a company page. Numeric LinkedIn company ID (from the Company Details endpoint). Comma-separate for multiple. Non-numeric values return 400.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "author_company",
            "in": "query",
            "required": false,
            "description": "Filter to posts written by people who work at a company. Numeric company ID, comma-separate for multiple. Non-numeric values return 400.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "mentions_company",
            "in": "query",
            "required": false,
            "description": "Filter to posts that mention a company. Numeric company ID, comma-separate for multiple. Non-numeric values return 400.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "author_title",
            "in": "query",
            "required": false,
            "description": "Filter by the author's job title as free text (e.g. CEO). Requires a query parameter.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "author_industry",
            "in": "query",
            "required": false,
            "description": "Filter by the author's industry. Numeric LinkedIn industry ID(s), comma-separated. Requires a query parameter. Non-numeric values return 400. Advanced.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchLinkedinResponse"
                },
                "example": {
                  "count": 20,
                  "page": 1,
                  "posts": [
                    {
                      "article": null,
                      "author": "Sina S. Amiri",
                      "comments": 0,
                      "date": "2026-04-04 21:13:18",
                      "domain": "linkedin.com",
                      "has_content_entities": false,
                      "images": [],
                      "job": null,
                      "likes": 5,
                      "reactions": {
                        "interest": 1,
                        "like": 4
                      },
                      "shares": 0,
                      "snippet": "In many practices and DSOs, artificial intelligence isn’t fixing bad processes.\n\nIt’s scaling unnecessary complexity.\n\nAnd when complexity scales, inefficiencies don’t just persist.\n\nThey compound into operational drag and financial leakage.\n\nFaster.\n\nLarger.\n\nHarder to unwind.\n\nOrganizations should simplify before they automate, and eliminate before they optimize.\n\nBecause if AI is doing the work, you should first ask why the work exists at all.\n\n#Dentistry #ArtificialIntelligence #Technology #Operations #Strategy",
                      "source": "LinkedIn",
                      "title": "@Sina S. Amiri on LinkedIn",
                      "url": "https://www.linkedin.com/posts/betterdentistry_dentistry-artificialintelligence-technology-activity-7446303912871071744-Z5Ju?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303912871071744",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Ponle Adeoye Esq.",
                      "comments": 1,
                      "date": "2026-04-04 21:12:53",
                      "domain": "linkedin.com",
                      "has_content_entities": false,
                      "images": [],
                      "job": null,
                      "likes": 2,
                      "reactions": {
                        "like": 2
                      },
                      "shares": 0,
                      "snippet": "AI is not replacing lawyers; it is empowering better lawyers.\n\nArtificial Intelligence (AI) is no longer a futuristic concept—it is already reshaping legal practice in profound ways. For lawyers, particularly in Nigeria’s evolving legal landscape, AI is not a threat but a powerful tool for efficiency and excellence.\nLegal research, once time-consuming, is now faster and more precise. Platforms like LexisNexis and Westlaw enable lawyers to access relevant authorities within minutes, improving the quality of legal arguments and saving valuable time.\nAI also enhances drafting. With tools such as Harvey AI and ChatGPT, lawyers can generate structured drafts of pleadings, contracts, and legal opinions. While professional judgment remains essential, AI provides a strong foundation that increases productivity.\nIn litigation and commercial practice, AI simplifies document review and due diligence by identifying key clauses, inconsistencies, and risks across large volumes of documents. This is particularly useful in complex transactions and dispute resolution.\nBeyond this, AI supports predictive analysis—offering insights into possible case outcomes based on past decisions. It also improves client service through automated responses, scheduling, and case updates.\nHowever, AI must be used responsibly. It cannot replace the lawyer’s role in advocacy, ethical decision-making, and nuanced interpretation of the law. Rather, it is a strategic partner.\nThe future belongs to lawyers who embrace technology while maintaining professional excellence. AI is not replacing lawyers; it is empowering better lawyers.\n\nFor now AI is not 100% correct but it helps tremendously.",
                      "source": "LinkedIn",
                      "title": "@Ponle Adeoye Esq. on LinkedIn",
                      "url": "https://www.linkedin.com/posts/ponle-adeoye-esq-94072784_ai-is-not-replacing-lawyers-it-is-empowering-activity-7446303806222426112-nMY8?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303806222426112",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Mohammad Gaber",
                      "comments": 0,
                      "date": "2026-04-04 21:12:51",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4D22AQG-vPoIkN4-Wg/feedshare-shrink_800/B4DZ1aV1_1HIAc-/0/1775337169231?e=1776902400&v=beta&t=EN-mjzWKVPFAn5OjruKdJ60FUcVxdEY9WLqIwpstiI0"
                      ],
                      "job": null,
                      "likes": 1,
                      "reactions": {
                        "like": 1
                      },
                      "shares": 0,
                      "snippet": "Scientists discover that skin cells \"remember\" inflammation for life.\n\nHere’s why chronic conditions like psoriasis flare up in the same locations repeatedly.\n\nOur skin is more than just a protective layer; it is a living archive of past trauma. A groundbreaking study reveals that skin stem cells maintain a physical memory of inflammation and injury long after the visible damage has healed. By utilizing artificial intelligence to analyze genetic behavior, researchers found that these cells inherit chemical modifications known as epigenetic marks. These marks act as a set of instructions passed down through generations of regenerating skin, effectively training new cells to remain on high alert based on previous experiences.\n\nThis discovery explains the frustrating \"double-edged sword\" of skin biology. While this cellular memory allows the body to repair recurring wounds faster, it also leaves tissue hypersensitive to environmental triggers, leading to the persistent flare-ups seen in chronic conditions like psoriasis. The implications for the future of medicine are profound: if scientists can develop ways to \"erase\" these genetic imprints, they may be able to reset the skin’s biological trajectory. This could move dermatology beyond merely managing symptoms to fundamentally reversing the damage caused by chronic disease.\n\nsource: Cameron, C. (2026). Skin Cells Remember Inflammation for Life. Here’s Why. Scientific American.",
                      "source": "LinkedIn",
                      "title": "@Mohammad Gaber on LinkedIn",
                      "url": "https://www.linkedin.com/posts/mohammad-gaber-90b2b8225_scientists-discover-that-skin-cells-remember-activity-7446303797724889089-e7q5?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303797724889089",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Patricia Lozano Marcano",
                      "comments": 0,
                      "date": "2026-04-04 21:12:08",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4E22AQHCfweoXEhI_Q/feedshare-shrink_1280/B4EZ1aVroiGYAM-/0/1775337126749?e=1776902400&v=beta&t=3nPUWtHdjnOTAyyJmL_odDyQFlxK1h0KyEfIyWJg3EU"
                      ],
                      "job": null,
                      "likes": 1,
                      "reactions": {
                        "like": 1
                      },
                      "shares": 0,
                      "snippet": "Your success is our expertise. We offer cutting-edge technological solutions and consulting, driven by Artificial Intelligence, to empower your business.\n\n\nWith a comprehensive approach, our services include:\n\n * Expert Consulting & Project Management: For successful implementations.\n\n * Process Optimization: For maximum operational efficiency.\n\n * Custom Software Development & Hosting: Personalized and reliable solutions.\n\n * Inventory Control with Instock: For intelligent management.\n\n * SAP Business One Implementation (with AI) & POS: For agile, centralized operations and advanced data-driven decision-making.\n\nDo you need a technical or strategic ally? We also support software houses and partners to strengthen their projects.\n\n\nLet’s talk about your next goals! \n\nContact us today in p.lozano@example.com\n\n\n#SAPB1 #ArtificialIntelligence #ProjectManagement #BusinessEfficiency #SoftwareDevelopment #Hosting #InventoryControl #POS #StrategicAlliances",
                      "source": "LinkedIn",
                      "title": "@Patricia Lozano Marcano on LinkedIn",
                      "url": "https://www.linkedin.com/posts/patricia-lozano-marcano-55424446_sapb1-artificialintelligence-projectmanagement-activity-7446303617562722306-kccj?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303617562722306",
                      "video": null
                    },
                    {
                      "article": {
                        "description": "The technological transition into the era of generative artificial intelligence (AI) has occurred at a pace that has outstripped the development of st",
                        "subtitle": "Tyler Malin",
                        "title": "Comparative Analysis of Methodological Frameworks for Artificial Intelligence Energy Consumption and Lifecycle Environmental Assessment",
                        "url": "https://www.linkedin.com/pulse/comparative-analysis-methodological-frameworks-artificial-tyler-malin-e6fvc?trackingId=k1HSgp3oSVS7%2FJN586hMxg%3D%3D"
                      },
                      "author": "Tyler Malin",
                      "comments": 2,
                      "date": "2026-04-04 21:10:50",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [],
                      "job": null,
                      "likes": 2,
                      "reactions": {
                        "like": 2
                      },
                      "shares": 0,
                      "snippet": "AI inference is the carbon footprint nobody is measuring.\n\nTraining gets documented. Inference, the continuous, production-scale energy draw from every API call, does not. For most organizations, it's invisible in their ESG reporting.\n\nI wrote a comparative analysis of the frameworks that exist today for quantifying AI inference emissions: how they model compute (FLOPs-based), translate that to energy (hardware efficiency × PUE), and convert energy to CO₂e (grid carbon intensity). I also cover where the standards sit from GHG Protocol Scope 2, ISO 14064-1, the Green Software Foundation's SCI specification  and where the methodology gaps still are.\n\nIf you're building AI infrastructure or responsible for sustainability reporting at a company running LLMs at scale, this is the framework landscape you need to understand.",
                      "source": "LinkedIn",
                      "title": "@Tyler Malin on LinkedIn",
                      "url": "https://www.linkedin.com/posts/activity-7446303292751724544-5-IC?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303292751724544",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Don Truong",
                      "comments": 0,
                      "date": "2026-04-04 21:10:35",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D5622AQGSuBZjFNtdKw/feedshare-shrink_480/B56Z1aVUzCKYAk-/0/1775337033126?e=1776902400&v=beta&t=bPccRaw0k4b6zMq0jjDCRHtbOJ-G4ImP2bh5dbNC_4o"
                      ],
                      "job": null,
                      "likes": 1,
                      "reactions": {
                        "like": 1
                      },
                      "shares": 0,
                      "snippet": "AI Model Can Now Hear, Watch, and Clone Your Voice :Qwen 3.5 Omni from Alibaba’s \nThe artificial intelligence capabilities of Alibaba experience their most significant development through Qwen 3.5 Omni which operates as a next-generation model that uses multiple human senses for information processing and generation. The Qwen 3.5 Omni system operates as an \"omnimodal\" model which enables users to comprehend text elements together with audio and visual content through its unified system. The model establishes a new method through which people can interact with machines by using more human like contact methods. The Qwen 3.5 Omni system unifies multiple functions which include speech recognition and image analysis and text generation into one architectural framework that enables users to conduct natural conversations which resemble human dialogue. The system offers a unique capability which allows users to understand both audio and video content in real time. The system has the ability to analyze video material which lets it detect movements through instantaneous watching without needing multiple AI systems. The system can manage prolonged content which enables it to process audio material lasting hours and video content that extends beyond six hours without losing track of the main theme. The system provides advanced voice cloning capabilities. The AI system generates speech using the provided short voice sample which users make available. The technology enables personalized assistant development and media localization and accessibility tool creation but it also enables people to produce synthetic voices that result in digital identity problems. \nQwen 3.5 Omni also brings in a whole new level of intelligent conversational features. It understands the natural way people speak can include  pauses hesitation filler words, or interruptions and reacts accordingly, making the human machine interaction less mechanical. Support of multiple languages is ensured for both speech and text, the model is planned for worldwide and practical usage. On the technical side, it is a single system architecture that equalizes speech and text creation for the same output, permitting talking and thinking simultaneously. Essentially, it speaks, reasons, and thinks without any interruption. Less delay, smoother flow of talk and humans always on assistants nearby are some other things AI achieves with this design. Assistants are always-on, near, and can listen see think, and talk continuously. However, this release also denotes a different strategy.",
                      "source": "LinkedIn",
                      "title": "@Don Truong on LinkedIn",
                      "url": "https://www.linkedin.com/posts/dontruong1_ai-model-can-now-hear-watch-and-clone-your-activity-7446303228067209216-Cnbe?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303228067209216",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Guli Ergasheva",
                      "comments": 0,
                      "date": "2026-04-04 21:10:12",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4D22AQFp-GlUJQtpBQ/feedshare-shrink_20/B4DZ1aVGicHQAM-/0/1775336974739?e=1776902400&v=beta&t=pTPV7xijsZJ-YrVK4iQnn6ZrDmOCr7uBmRjrBTLZJiI",
                        "https://media.licdn.com/dms/image/v2/D4D22AQHzXGJJr1XCqw/feedshare-shrink_480/B4DZ1aVGUNHkAk-/0/1775336973853?e=1776902400&v=beta&t=BCOwPLKDzglwWyA-6vHqDlLNJK1MfEmao-EfcbI7-AE",
                        "https://media.licdn.com/dms/image/v2/D4D22AQFq2eoxIyoNhQ/feedshare-shrink_1280/B4DZ1aVPPKKIAM-/0/1775337010891?e=1776902400&v=beta&t=LVpdszrQLZURGdMCgOhqhxDOSt96sjgWfGDfUk0SfkI",
                        "https://media.licdn.com/dms/image/v2/D4D22AQGi35G5fesjrA/feedshare-shrink_2048_1536/B4DZ1aVGKTIYAk-/0/1775336973411?e=1776902400&v=beta&t=2e3yNDNM0zy3sy-VrWv4eCycXLQOYhwIKgFoaduQ2ns"
                      ],
                      "job": null,
                      "likes": 1,
                      "reactions": {
                        "like": 1
                      },
                      "shares": 0,
                      "snippet": "Advancing Linguistic Thought in the Era of Anthropocentrism\n\nI had the honor of organizing the Republican Scientific-Practical Conference titled “Anthropocentrism in Linguistics: New Approaches and Research”, at UzSWLU with EFF Linguistic Department.\nAs a Dean of the faculty, I engaged with leading scholars, researchers, and practitioners to explore the evolving role of language in shaping human-centered knowledge systems.\n\nThe conference brought forward critical discussions on: modern linguistic innovations, the intersection of artificial intelligence and language, language, culture, and identity, translation and intercultural communication.\n\nIt is inspiring to witness how contemporary linguistics is increasingly aligned with anthropocentric paradigms, placing human experience, cognition, and social context at the center of research and application.\n\nSuch academic platforms not only foster intellectual exchange but also contribute to building a more interconnected and knowledge-driven society.",
                      "source": "LinkedIn",
                      "title": "@Guli Ergasheva on LinkedIn",
                      "url": "https://www.linkedin.com/posts/guli-ergasheva-428064251_advancing-linguistic-thought-in-the-era-of-activity-7446303134798344192-XcfK?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303134798344192",
                      "video": null
                    },
                    {
                      "article": {
                        "description": " I got my first computer when I was 13, a Timex Sinclair 1000 with just 1 kilobyte of memory, no hard drive, and programs stored on cassette tape. Bac",
                        "subtitle": "Duane Ribron",
                        "title": "From Cassette Tapes to Cloud Technology, My Journey in Computing and the Rise of Artificial Intelligence\nBy Duane Ribron",
                        "url": "https://www.linkedin.com/pulse/from-cassette-tapes-cloud-technology-my-journey-computing-ribron-wlwxc?trackingId=oqV5SNZ7RfSj2Yd%2FrBalaw%3D%3D"
                      },
                      "author": "Duane Ribron",
                      "comments": 0,
                      "date": "2026-04-04 21:10:07",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "My short history",
                      "source": "LinkedIn",
                      "title": "@Duane Ribron on LinkedIn",
                      "url": "https://www.linkedin.com/posts/duane-ribron-61a23235_my-short-history-activity-7446303111650095104-b-GH?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446303111650095104",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "European Leadership",
                      "comments": 0,
                      "date": "2026-04-04 21:09:28",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4D22AQGaPjT3l6AACw/feedshare-shrink_480/B4DZ1aVEtsHQAk-/0/1775336967325?e=1776902400&v=beta&t=jyffkXPBk1iv36JtOIu-V3JXeOXQnp4qn_P2NTR2fEA"
                      ],
                      "job": null,
                      "likes": 25,
                      "reactions": {
                        "appreciation": 1,
                        "entertainment": 1,
                        "like": 22,
                        "praise": 1
                      },
                      "shares": 0,
                      "snippet": "AI 5.0 LEADERSHIP is HUMAN VALUES. Connect with Jorge Zuazola for 20 free minutes Teams video on AI 5.0 LEADERSHIP. See https://lnkd.in/eQp7mF3x professionals  connect for:\n1 Free 20 minutes Teams video for your individual AI 5.0 Leadership Tutorial\n2 Free AI 5.0 Leadership Roadmap after your first session\n3 Get your Linkedin profile done top to bottom both in PDF and Digital with Gemini. 50% discount really affordable\n4 Get Brand Leadership in 2.0 Web format for either your business or your professional profile. 50% discount \n5 Likewise those who attend 4 they get 3.0 Digital #Leadership Subscription  for    recognition of their articles. \n6 Those who attend 5 can use AI to upload in Amazon 8-10 #digital articles in book format beautifully crafted\nSouth Africa High Performance Artificial Intelligence Leadership\nEuropean Stock Trading Artificial Intelligence Leadership\nAustralia Artificial Intelligence Leadership\nEuropean Businesses Artificial Intelligence Leadership\nAmerican Information Technology Artificial Intelligence Leadership\nSaudi Arabia Management Artificial Intelligence Leadership\nEuropean Talent Management Artificial Intelligence Leadership\nEuropean Marketing Business Development Artificial Intelligence Leadership\nAmerican Aerospace Industry Artificial Intelligence Leadership\nBulgaria Artificial Intelligence Leadership\nGlobal Information Technology Artificial Intelligence Leadership\nAmerican Project Management Artificial Intelligence Leadership\nAmerican Organizational Development Artificial Intelligence Leadership\nGlobal Business Development Artificial Intelligence Leadership\nAmerican CEO Leaders\nBelgium Artificial Intelligence Leadership Worldwide\nEuropean Wellness Artificial Intelligence Worldwide Leadership\nAmerican Management Artificial Intelligence Worldwide Leadership\nSan Antonio Artificial Intelligence Worldwide Leadership\nNew York Artificial Intelligence Worldwide Leadership\nDenmark Artificial Intelligence Worldwide Leadership\nUK Artificial Intelligence Worldwide Leadership\nInnovia Behavioral Health LATAM & Spain\nBasque Economics Worldwide Leadership\nNew Orleans Artificial Intelligence Worldwide Leadership\nSaudi Arabia Artificial Intelligence Worldwide Leadership\nAmerican Healthcare Worldwide Leadership\nSweden Photography Artificial Intelligence Worldwide Leadership\nBasque Artificial Intelligence Worldwide Leadership\nSweden Business Artificial Intelligence Leadership\nBoard of Directors Leadership in Digital Transformation\nLos Angeles Artificial Intelligence Worldwide Leadership\nMéxico Artificial Intelligence Worldwide Leadership\nAmerican Artificial Intelligence Transformational Leadership\nNetherlands Digital Worldwide Leadership\nAfrican Women Worldwide Leadership\nMusic Artificial Intelligence Worldwide Leadership\nHolland Artificial Intelligence Worldwide Leadership\nSpanish Women Worldwide Leadership",
                      "source": "LinkedIn",
                      "title": "@European Leadership on LinkedIn",
                      "url": "https://www.linkedin.com/posts/european-leadership_leadership-digital-activity-7446302946977431552-iM7L?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302946977431552",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "James Walsh",
                      "comments": 0,
                      "date": "2026-04-04 21:09:06",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4E22AQEWpHXtrfXTKQ/feedshare-shrink_800/B4EZ1aU_bHJEAc-/0/1775336945620?e=1776902400&v=beta&t=v5wEej36QEAfEFVdzYHhFFwdWpF2mht4nat2Bbo_J_w"
                      ],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "Just completed the IBM SkillsBuild learning path: Artificial Intelligence Fundamentals! 🚀\n\nFrom Natural Language Processing and Computer Vision to the ethical implications of automation, this journey has sharpened my understanding of how AI is reshaping our world. I also got some great hands-on perspective using IBM Watson Studio to see how these models actually come to life.\n\nReady to apply these insights to my next big project! 🤖✨\n\n#AI #IBM #ContinuousLearning #MachineLearning #ArtificialIntelligence",
                      "source": "LinkedIn",
                      "title": "@James Walsh on LinkedIn",
                      "url": "https://www.linkedin.com/posts/james-walsh-6b722a363_ai-ibm-continuouslearning-activity-7446302856258703361-_xGP?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302856258703361",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "GyaanSetu AI (Artificial Intelligence)",
                      "comments": 0,
                      "date": "2026-04-04 21:08:37",
                      "domain": "linkedin.com",
                      "has_content_entities": false,
                      "images": [],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "𝗪𝗵𝘆 𝗬𝗼𝘂𝗿 𝗔𝗴𝗲𝗻𝘁 𝗡𝗲𝗲𝗱𝘀 𝗔 𝗖𝗼𝗻𝘁𝗿𝗮𝗰𝘁\nEvery agent starts with a prompt. You describe the task, list the tools, define the behavior. But this approach falls apart in production. \nThe problem is not the prompt. The issue is that prompts are implicit contracts. They describe what the agent should do, but they do not enforce it. \nHere are some things a prompt cannot guarantee:\n- Input validation: what happens when the agent receives unexpected input?\n- Output guarantees: what shape does the output take?\n- State transitions: what states can the agent be in?\n- Failure modes: when things go wrong, what should the agent do?\n\nYou need a contract mindset. Software engineers use APIs to define contracts: inputs, outputs, error states, side effects. \nAgents need the same rigor. An agent contract includes:\n- Input schema: define what the agent accepts\n- Output schema: define what the agent returns\n- State machine: define valid states and transitions\n- Error taxonomy: define error types and recovery paths\n- Resource limits: define timeouts, token limits, and cost bounds\n\nWithout a contract, debugging an agent is hard. With a contract, you debug contract violations. \nPrompts are for behavior. Contracts are for reliability. \nIf your agent is going to run in production, it needs both. \nSource: https://lnkd.in/gAxBmykX\nOptional learning community: https://t.me/GyaanSetuAi",
                      "source": "LinkedIn",
                      "title": "@GyaanSetu AI (Artificial Intelligence) on LinkedIn",
                      "url": "https://www.linkedin.com/posts/gyaansetu-ai_%F0%9D%97%AA%F0%9D%97%B5%F0%9D%98%86-%F0%9D%97%AC%F0%9D%97%BC%F0%9D%98%82%F0%9D%97%BF-%F0%9D%97%94%F0%9D%97%B4%F0%9D%97%B2%F0%9D%97%BB%F0%9D%98%81-%F0%9D%97%A1%F0%9D%97%B2%F0%9D%97%B2%F0%9D%97%B1%F0%9D%98%80-%F0%9D%97%94-activity-7446302735685271552-H30o?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302735685271552",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "GyaanSetu AI (Artificial Intelligence)",
                      "comments": 0,
                      "date": "2026-04-04 21:08:36",
                      "domain": "linkedin.com",
                      "has_content_entities": false,
                      "images": [],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "𝗧𝗵𝗲 𝗙𝘂𝘁𝘂𝗿𝗲 𝗢𝗳 𝗔𝗜: 𝗜𝗻𝘃𝗲𝘀𝘁𝗺𝗲𝗻𝘁𝘀 𝗮𝗻𝗱 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻\nBig tech firms are investing billions in AI. You see this in record-breaking investments and integration into core development processes. \n\nKey areas to watch:\n- Record-breaking investments in AI infrastructure\n- AI in software development for code generation\n- Safety and responsibility in AI development\n- Market dynamics and global AI strategies\n\nYou need to understand these developments to stay ahead in the field. This overview is for developers, tech leaders, and enthusiasts. \nSource: https://lnkd.in/gQKum-vP\nOptional learning community: https://t.me/GyaanSetuAi",
                      "source": "LinkedIn",
                      "title": "@GyaanSetu AI (Artificial Intelligence) on LinkedIn",
                      "url": "https://www.linkedin.com/posts/gyaansetu-ai_%F0%9D%97%A7%F0%9D%97%B5%F0%9D%97%B2-%F0%9D%97%99%F0%9D%98%82%F0%9D%98%81%F0%9D%98%82%F0%9D%97%BF%F0%9D%97%B2-%F0%9D%97%A2%F0%9D%97%B3-%F0%9D%97%94%F0%9D%97%9C-%F0%9D%97%9C%F0%9D%97%BB%F0%9D%98%83%F0%9D%97%B2%F0%9D%98%80-activity-7446302730521931776-0tUb?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302730521931776",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Karzan Mahmood",
                      "comments": 0,
                      "date": "2026-04-04 21:08:36",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D5622AQERXE48oa1gOQ/feedshare-shrink_160/B56Z1aU33GIMAo-/0/1775336914638?e=1776902400&v=beta&t=Vzk1pQfiqJl3665Q9lj1QaD6V3juOdPyFcjNbEeAcqw"
                      ],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "\"جیهانی نوێی زیرەك\" ناونیشانی ڕۆمانێكی نوێی ئێمەیە كە ئێستا لە دەزگای غەزەلنووس بەردەستە بۆ خوێنەران. ئەم ڕۆمانە هەوڵێكە بۆ ئەوەی بتوانرێت لە ژانرێكی نوێی ڕۆمانووسیی كوردییەوە ڕووداو و پرسەكان دابهێنرێنەوە و ببینرێن؛ بۆ نموونە، ئایا چارەنووسی ئازادی، حەقیقەت، ڕۆژنامەگەری، ... لە سەردەمی ژیریی دەستكرددا چی لێبەسەردێت.\n\n\"Intelligent New World\" is the title of my recently published novel in the Kurdish language, which is now available at Ghazalnws Publishing House. The work explores what happens to concepts such as freedom, truth, and journalism in the age of artificial intelligence.",
                      "source": "LinkedIn",
                      "title": "@Karzan Mahmood on LinkedIn",
                      "url": "https://www.linkedin.com/posts/karzan-mahmood-031ba9b0_%D8%AC%DB%8C%D9%87%D8%A7%D9%86%DB%8C-%D9%86%D9%88%DB%8E%DB%8C-%D8%B2%DB%8C%D8%B1%DB%95%D9%83-%D9%86%D8%A7%D9%88%D9%86%DB%8C%D8%B4%D8%A7%D9%86%DB%8C-%DA%95%DB%86%D9%85%D8%A7%D9%86%DB%8E%D9%83%DB%8C-%D9%86%D9%88%DB%8E%DB%8C-activity-7446302728248799232-weDO?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302728248799232",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Boss Babes Britain",
                      "comments": 0,
                      "date": "2026-04-04 21:08:29",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4E10AQG2JVi2whfZzw/image-shrink_800/B4EZ1aUn9HJcAg-/0/1775336849941?e=1775944800&v=beta&t=K0DybylF3IFVoky60_bH6nlVbLntsLJfum_R5aiK0VM"
                      ],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "Fewer than 1 in 4 AI professionals are women. Yet the UK is home to world-class voices shaping how AI is built, governed, and used. Here are UK women leaders in artificial intelligence to follow, learn from, and support:\n\n- Dame Wendy Hall — AI pioneer; co-authored the UK’s landmark 2017 AI review\n- Tabitha Goldstaub — Co-founder, CognitionX; former Chair, UK AI Council\n- Priya Lakhani OBE — Founder & CEO, CENTURY Tech (AI in education)\n- Prof. Maja Pantic — Computer vision and affective computing leader; Imperial College London\n- Prof. Mirella Lapata — NLP trailblazer; University of Edinburgh\n- Dr. Kate Devlin — AI and society researcher; King’s College London\n- Dr. Sandra Wachter — AI governance and law; Oxford Internet Institute\n- Sana Khareghani — Former Head, UK Office for AI; policy catalyst\n- Raia Hadsell — Senior research leader in robotics/embodied AI; DeepMind (London)\n- Baroness Joanna Shields — Former CEO, BenevolentAI; veteran UK tech leader\n\nThis list is not exhaustive—who else should be here? Tag a UK-based woman in AI doing standout work so we can amplify their impact. If you’re building teams or booking speakers, add these names to your shortlist today.\n\nSave, share, and let’s turn recognition into resources: budgets, board seats, and real buy-in.\n\n#WomenInAI #UKTech #ArtificialIntelligence #AI #Leadership #DiversityInTech",
                      "source": "LinkedIn",
                      "title": "@Boss Babes Britain on LinkedIn",
                      "url": "https://www.linkedin.com/posts/boss-babes-britain_womeninai-uktech-artificialintelligence-activity-7446302702227214336-wQpn?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302702227214336",
                      "video": null
                    },
                    {
                      "article": {
                        "description": "",
                        "subtitle": "youtube.com",
                        "title": "RCADT - INDUSTRY 6.0 Brain Engineering",
                        "url": "https://youtu.be/U7BhfFrZhOU"
                      },
                      "author": "Jesus Velasquez-Bermudez",
                      "comments": 0,
                      "date": "2026-04-04 21:08:27",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "INDUSTRY 6.0 Brain Engineering\n\nINDUSTRY 6.0 is completely changing the Mathematical Modelling of Artificial Intelligence, now we can talk about:\n- Orchestration of swarms of cognitive robots, and \n- Living Industrial Ecosystems.\n\nThese two terms are new to most people, including scientists, even though they date back at least 15 years.\n\n-Brain engineering, commonly referred to as neural engineering or neuro engineering, is a multidisciplinary field that combines engineering principles with neuroscience to understand, repair, replace, or improve the nervous system. It sits at the intersection of biology, medicine, and technology, focusing on creating devices and models that interact directly with living neural tissue.\n\nHowever, this rapid advancement has triggered significant neuroethical debates regarding privacy, identity, and the boundaries of human autonomy. \n\nThe Key Pillars of Brain Engineering are:\n\n- Brain-Computer Interfaces (BCIs): Systems that allow direct communication between the brain and external devices, are used to help paralyzed people control prosthetics or computers using only their thoughts.\n\n- Neuro prosthetics: Artificial devices designed to replace or enhance damaged neural functions. The most successful example is the cochlear implant for hearing loss; visual prostheses for the blind are currently being developed.\n\n- Neuromodulation: Techniques such as Deep Brain Stimulation (DBS) and Transcranial Magnetic Stimulation (TMS) that use electrical or magnetic pulses to modulate neural activity. These are used to treat disorders such as Parkinson's disease, chronic pain, and treatment-resistant depression.\n\n- Neural Imaging and Signal Processing: Development of advanced tools such as fMRI (functional Magnetic Resonance Imaging) and EEG (Electro-Encephalo-Graphy), two most common non-invasive techniques, and microelectrode arrays to record and interpret complex brain signals, help researchers \"decipher\" the language of neurons to drive robotic systems or diagnose disease.\n\n- Neural Tissue Engineering: Research focused on the regeneration or repair of damaged nerves using biomaterials, scaffolds, and stem cells, especially for traumatic spinal cord and brain injuries. Beyond clinical treatment, brain engineering is moving toward human augmentation, exploring ways to enhance memory, speed up learning, or expand cognitive capabilities. \n\nhttps://lnkd.in/es6aArgz",
                      "source": "LinkedIn",
                      "title": "@Jesus Velasquez-Bermudez on LinkedIn",
                      "url": "https://www.linkedin.com/feed/update/urn:li:groupPost:8617859-7446302690990694401?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302692001345536",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Roumaissa Madjebeur",
                      "comments": 0,
                      "date": "2026-04-04 21:07:30",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4D22AQElu4SCkGwZUw/feedshare-shrink_20/B4DZ1aUnZJIwAI-/0/1775336847225?e=1776902400&v=beta&t=2IdEPVHoN07oTzqFvSexbNTkcJ-Noxs2PrRIsTerCU4",
                        "https://media.licdn.com/dms/image/v2/D4D22AQFyYMTBggJvww/feedshare-shrink_160/B4DZ1aUnYNIoAo-/0/1775336847091?e=1776902400&v=beta&t=WskKRJQKPsinmoXcb52Gy7ZWqXMIKhsyRqiVABxnSvY"
                      ],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "🚀 L’intelligence artificielle au service de la maintenance industrielle\n\nAujourd’hui, l’identification des défauts sur les cartes électroniques reste une tâche complexe, longue et souvent sujette à erreur humaine.\n\nEt si cette tâche devenait automatique, rapide et fiable grâce à l’IA ?\n\nDans le cadre de mon projet de fin d’études en électrotechnique, j’ai développé un système intelligent capable de :\n•Identifier la topologie d’une carte électronique\n•Détecter automatiquement ses composants\n•Localiser les anomalies (vis manquantes, défauts, etc.)\nBasé sur :\nRéseaux de neurones convolutifs (CNN)\nAlgorithme YOLOv8 pour la détection d’objets en temps réel\nVision par ordinateur et traitement d’images\n\n📊 Résultat :Un modèle performant capable d’analyser des cartes électroniques avec précision, ouvrant la voie vers une maintenance prédictive et automatisée dans l’industrie.\n\nCe projet représente pour moi bien plus qu’un PFE :C’est une première immersion concrète dans l’Industrie 4.0, où l’IA devient un levier clé d’innovation.\n______________________________________\n\n🚀 Artificial Intelligence for Industrial Maintenance\n\nToday, identifying defects on electronic boards remains a complex, time-consuming task that is often prone to human error.\n\nWhat if this task could become automatic, fast, and reliable thanks to AI?\n\nAs part of my final year project in Electrical Engineering, I developed an intelligent system capable of:\n• Identifying the topology of an electronic board\n• Automatically detecting its components\n• Locating anomalies (missing screws, defects, etc.)\n\nBased on:\nConvolutional Neural Networks (CNN)\nYOLOv8 algorithm for real-time object detection\nComputer vision and image processing\n\n📊 Result: A high-performance model capable of analyzing electronic boards with precision, paving the way for predictive and automated maintenance in industry.\n\nThis project represents much more than just a final year project for me: it is my first concrete immersion into Industry 4.0, where AI becomes a key driver of innovation.\n\n#ArtificialIntelligence #MachineLearning #DeepLearning #YOLOv8 #Engineering #Ingenieur #MaintenanceIndustrielle #Innovation #Tech \n#IndustrialAI\n#EmploiAlgerie #RecrutementAlgerie #JobsAlgeria #Algerie\n#Oran #Algiers #NorthAfricaJobs #Algiers",
                      "source": "LinkedIn",
                      "title": "@Roumaissa Madjebeur on LinkedIn",
                      "url": "https://www.linkedin.com/posts/roumaissa-madjebeur-2a89a6364_artificialintelligence-machinelearning-deeplearning-activity-7446302453022777344-cbpm?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302453022777344",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Preeti Cholleti",
                      "comments": 0,
                      "date": "2026-04-04 21:06:58",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D5610AQFdmrpEu-Jg3w/image-shrink_20/B56Z1aUf8SGwAo-/0/1775336816632?e=1775944800&v=beta&t=m8kiFCeKRo5tOo6kOvMDX9Lom_WINwIscI1oo0mwYKA"
                      ],
                      "job": null,
                      "likes": 1,
                      "reactions": {
                        "like": 1
                      },
                      "shares": 0,
                      "snippet": "Introducing Bramble: Your AI Companion for Navigating Difficult Conversations and Decisions\n\nhttps://lnkd.in/gJjuxVtx \n\nUnlocking the Future of AI with Bramble Coach\nDiscover how Bramble Coach is reshaping the landscape of artificial intelligence, tailored for tech enthusiasts ready to dive deep into innovative practices and strategies.\nKey Highlights:\n\nEmpowering Knowledge: Bramble Coach provides insightful articles that break down complex AI concepts in an easy-to-understand manner.\nReal-World Applications: Explore practical insights on how AI can transform industries, enhance productivity, and drive business growth.\nCommunity Engagement: Join a vibrant community of like-minded individuals passionate about AI advancements and networking opportunities.\n\nIn an ever-evolving tech environment, staying ahead means continuous learning and adaptation. Bramble Coach stands as a premier resource, guiding you through the intricacies of artificial intelligence.\nReady to elevate your understanding of AI? Explore Bramble Coach now and share your thoughts in the comments! Let’s ignite a discussion on the future of tech together!\n\nSource link  \nhttps://lnkd.in/gJjuxVtx",
                      "source": "LinkedIn",
                      "title": "@Preeti Cholleti on LinkedIn",
                      "url": "https://www.linkedin.com/posts/inai-wiki_introducing-bramble-your-ai-companion-for-activity-7446302317852917760-VqhB?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302317852917760",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "ITCERTS",
                      "comments": 0,
                      "date": "2026-04-04 21:06:04",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4E22AQHeGfjhWpR0gQ/feedshare-shrink_800/B4EZ1aUTCCIsAc-/0/1775336763766?e=1776902400&v=beta&t=LHbE65cg0AWsQfv4Grm5Z1LztP2q2aOSzjAPjl8osXg"
                      ],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "The Certified ISO/IEC 42001 Lead Auditor is a comprehensive stackable certification designed to validate knowledge in auditing Artificial Intelligence Management Systems (AIMS) in alignment with ISO/IEC 42001. It is fully aligned with the ISO/IEC 42001 and ISO 19011 international standards.\n\nTo achieve the Certified ISO/IEC 42001 Lead Auditor designation, candidates must successfully pass the following exams:\n✔ ITC-096: Artificial Intelligence Management System (ISO/IEC 42001) Foundation\n✔ ITC-094: ISO 19011 Foundation\n\nEach exam consists of 40 multiple-choice questions, is closed-book, and requires a passing score of 70%. The exams are online proctored, allowing you to take them anytime, anywhere. The exams are available in both English and Portuguese.\n\nWhen you purchase an exam voucher, you will receive:\n✅ Access to a self-paced online study guide.\n✅ Two retakes in case you don’t pass on the first attempt.\n✅ A practice test with questions matching the type and difficulty level of the actual exam.\n\nEnjoy a 10% discount when purchasing the Certified ISO/IEC 42001 Lead Auditor certification exam voucher bundle!\n\nTo take advantage of this offer:\n1. Visit https://lnkd.in/gfUkKNhR\n2. Choose your language, add the bundle to your cart, and proceed to checkout.\n\nDon’t miss this opportunity to advance your career with the Certified ISO/IEC 42001 Lead Auditor designation and showcase your knowledge in auditing Artificial Intelligence Management Systems.",
                      "source": "LinkedIn",
                      "title": "@ITCERTS on LinkedIn",
                      "url": "https://www.linkedin.com/posts/itcerts_the-certified-isoiec-42001-lead-auditor-activity-7446302093021409280-mpAe?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302093021409280",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Muhammad Hamza Malik",
                      "comments": 0,
                      "date": "2026-04-04 21:06:04",
                      "domain": "linkedin.com",
                      "has_content_entities": false,
                      "images": [],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "Another problem posed by Artificial Intelligence is that it shifts the perspective to an unoriginal categorization of itself. It is able to delve into those instances of thought that may be left unattended by the mental space that one occupies. This is not because the mind does not or cannot reach out to the mere functional side of the War Drama, in fact, the reason may well pertain to those methodologies that are able to reconfigure the agenda of these plays. Another reason could be that they are checked through how they are performed in chunks and that too quite notationally. They are able to recalibrate their thoughts and can engage one on multiple levels to redo the contours of timely proposition of these temporal spaces. These due to some basic undertaking keep on changing in time forward and can easily alter the dimensions that are distributed on many scales. The ideal form of these plays could relate to how the organization of a play is shaped. Perhaps, what causes a major shift in these plays is how their meaning evolves due to the rapid transformation that Artificial Intelligence continues to enforce upon them. It also demands from them that they may well be rearranged in a way that alters their subtle dimensions. This may either remain noticed or it may go unnoticed which makes it complicated to align these thoughts in a specific momentum only reordering them when necessitated. In a presumable sphere, the redoing and restructuring of these plays can sometimes help undergoing the remnants of thoughts that are previously dissociated from the mental space of the receptors. Such a newly introduced dimension in these plays even if still open to experiential interpretation yet it allows a more profound depth to these plays in terms of gauging the intentional meaning with due resonance to how it is genuinely recalibrated. On many instances, the perceptive influence of these plays may overreach the audience proving more augmented in terms of the argumentation that they are able to reconstruct around themselves always continuing to realign the meaning as well as the latter discourse that sheds light on these plays. This perceptual shift also intersects with Jean Baudrillard’s controversial claim that contemporary wars are experienced primarily as simulations. While Baudrillard’s rhetoric has been widely criticized for its apparent denial of real suffering, his analysis of media saturation and hyperreality remains pertinent. In Artificial Intelligence-mediated war drama, the distinction between representation and event becomes increasingly tenuous. Characters may encounter war through predictive models or reconstructed footage that claims greater accuracy than human memory. The danger, as Baudrillard would suggest, is not that war is unreal, but that its reality is displaced by its representation. Historical specificity dissolves not because history disappears, but because it is overrepresented to the point of indistinction.",
                      "source": "LinkedIn",
                      "title": "@Muhammad Hamza Malik on LinkedIn",
                      "url": "https://www.linkedin.com/posts/muhammad-hamza-malik-b60796277_another-problem-posed-by-artificial-intelligence-activity-7446302093977640961-jW1a?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446302093977640961",
                      "video": null
                    },
                    {
                      "article": null,
                      "author": "Jarred De Kock",
                      "comments": 0,
                      "date": "2026-04-04 21:05:34",
                      "domain": "linkedin.com",
                      "has_content_entities": true,
                      "images": [],
                      "job": null,
                      "likes": 0,
                      "reactions": {},
                      "shares": 0,
                      "snippet": "AI IN FASHION IS NOT THE FUTURE\nIT’S THE MEDIUM. 📢\n\nThe intersection of fashion and AI is no longer speculative — it’s operational.\n\nOver the past few months, I’ve been exploring how artificial intelligence can extend the language of fashion storytelling — not replace it.\n\nAs a fashion editor and cultural journalist having focused on fashion journalism in the Styling sphere, my foundation has always been rooted in composition, narrative, and visual rhythm. What AI has unlocked is the ability to translate still imagery into motion-led editorial experiences — efficiently, accessibly, and at scale.\n\nThis is where JDK STYLE STUDIO comes in.\n\nI’ve begun integrating AI-powered motion into:\n• Editorial storytelling\n• Campaign advertising\n• Digital fashion marketing rollouts\nAnd so much more ….\n\nThe result is a new format of advertorial marketing (Right Now) — one that sits between traditional print and full-scale video production.\n\nWe’re no longer choosing between stillness and motion. We’re designing in-between states.\n\nFor personal and commercial stylists, AI expands creative capacity rather than replacing it. It allows for rapid visual prototyping, moodboard generation, and styling simulations that would traditionally take days — now executed in minutes. This enables stylists to present more refined, data-informed concepts while maintaining their unique creative direction.\n\nAI also introduces a new level of personalisation. By analysing consumer behaviour, preferences, and visual trends, stylists can curate looks that feel both intuitive and highly tailored — bridging the gap between aesthetic instinct and data intelligence.\n\nFor fashion marketing and advertising, AI is transforming both production and strategy.\n\nCampaigns can now be developed with AI-generated imagery, motion, and virtual models, significantly reducing production costs while increasing creative experimentation. This allows brands to test multiple visual directions, aesthetics, and narratives at scale before committing to final outputs.\n\nBelow are selected examples of my recent AI-driven Reimagining of still to motion editorial compositions, DM for my service offering for brands, publications, and creatives looking to evolve their visual language.\n\nThis is just the beginning.\n\n#FashionInnovation #AIInFashion #CreativeDirection #DigitalFashion #VisualStorytelling #FashionMarketing\n#FashionAI",
                      "source": "LinkedIn",
                      "title": "@Jarred De Kock on LinkedIn",
                      "url": "https://www.linkedin.com/posts/activity-7446301966986665986-_a6w?utm_source=social_share_send&utm_medium=member_desktop_web&rcm=ACoAAGaiQmMBKfdufODH2pNGp0lL6bF8EztcFWs",
                      "urn": "urn:li:activity:7446301966986665986",
                      "video": {
                        "duration": 97766,
                        "thumbnail": "https://media.licdn.com/dms/image/v2/D4D05AQG_ltb_jCr4mw/videocover-high/B4DZ1aUHIqIkBY-/0/1775336718154?e=1775944800&v=beta&t=btkqBHKj0DI83zkDQVATVPY18qfbESKM8xHYZUNXM74"
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/person": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinPersonDetails",
        "summary": "LinkedIn Person Profile",
        "description": "Get a LinkedIn person's profile: name, headline, about, location, follower and connection counts, open-to-work status, and the experience, education, skills, certifications, languages, honors, publications, volunteering, and projects sections. Pass a profile URL, public slug, or member URN.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-person"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "LinkedIn profile URL, public slug, or member URN (e.g., https://www.linkedin.com/in/reidhoffman, reidhoffman, or ACoAAAAABL0B3SGhqeNX998wiOuk_8hYA6ojLwg). Max 500 characters.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "reidhoffman"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedinPersonDetailsResponse"
                },
                "example": {
                  "about": "My current priority is investing in and building with AI to benefit humanity.  Recently, I've co-founded Inflection.AI and ManasAI.co.  \n\nI am active in all facets of the consumer internet and software industries. My focus spans product development, innovation, business strategy, and finance. My expertise also extends to general management, operations, business development, talent management, and marketing. I have founding and investing experience with seed-stage to massive scale companies such as LinkedIn, OpenAI, PayPal, Airbnb, Facebook/Meta, Mozilla, and Zynga, as well as world-scale companies like Microsoft.\n\nMy specialties include general management, product development, strategy, negotiation, financing, deal structuring, international business, marketing, brand development and management, business development, public relations, press strategy, payments infrastructure, financial services, mergers and acquisitions, startups, software development, operations centers, board management, and investing.",
                  "certifications": [],
                  "connections": 4324,
                  "country_code": "US",
                  "cover_image": "https://media.licdn.com/dms/image/v2/D4D16AQFCaHSy0bruvQ/profile-displaybackgroundimage-shrink_350_1400/B4DZ_Y6OsjI4AU-/0/1786050571454?e=1792627200&v=beta&t=KglRjOlwadeoq69TAPinbFgZm8qkRhqd60iNkhVWuQs",
                  "domain": "linkedin.com",
                  "education": [
                    {
                      "degree": "Honorary Doctorate",
                      "description": "",
                      "end_date": {
                        "month": 5,
                        "year": 2024
                      },
                      "field_of_study": "Human Sciences",
                      "school": "Università degli Studi di Perugia",
                      "school_id": "2052604",
                      "school_logo": "https://media.licdn.com/dms/image/v2/C4D0BAQGkG0u34ews4A/company-logo_400_400/company-logo_400_400/0/1630557917735/universit_degli_studi_di_perugia_logo?e=1792627200&v=beta&t=U_XzDzhtGBfFViGKVKb_Iwl9KLASxgD4tLSMgOG_q10",
                      "school_url": "https://www.linkedin.com/school/universit-degli-studi-di-perugia/",
                      "start_date": {
                        "month": 5,
                        "year": 2024
                      }
                    },
                    {
                      "degree": "Honorary Doctor",
                      "description": "The University of Oulu is an international science university which creates new knowledge, well-being and innovations for the future through research and education. The University of Oulu, founded in 1958, is one of the biggest and most multidisciplinary universities in Finland.",
                      "end_date": {
                        "month": null,
                        "year": 2020
                      },
                      "field_of_study": "Faculty of Information Technology and Electrical Engineering",
                      "school": "University of Oulu",
                      "school_id": "166661",
                      "school_logo": "https://media.licdn.com/dms/image/v2/D4E0BAQHu0BWtQX586A/company-logo_400_400/company-logo_400_400/0/1691396242467/university_of_oulu_logo?e=1792627200&v=beta&t=1BVcxNj7J8DYSmbqyPYTR9UiNlZSt1nKIiXp0FNjBq4",
                      "school_url": "https://www.linkedin.com/school/university-of-oulu/",
                      "start_date": {
                        "month": null,
                        "year": 2020
                      }
                    }
                  ],
                  "experience": [
                    {
                      "company": "Manas AI",
                      "company_id": "106067845",
                      "company_logo": "https://media.licdn.com/dms/image/v2/D4D0BAQHehetLvQnNEg/company-logo_400_400/B4DZl29VWTIYAc-/0/1758637414313?e=1792627200&v=beta&t=FX55UgNxW5eKxSqFq8rtXk5mqFQAerLXnyRjSrsCx-w",
                      "company_url": "https://www.linkedin.com/company/manas-ai",
                      "description": "Manas AI leverages proprietary AI, generative computational chemistry, and best in class biology to cut the timeline and costs of traditional therapeutic discovery and transform the treatment of cancer and rare disease.\n\nWhile we're still in the early stages of contemporary AI development, initiatives like Manas AI show how close we already are to advances that can profoundly change the world. Success in our quest will give thousands of oncologists around the world new therapeutics to combat diseases that have shaped human existence since before recorded history, constraining human possibilities and causing immense suffering and loss. The future of medicine has never held more promise.",
                      "employment_type": "",
                      "end_date": null,
                      "is_current": true,
                      "location": "",
                      "start_date": {
                        "month": 1,
                        "year": 2025
                      },
                      "title": "Co-Founder, Executive Board Chair"
                    },
                    {
                      "company": "Inflection AI",
                      "company_id": "79994924",
                      "company_logo": "https://media.licdn.com/dms/image/v2/D560BAQHiRCagrbmSxw/company-logo_100_100/B56Z.VJKP2IoAI-/0/1784913634701/inflectionai_logo?e=1792627200&v=beta&t=nQ9rkKugHYFfrtfcb5I99iMRMaSV9T0KiJUh_y_PdpQ",
                      "company_url": "https://www.linkedin.com/company/inflectionai",
                      "description": "Inflection AI is a public benefit corporation leveraging our world-class large language model to build the first AI platform focused on the needs of the enterprise. \n\nI helped start Inflection AI to further a vision where artificial intelligence empowers individuals and amplifies human capabilities. In March 2024, an expanded team of kind, innovative, and collaborative individuals grew Inflection’s scope to focus on building enterprise AI solutions.",
                      "employment_type": "",
                      "end_date": null,
                      "is_current": true,
                      "location": "Palo Alto, California, United States",
                      "start_date": {
                        "month": 3,
                        "year": 2022
                      },
                      "title": "Co-Founder, Board Member"
                    }
                  ],
                  "first_name": "Reid",
                  "followers": 2795262,
                  "full_name": "Reid Hoffman",
                  "headline": "Co-Founder, LinkedIn, Manas AI & Inflection AI. Founding Team, PayPal.  Author of Superagency.  Podcaster of Possible and Masters of Scale.",
                  "honors": [
                    {
                      "description": "Sigillum Magnum is a silver-bronze medal realized in 1888. The medal is composed by some single medals of the Corporations which were forming the Bolognese Study.  The University of Bologna is the oldest Western university in the world, founded in 1088.",
                      "issued_date": {
                        "month": 9,
                        "year": 2023
                      },
                      "issuer": "University of Bologna",
                      "title": "Sigillum Magnum"
                    },
                    {
                      "description": "Founded during the American Revolution by John Adams, James Bowdoin, John Hancock, and other prominent contributors to the establishment of the new nation, the Academy has a rich intellectual history spanning more than 230 years.\n\nSince its founding in 1780, the Academy has provided a forum for scholars, members of the learned professions, and government and business leaders to work together on behalf of the democratic interests of the republic. As stated in the Academy’s Charter, the “end and design of the institution is...to cultivate every art and science which may tend to advance the interest, honor, dignity, and happiness of a free, independent, and virtuous people.”",
                      "issued_date": {
                        "month": 4,
                        "year": 2018
                      },
                      "issuer": "Academy of Arts and Sciences",
                      "title": "Member, Academy of Arts and Sciences"
                    }
                  ],
                  "is_creator": true,
                  "is_premium": true,
                  "languages": [],
                  "last_name": "Hoffman",
                  "location": "United States",
                  "open_to_work": false,
                  "profile_picture": "https://media.licdn.com/dms/image/v2/D5603AQHW7wKzPb3DAg/profile-displayphoto-shrink_800_800/profile-displayphoto-shrink_800_800/0/1718216236351?e=1792627200&v=beta&t=g-s9yFn1DsgD2SnGaU3wjqKWaOsQhMbnctHG3x0siXo",
                  "projects": [],
                  "public_identifier": "reidhoffman",
                  "publications": [
                    {
                      "published_date": {
                        "month": 1,
                        "year": 2025
                      },
                      "publisher": "Authors Equity",
                      "title": "Superagency",
                      "url": "https://www.superagency.ai/"
                    },
                    {
                      "published_date": {
                        "month": 3,
                        "year": 2023
                      },
                      "publisher": "Amazon",
                      "title": "Impromptu",
                      "url": "https://www.amazon.com/Impromptu-Amplifying-Our-Humanity-Through/dp/B0BYLBPW8B/"
                    }
                  ],
                  "skills": [
                    {
                      "endorsements": 2,
                      "name": "CEOs"
                    },
                    {
                      "endorsements": 2,
                      "name": "Founding"
                    }
                  ],
                  "source": "LinkedIn",
                  "url": "https://www.linkedin.com/in/reidhoffman",
                  "urn": "ACoAAAAABL0B3SGhqeNX998wiOuk_8hYA6ojLwg",
                  "volunteering": [
                    {
                      "end_date": null,
                      "organization": "Opportunity@Work",
                      "role": "Chair, Board of Directors",
                      "start_date": {
                        "month": 6,
                        "year": 2016
                      }
                    },
                    {
                      "end_date": null,
                      "organization": "Arc Institute",
                      "role": "Board Member",
                      "start_date": {
                        "month": 12,
                        "year": 2021
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Profile not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/person/posts": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinPersonPosts",
        "summary": "LinkedIn Person Posts",
        "description": "Get the recent posts authored by a LinkedIn person by profile URL or public slug. Returns post content, engagement metrics (likes, comments, shares, reaction breakdowns), author info, images, videos, and articles.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-person-posts"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "LinkedIn profile URL or public slug, e.g. https://www.linkedin.com/in/williamhgates or williamhgates (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "williamhgates"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-30 (default: 1). 20 posts per page, so up to about 600 of the person's most recent posts. Values below 1 are treated as 1; a page above 30 returns 400.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 30,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedinPersonPostsResponse"
                },
                "example": {
                  "count": 20,
                  "page": 1,
                  "posts": [
                    {
                      "article": null,
                      "author": "Bill Gates",
                      "author_description": "Chair, Gates Foundation and Founder, Breakthrough Energy",
                      "author_image": "https://media.licdn.com/dms/image/...",
                      "author_url": "https://www.linkedin.com/in/williamhgates",
                      "comments": 368,
                      "date": "2026-06-21 18:36:16",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": false,
                      "likes": 3706,
                      "reactions": {
                        "appreciation": 145,
                        "empathy": 168,
                        "like": 3290
                      },
                      "shares": 28,
                      "source": "LinkedIn",
                      "text": "I got involved in global health back in 1997...",
                      "url": "https://www.linkedin.com/posts/williamhgates_activity-7474530647273934848-VLxg",
                      "urn": "urn:li:activity:7474530647273934848",
                      "video": {
                        "duration": 83600,
                        "thumbnail": "https://media.licdn.com/dms/image/..."
                      }
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/post": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinPostDetails",
        "summary": "LinkedIn Post Details",
        "description": "Get detailed information about a specific LinkedIn post including full content, likes, comments, shares, reactions, embedded links, images, and author details. Pass the full post URL.\n\n**Price:** $0.002 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-post"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Full URL of the LinkedIn post (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.linkedin.com/feed/update/urn:li:activity:7219434359085252608"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to the post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). If the post cannot be scored, `sentiment` is null.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedinPostDetailsResponse"
                },
                "example": {
                  "author": "Sina S. Amiri",
                  "author_description": "Advises Dental Practice Owners, DSOs, Dentistry Groups, Multi-Site Operators & Private Equity Firms • Artificial Intelligence Technology, Machine Learning & Healthcare Revenue Cycle Management Software Innovation",
                  "author_image": "https://media.licdn.com/dms/image/v2/D4E03AQFLMg72ZWQUlA/profile-displayphoto-scale_400_400/B4EZnwS7v5JAAg-/0/1760673120153?e=1776902400&v=beta&t=f3yYR9IcpdRvn4b53a3mfZAb3fWkYANp5GMI-ZHL-Y4",
                  "author_url": "https://www.linkedin.com/in/betterdentistry?miniProfileUrn=urn%3Ali%3Afsd_profile%3AACoAAAC_snQBekHviVMycAzT65btL8X0iojQ3iw",
                  "comments": 0,
                  "date": "2026-04-04 21:13:18",
                  "domain": "linkedin.com",
                  "images": [],
                  "is_repost": false,
                  "likes": 5,
                  "links": [],
                  "reactions": {
                    "interest": 1,
                    "like": 4
                  },
                  "shares": 0,
                  "source": "LinkedIn",
                  "text": "In many practices and DSOs, artificial intelligence isn’t fixing bad processes.\n\nIt’s scaling unnecessary complexity.\n\nAnd when complexity scales, inefficiencies don’t just persist.\n\nThey compound into operational drag and financial leakage.\n\nFaster.\n\nLarger.\n\nHarder to unwind.\n\nOrganizations should simplify before they automate, and eliminate before they optimize.\n\nBecause if AI is doing the work, you should first ask why the work exists at all.\n\n#Dentistry #ArtificialIntelligence #Technology #Operations #Strategy",
                  "url": "https://www.linkedin.com/feed/update/urn:li:activity:7446303912871071744",
                  "urn": "urn:li:activity:7446303912871071744"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Post not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/companies": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "searchLinkedinCompanies",
        "summary": "Search LinkedIn Companies",
        "description": "Search for LinkedIn company pages by keyword. Returns company name, company ID, description, a subtitle (industry and location), follower count, logo, and page URL. Returns 10 results per page.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-companies"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "AI"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (1-100). Each page returns 10 results. Values below 1 are treated as 1; a page above 100 returns 400.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchLinkedinCompaniesResponse"
                },
                "example": {
                  "companies": [
                    {
                      "company_id": "24468",
                      "description": "Your Go-To Hub for Everything Artificial Intelligence",
                      "followers": "31K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQGMoDjcPW6-Aw/company-logo_100_100/company-logo_100_100/0/1735190390219/venture_capitalists_logo?e=1776902400&v=beta&t=0C6Sij9VgF_2ucCgAG-mTrEssocLHNFEX74qzwqi11g",
                      "name": "Artificial Intelligence",
                      "subtitle": "Technology, Information and Internet • New York",
                      "url": "https://www.linkedin.com/company/artificial-intelligence-facts/"
                    },
                    {
                      "company_id": "13605190",
                      "description": "Artificial Intelligence",
                      "followers": "26K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D560BAQHjrBrP2pygQA/company-logo_100_100/company-logo_100_100/0/1719948400529?e=1776902400&v=beta&t=eCqN7RR-IaAlwKEHBucdKh18czKQsNAXE06v5dFk3y0",
                      "name": "Artificial Intelligence",
                      "subtitle": "IT Services and IT Consulting • Colorado Springs, Colorado",
                      "url": "https://www.linkedin.com/company/self-employed-ai/"
                    },
                    {
                      "company_id": "107211336",
                      "description": "Welcome to my AI page, where I share insights and resources related to the dynamic and rapidly evolving world of artificial intelligence. With a background in data analytics and a deep interest in leveraging data-driven approaches, I explore how AI is transforming industries and reshaping the way we approach problem...",
                      "followers": "14K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQHYaB6zBIjiEQ/company-logo_100_100/B4DZaPkB6zGwAU-/0/1746165311082/ai_gen_ai_logo?e=1776902400&v=beta&t=aZeiHNt-0twXJWxkJMnA8IXBxXw4T6SlJBUzAfDxBlU",
                      "name": "Artificial Intelligence",
                      "subtitle": "Technology, Information and Internet • Sunnyvale, California",
                      "url": "https://www.linkedin.com/company/ai-gen-ai/"
                    },
                    {
                      "company_id": "70880919",
                      "description": "Enabling Digital Transformation Across Industries • Specialties: Artificial Intelligence",
                      "followers": "60K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/C4D0BAQF3IXjtakuIkw/company-logo_100_100/company-logo_100_100/0/1671097257034/aiglobalco_logo?e=1776902400&v=beta&t=cPBunOcxz76_I0pWgUDErQ8pwhZsFOStQOhjFejFEJY",
                      "name": "Artificial Intelligence Global Company",
                      "subtitle": "Technology, Information and Internet •  Al Khobar",
                      "url": "https://www.linkedin.com/company/aiglobalco/"
                    },
                    {
                      "company_id": "15191668",
                      "description": "Artificial Intelligence Board of America (ARTiBA), established in 2015, is the world’s first global standards authority for Artificial Intelligence...",
                      "followers": "37K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQFhumg8_ybglQ/company-logo_100_100/B4DZracuowIEAQ-/0/1764601558548?e=1776902400&v=beta&t=njJy4AoIktmG4b61DQbzPh_Sd0YW0khrd9NVJzkR_kY",
                      "name": "Artificial Intelligence Board of America",
                      "subtitle": "Education Management • Austin, Texas",
                      "url": "https://www.linkedin.com/company/artiba/"
                    },
                    {
                      "company_id": "90356320",
                      "description": "The Artificial Intelligence (AI) Community of Pakistan aims to work with a wide range of individuals and organizations from academia, industry, and government.  However, in general, the mission of the AI community may include: - To advance the field of AI through research and development, including developing new...",
                      "followers": "24K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQEaN6gLrL0EDQ/company-logo_100_100/company-logo_100_100/0/1688329820829?e=1776902400&v=beta&t=PY27wdJDSst9TEdxSReDeqTT5A513wXHYATSLfoxRoc",
                      "name": "Artificial Intelligence Community of Pakistan",
                      "subtitle": "Technology, Information and Media • Lahore, Punjab",
                      "url": "https://www.linkedin.com/company/aicommunitypakistan/"
                    },
                    {
                      "company_id": "98435523",
                      "description": "Artificial Intelligence News: Helping You Stay Ahead in AI Trends",
                      "followers": "14K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQEVIqfF7v6zuQ/company-logo_100_100/company-logo_100_100/0/1695377647320/artificial_intelligence_newss_logo?e=1776902400&v=beta&t=TbHKZRMIdz23UU-FtckeYpQQj-dTePsP5in2xU8PVi8",
                      "name": "Artificial Intelligence News",
                      "subtitle": "Internet Publishing • London, England",
                      "url": "https://www.linkedin.com/company/artificial-intelligence-newss/"
                    },
                    {
                      "company_id": "86826924",
                      "description": "Daily curated insights and news about AI, new AI tools, and get monthly deep-dives into the sector.",
                      "followers": "15K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/C560BAQHILozYTO5ypQ/company-logo_100_100/company-logo_100_100/0/1678721534008/business_a2z_logo?e=1776902400&v=beta&t=jYiFG5bvpigP88p6aWfnl0EeDOUbn2qVwFDIw4S8eFA",
                      "name": "Artificial Intelligence A2Z",
                      "subtitle": "Business Content • San Francisco, California",
                      "url": "https://www.linkedin.com/company/ai-a2z/"
                    },
                    {
                      "company_id": "93574406",
                      "description": "Disclaimer: you might learn a thing or two about AI.",
                      "followers": "13K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQEUQgd2FdqXgQ/company-logo_100_100/company-logo_100_100/0/1687513707567/prompts_daily_logo?e=1776902400&v=beta&t=ElH-JXTrc0O-R1mVwg1lt6lam19vElXQOpiEEAWBBMU",
                      "name": "Artificial Intelligence | Stay Ahead",
                      "subtitle": "Media Production • New York, NY",
                      "url": "https://www.linkedin.com/company/yulin/"
                    },
                    {
                      "company_id": "28572513",
                      "description": "Synaptic is an innovative artificial intelligence company. Founded in 2020, Synaptic's mission includes the development of deep learning technologies...",
                      "followers": "4K followers",
                      "logo": "https://media.licdn.com/dms/image/v2/C4D0BAQEgHwK86u1dbQ/company-logo_100_100/company-logo_100_100/0/1630461609212/synaptic_artificial_intelligence_logo?e=1776902400&v=beta&t=jLQJwo7Dfm3KiRtvCTE1fMPgkZgc3cFo8xKuJC6Wfak",
                      "name": "Synaptic Artificial Intelligence",
                      "subtitle": "Advertising Services • Palo Alto, California",
                      "url": "https://www.linkedin.com/company/synaptic-artificial-intelligence/"
                    }
                  ],
                  "count": 10,
                  "page": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/company": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinCompanyDetails",
        "summary": "LinkedIn Company Details",
        "description": "Get detailed information about a LinkedIn company page including description, follower count, industry, headquarters, employee count, founded year, specialities, locations, similar companies, and showcase pages. Pass the full company page URL.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-company"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Full URL of the LinkedIn company page (e.g., https://www.linkedin.com/company/google). Max 500 characters.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.linkedin.com/company/visualsoft-uk-ltd"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedinCompanyDetailsResponse"
                },
                "example": {
                  "call_to_action": {
                    "text": "Visit website",
                    "url": "https://goo.gle/3DLEokh"
                  },
                  "company_id": 1441,
                  "cover_image": "https://media.licdn.com/dms/image/v2/D4E3DAQFmlG0pw29-sA/image-scale_191_1128/B4EZw1KzqwI0Ag-/0/1770418552101/google_cover?e=1775944800&v=beta&t=JGL-7elNtkEYBDkfyn7kC8MDAWR7fv9ubeur9jVW9vY",
                  "description": "A problem isn't truly solved until it's solved for all. Googlers build products that help create opportunities for everyone, whether down the street or across the globe. Bring your insight, imagination and a healthy disregard for the impossible. Bring everything that makes you unique. Together, we can build for everyone.\n\nCheck out our career opportunities at goo.gle/3DLEokh",
                  "domain": "linkedin.com",
                  "employee_range": "10001-None",
                  "employees": 339000,
                  "followers": 41339226,
                  "founded_year": null,
                  "hashtag": "#google",
                  "headquarters": {
                    "address": "1600 Amphitheatre Parkway",
                    "city": "Mountain View",
                    "country": "US",
                    "postal_code": "94043",
                    "region": "CA"
                  },
                  "industry": "Software Development",
                  "locations": [
                    {
                      "address": "St Giles High Street",
                      "address_2": null,
                      "city": "London",
                      "country": "GB",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "WC2H 8AG",
                      "region": "England"
                    },
                    {
                      "address": "Barrow Street",
                      "address_2": null,
                      "city": "Dublin",
                      "country": "IE",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": null,
                      "region": "County Dublin"
                    },
                    {
                      "address": "Carrera 11A 94-45",
                      "address_2": null,
                      "city": "Bogota",
                      "country": "CO",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "110221",
                      "region": "Bogota, D.C."
                    },
                    {
                      "address": "3 Pasir Panjang Rd",
                      "address_2": null,
                      "city": "Singapore",
                      "country": "SG",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "118484",
                      "region": "Singapore"
                    },
                    {
                      "address": "Montes Urales",
                      "address_2": null,
                      "city": "Miguel Hidalgo",
                      "country": "MX",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "11000",
                      "region": "CDMX"
                    },
                    {
                      "address": "Yigal Allon 98",
                      "address_2": null,
                      "city": "Tel Aviv-Yafo",
                      "country": "IL",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "67891",
                      "region": "Tel Aviv"
                    },
                    {
                      "address": "111 Richmond St W",
                      "address_2": null,
                      "city": "Toronto",
                      "country": "CA",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "M5H 2G4",
                      "region": "ON"
                    },
                    {
                      "address": "51 Breithaupt St",
                      "address_2": null,
                      "city": "Kitchener",
                      "country": "CA",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "N2H 5G5",
                      "region": "ON"
                    },
                    {
                      "address": "Avenida Costanera Sur",
                      "address_2": null,
                      "city": "Las Condes",
                      "country": "CL",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "7550000",
                      "region": "Santiago Metropolitan"
                    },
                    {
                      "address": "Via Federico Confalonieri, 4",
                      "address_2": null,
                      "city": "Milan",
                      "country": "IT",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "20124",
                      "region": "Lomb."
                    },
                    {
                      "address": "5th Ave",
                      "address_2": null,
                      "city": "Taguig City",
                      "country": "PH",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": null,
                      "region": "National Capital Region"
                    },
                    {
                      "address": "48 Pirrama Rd",
                      "address_2": null,
                      "city": "Sydney",
                      "country": "AU",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "2009",
                      "region": "NSW"
                    },
                    {
                      "address": "90 Collins St",
                      "address_2": null,
                      "city": "Melbourne",
                      "country": "AU",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "3000",
                      "region": "VIC"
                    },
                    {
                      "address": "Brandschenkestrasse 110",
                      "address_2": null,
                      "city": "Zurich",
                      "country": "CH",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "8002",
                      "region": "ZH"
                    },
                    {
                      "address": "8 Rue de Londres",
                      "address_2": null,
                      "city": "Paris",
                      "country": "FR",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "75009",
                      "region": "IdF"
                    },
                    {
                      "address": "Avenida Alicia Moreau de Justo 350",
                      "address_2": null,
                      "city": "Buenos Aires City",
                      "country": "AR",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "1107",
                      "region": "Buenos Aires Autonomous City"
                    },
                    {
                      "address": "ABC-Strasse 19",
                      "address_2": null,
                      "city": "Hamburg",
                      "country": "DE",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "20354",
                      "region": "HH"
                    },
                    {
                      "address": "Unter den Linden 14",
                      "address_2": null,
                      "city": "Berlin",
                      "country": "DE",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "10117",
                      "region": "BE"
                    },
                    {
                      "address": "Erika-Mann-Strasse 33",
                      "address_2": null,
                      "city": "Munich",
                      "country": "DE",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "80636",
                      "region": "BY"
                    },
                    {
                      "address": "ulica Emilii Plater 53",
                      "address_2": null,
                      "city": "Warsaw",
                      "country": "PL",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "00-125",
                      "region": "MA"
                    },
                    {
                      "address": "Claude Debussylaan 34",
                      "address_2": null,
                      "city": "Amsterdam",
                      "country": "NL",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "1082 MD",
                      "region": "North Holland"
                    },
                    {
                      "address": "Plaza Pablo Ruiz Picasso",
                      "address_2": null,
                      "city": "Madrid",
                      "country": "ES",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "28046",
                      "region": "Community of Madrid"
                    },
                    {
                      "address": "10 10th St NE",
                      "address_2": null,
                      "city": "Atlanta",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "30309",
                      "region": "GA"
                    },
                    {
                      "address": "355 Main St",
                      "address_2": null,
                      "city": "Cambridge",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "02142",
                      "region": "MA"
                    },
                    {
                      "address": "1600 Amphitheatre Parkway",
                      "address_2": null,
                      "city": "Mountain View",
                      "country": "US",
                      "description": null,
                      "is_headquarters": true,
                      "postal_code": "94043",
                      "region": "CA"
                    },
                    {
                      "address": "9606 N Mopac Expy",
                      "address_2": null,
                      "city": "Austin",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "78759",
                      "region": "TX"
                    },
                    {
                      "address": "19510 Jamboree Rd",
                      "address_2": null,
                      "city": "Irvine",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "92612",
                      "region": "CA"
                    },
                    {
                      "address": "320 N Morgan St",
                      "address_2": null,
                      "city": "Chicago",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "60607",
                      "region": "IL"
                    },
                    {
                      "address": "2590 Pearl St",
                      "address_2": null,
                      "city": "Boulder",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "80302",
                      "region": "CO"
                    },
                    {
                      "address": "6175 Main St",
                      "address_2": null,
                      "city": "Frisco",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "75034",
                      "region": "TX"
                    },
                    {
                      "address": "2300 Traverwood Dr",
                      "address_2": null,
                      "city": "Ann Arbor",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "48105",
                      "region": "MI"
                    },
                    {
                      "address": "25 Massachusetts Ave NW",
                      "address_2": null,
                      "city": "Washington",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "20001",
                      "region": "DC"
                    },
                    {
                      "address": "777 6th St S",
                      "address_2": null,
                      "city": "Kirkland",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "98033",
                      "region": "WA"
                    },
                    {
                      "address": "111 8th Ave",
                      "address_2": null,
                      "city": "New York",
                      "country": "US",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "10011",
                      "region": "NY"
                    },
                    {
                      "address": "Kungsbron 2",
                      "address_2": null,
                      "city": "Stockholm",
                      "country": "SE",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "111 22",
                      "region": "Stockholm County"
                    },
                    {
                      "address": "Avenida Brigadeiro Faria Lima, 3477",
                      "address_2": null,
                      "city": "Sao Paulo",
                      "country": "BR",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "04538-133",
                      "region": "SP"
                    },
                    {
                      "address": "2 Matheson St",
                      "address_2": null,
                      "city": "Wan Chai",
                      "country": "HK",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": null,
                      "region": "Hong Kong"
                    },
                    {
                      "address": "13",
                      "address_2": null,
                      "city": "Hyderabad",
                      "country": "IN",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "500084",
                      "region": "TS"
                    },
                    {
                      "address": "3 Bandra Kurla Complex Road",
                      "address_2": null,
                      "city": "Mumbai",
                      "country": "IN",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "400051",
                      "region": "Maharashtra"
                    },
                    {
                      "address": "Old Madras Road",
                      "address_2": null,
                      "city": "Bengaluru",
                      "country": "IN",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "560016",
                      "region": "Karnataka"
                    },
                    {
                      "address": "15",
                      "address_2": null,
                      "city": "Gurugram",
                      "country": "IN",
                      "description": null,
                      "is_headquarters": false,
                      "postal_code": "122001",
                      "region": "HR"
                    }
                  ],
                  "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                  "name": "Google",
                  "showcases": [
                    {
                      "followers": 33311,
                      "name": "Android Enterprise",
                      "url": "https://www.linkedin.com/showcase/androidenterprise/"
                    },
                    {
                      "followers": 67576,
                      "name": "Google Play business community",
                      "url": "https://www.linkedin.com/showcase/googleplaybiz/"
                    },
                    {
                      "followers": 53246,
                      "name": "Android",
                      "url": "https://www.linkedin.com/showcase/android_by_google/"
                    },
                    {
                      "followers": 957102,
                      "name": "Think with Google",
                      "url": "https://www.linkedin.com/showcase/think-with-google/"
                    },
                    {
                      "followers": 12910,
                      "name": "Google Learning & Education",
                      "url": "https://www.linkedin.com/showcase/google-learning-edu/"
                    },
                    {
                      "followers": 3874644,
                      "name": "Google for Developers",
                      "url": "https://www.linkedin.com/showcase/googledevelopers/"
                    },
                    {
                      "followers": 196565,
                      "name": "Grow with Google",
                      "url": "https://www.linkedin.com/showcase/grow-with-google/"
                    },
                    {
                      "followers": 26100,
                      "name": "Google Public Policy",
                      "url": "https://www.linkedin.com/showcase/google-public-policy/"
                    },
                    {
                      "followers": 122270,
                      "name": "Google for Health",
                      "url": "https://www.linkedin.com/showcase/google-for-health/"
                    },
                    {
                      "followers": 5427,
                      "name": "Google Italia",
                      "url": "https://www.linkedin.com/showcase/google-italia/"
                    },
                    {
                      "followers": 20444,
                      "name": "Google Developers North America",
                      "url": "https://www.linkedin.com/showcase/google-developers-north-america/"
                    },
                    {
                      "followers": 19691,
                      "name": "Google Search Liaison",
                      "url": "https://www.linkedin.com/showcase/google-search-liaison/"
                    },
                    {
                      "followers": 127405,
                      "name": "Google Small Business",
                      "url": "https://www.linkedin.com/showcase/google-small-business/"
                    },
                    {
                      "followers": 764247,
                      "name": "Google Workspace",
                      "url": "https://www.linkedin.com/showcase/googleworkspace/"
                    },
                    {
                      "followers": 128254,
                      "name": "Google Search Central",
                      "url": "https://www.linkedin.com/showcase/googlesearchcentral/"
                    },
                    {
                      "followers": 111655,
                      "name": "TensorFlow",
                      "url": "https://www.linkedin.com/showcase/tensorflowdev/"
                    },
                    {
                      "followers": 18982,
                      "name": "Google Public Sector",
                      "url": "https://www.linkedin.com/showcase/google-public-sector/"
                    },
                    {
                      "followers": 3422,
                      "name": "Firebase",
                      "url": "https://www.linkedin.com/showcase/firebase-hold/"
                    },
                    {
                      "followers": 918553,
                      "name": "Google Ads",
                      "url": "https://www.linkedin.com/showcase/google-ads-/"
                    },
                    {
                      "followers": 577199,
                      "name": "Google Analytics",
                      "url": "https://www.linkedin.com/showcase/google-analytics/"
                    },
                    {
                      "followers": 3208720,
                      "name": "Google Cloud",
                      "url": "https://www.linkedin.com/showcase/google-cloud/"
                    },
                    {
                      "followers": 892,
                      "name": "Google for Business AUNZ",
                      "url": "https://www.linkedin.com/showcase/google-for-business-aunz/"
                    },
                    {
                      "followers": 22587,
                      "name": "Google Maps Platform",
                      "url": "https://www.linkedin.com/showcase/googlemapsplatform/"
                    },
                    {
                      "followers": 6071,
                      "name": "Google Polska",
                      "url": "https://www.linkedin.com/showcase/google-polska/"
                    },
                    {
                      "followers": 380987,
                      "name": "Google Marketing Platform",
                      "url": "https://www.linkedin.com/showcase/googlemarketingplatform/"
                    },
                    {
                      "followers": 30817,
                      "name": "Google for Business India",
                      "url": "https://www.linkedin.com/showcase/google-for-biz-in/"
                    },
                    {
                      "followers": 46,
                      "name": "RCS for Business",
                      "url": "https://www.linkedin.com/showcase/rcs-for-business/"
                    },
                    {
                      "followers": 545209,
                      "name": "Google Developer Groups (GDG)",
                      "url": "https://www.linkedin.com/showcase/google-developer-groups/"
                    },
                    {
                      "followers": 416683,
                      "name": "Google Research",
                      "url": "https://www.linkedin.com/showcase/googleresearch/"
                    },
                    {
                      "followers": 152891,
                      "name": "Android Developers",
                      "url": "https://www.linkedin.com/showcase/androiddev/"
                    },
                    {
                      "followers": 71813,
                      "name": "Google Partners",
                      "url": "https://www.linkedin.com/showcase/google-partners/"
                    },
                    {
                      "followers": 137194,
                      "name": "Google Cloud Partners",
                      "url": "https://www.linkedin.com/showcase/google-cloud-partners/"
                    },
                    {
                      "followers": 75886,
                      "name": "re:Work with Google",
                      "url": "https://www.linkedin.com/showcase/rework-with-google/"
                    },
                    {
                      "followers": 35557,
                      "name": "Google Antigravity",
                      "url": "https://www.linkedin.com/showcase/google-antigravity/"
                    },
                    {
                      "followers": 19052,
                      "name": "Google Nest Pro",
                      "url": "https://www.linkedin.com/showcase/google-nest/"
                    },
                    {
                      "followers": 31632,
                      "name": "Google User Experience Research",
                      "url": "https://www.linkedin.com/showcase/google-user-research./"
                    },
                    {
                      "followers": 68319,
                      "name": "Google News Initiative",
                      "url": "https://www.linkedin.com/showcase/google-news-initiative/"
                    },
                    {
                      "followers": 61034,
                      "name": "Firebase",
                      "url": "https://www.linkedin.com/showcase/firebase/"
                    },
                    {
                      "followers": 28991,
                      "name": "Google Chrome",
                      "url": "https://www.linkedin.com/showcase/google-chrome/"
                    },
                    {
                      "followers": 150972,
                      "name": "Google AI for Developers",
                      "url": "https://www.linkedin.com/showcase/googleaidevs/"
                    },
                    {
                      "followers": 45972,
                      "name": "Google Pay Developers",
                      "url": "https://www.linkedin.com/showcase/google-pay/"
                    },
                    {
                      "followers": 299429,
                      "name": "Google for Publishers",
                      "url": "https://www.linkedin.com/showcase/google-for-publishers/"
                    },
                    {
                      "followers": 7387,
                      "name": "Google Arabia",
                      "url": "https://www.linkedin.com/showcase/google-arabia/"
                    },
                    {
                      "followers": 123181,
                      "name": "ChromeOS & Chrome Enterprise",
                      "url": "https://www.linkedin.com/showcase/chrome-enterprise/"
                    },
                    {
                      "followers": 56468,
                      "name": "Chrome for Developers",
                      "url": "https://www.linkedin.com/showcase/chrome-for-developers/"
                    },
                    {
                      "followers": 1900,
                      "name": "Google DACH",
                      "url": "https://www.linkedin.com/showcase/google-dach/"
                    },
                    {
                      "followers": 4285,
                      "name": "Flutter",
                      "url": "https://www.linkedin.com/showcase/flutterdev-hold/"
                    },
                    {
                      "followers": 1368,
                      "name": "Google AI Studio",
                      "url": "https://www.linkedin.com/showcase/google-ai-studio/"
                    },
                    {
                      "followers": 107285,
                      "name": "Flutter Dev",
                      "url": "https://www.linkedin.com/showcase/flutterdevofficial/"
                    }
                  ],
                  "similar_companies": [
                    {
                      "followers": 3874644,
                      "industry": "Technology, Information and Internet",
                      "logo": "https://media.licdn.com/dms/image/v2/D560BAQHlzyn1IsVxEw/company-logo_400_400/B56ZqiUJQ7I0AY-/0/1763659781488/googledevelopers_logo?e=1776902400&v=beta&t=Fxl_GUlew72MKmJOozrFlyNcOJGtK3BM0_A42gVTE8Y",
                      "name": "Google for Developers",
                      "url": "https://www.linkedin.com/showcase/googledevelopers/"
                    },
                    {
                      "followers": 1079925,
                      "industry": "Technology, Information and Internet",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQFko-zWIZk_pw/company-logo_100_100/B4EZhiRWKvHgAQ-/0/1753995371543/claude_logo?e=1776902400&v=beta&t=p62AWtHddVhCqKtOYSAlOA0EZzcpdnoz0gLsJcXy_0U",
                      "name": "Claude",
                      "url": "https://www.linkedin.com/showcase/claude/"
                    },
                    {
                      "followers": 157674,
                      "industry": "Non-profit Organizations",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQH0RfGBINXgTw/company-logo_200_200/company-logo_200_200/0/1735206950717/rozgar_organization_logo?e=1776902400&v=beta&t=4l31m7nIOQQPVQgd5yJa4kQPg7UfHV-qKRvBEN7HuS4",
                      "name": "Rozgar (روزگار)",
                      "url": "https://www.linkedin.com/company/rozgar-organization/"
                    },
                    {
                      "followers": 84970,
                      "industry": "Staffing and Recruiting",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQHXosoGc-Uh-g/company-logo_200_200/company-logo_200_200/0/1726398049566/nustplacementoffice_logo?e=1776902400&v=beta&t=xXRrPAb0oiR1D-LUkJBPGBGUX8khys6bOlviu74Wb44",
                      "name": "Nust Placement Office",
                      "url": "https://www.linkedin.com/company/nustplacementoffice/"
                    },
                    {
                      "followers": 51329,
                      "industry": "Education",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQH_Ftr5I9ZDUQ/company-logo_100_100/B4EZfv_IgWHwAQ-/0/1752077996732/national_youth_leadership_program_logo?e=1776902400&v=beta&t=K15Pev2-zPVEr1GGqaXHotr_dT6lkLaMvDZ-wgEbPK8",
                      "name": "National Youth Leadership Programme (NYLP)",
                      "url": "https://www.linkedin.com/company/national-youth-leadership-program/"
                    },
                    {
                      "followers": 6631,
                      "industry": "IT Services and IT Consulting",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQFIFVIxr_EfTA/company-logo_400_400/B4DZhw5edGG8AY-/0/1754240783263?e=1776902400&v=beta&t=G3GtuJA0ywQ8xnkbX2XLDJqwK6L7EKuAaNMPPYL6m28",
                      "name": "Apexcify Technologys",
                      "url": "https://www.linkedin.com/company/apexcifytechnologys/"
                    },
                    {
                      "followers": 605689,
                      "industry": "Outsourcing and Offshoring Consulting",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQE3YsPxxN4J4g/company-logo_200_200/company-logo_200_200/0/1735674295907?e=1776902400&v=beta&t=_uB749TDvbkX9ikw-kMTXbLY-_IZ2WlsQlFAYKQNCew",
                      "name": "ibex. Pakistan",
                      "url": "https://www.linkedin.com/company/ibexpakistan/"
                    },
                    {
                      "followers": 868623,
                      "industry": "Advertising Services",
                      "logo": "https://media.licdn.com/dms/image/v2/C4D0BAQGzKe8sfx6P5Q/company-logo_200_200/company-logo_200_200/0/1630557375164?e=1776902400&v=beta&t=9-qN-ZL-KsIVfwTOV_XrU-LUVQXnYeCi30E_E78Ez4U",
                      "name": "Startup Pakistan",
                      "url": "https://www.linkedin.com/company/startup-pakistan/"
                    },
                    {
                      "followers": 6033732,
                      "industry": "Software Development",
                      "logo": "https://media.licdn.com/dms/image/v2/C560BAQFmuLSyL1nlPA/company-logo_200_200/company-logo_200_200/0/1678231359043/github_logo?e=1776902400&v=beta&t=s3bZ4dClmRMNtnSnfI2S7p04J6RjXGSUctKtkxcp6to",
                      "name": "GitHub",
                      "url": "https://www.linkedin.com/company/github/"
                    },
                    {
                      "followers": 2308611,
                      "industry": "E-Learning Providers",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQEKiW5_y2z8Pw/company-logo_200_200/company-logo_200_200/0/1730289620977/w3schoolscom_logo?e=1776902400&v=beta&t=dRatM-52MTZGXeZbqijcjn1Kv6AyhS92p57mld3Sx1E",
                      "name": "w3schools.com",
                      "url": "https://www.linkedin.com/company/w3schools.com/"
                    },
                    {
                      "followers": 247498,
                      "industry": "",
                      "logo": "https://media.licdn.com/dms/image/v2/D4E0BAQFYSDq4lsrzPw/company-logo_200_200/company-logo_200_200/0/1727802842332/vs_code_logo?e=1776902400&v=beta&t=4upadSAcRzQXtvNyxz2cJxi2NEJrTyfJnob7x00Kkh4",
                      "name": "Visual Studio Code",
                      "url": "https://www.linkedin.com/showcase/vs-code/"
                    },
                    {
                      "followers": 20580,
                      "industry": "IT Services and IT Consulting",
                      "logo": "https://media.licdn.com/dms/image/v2/D4D0BAQHQDLVg2Af0hw/img-crop_100/B4DZu41TADHwAQ-/0/1768332539471?e=1776902400&v=beta&t=kn4hjqaW-AVqAyOUhs5enMz8ldLTaaNGlyoJqDrp81E",
                      "name": "Arch Technologies",
                      "url": "https://www.linkedin.com/company/archtechnologiespk/"
                    }
                  ],
                  "source": "LinkedIn",
                  "specialities": [
                    "search",
                    "ads",
                    "mobile",
                    "android",
                    "online video",
                    "apps",
                    "machine learning",
                    "virtual reality",
                    "cloud",
                    "hardware",
                    "artificial intelligence",
                    "youtube",
                    "software"
                  ],
                  "tagline": null,
                  "universal_name": "google",
                  "url": "https://www.linkedin.com/company/google/",
                  "website": "https://goo.gle/3DLEokh"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Company not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/company/posts": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinCompanyPosts",
        "summary": "LinkedIn Company Posts",
        "description": "Retrieve recent posts published by a specific LinkedIn company page. Returns post content, engagement metrics (likes, comments, shares, reaction breakdowns), author info, images, videos, and pagination info. Pass the full company page URL.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-company-posts"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "Full URL of the LinkedIn company page (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.linkedin.com/company/visualsoft-uk-ltd"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-50 (default: 1). 10 posts per page; LinkedIn serves a company page's newest 500 posts. Values below 1 are treated as 1; a page above 50 returns 400.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "default": 1,
              "maximum": 50
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedinCompanyPostsResponse"
                },
                "example": {
                  "count": 10,
                  "page": 1,
                  "posts": [
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 66,
                      "date": "2026-04-03 19:51:28",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": false,
                      "likes": 1320,
                      "links": [
                        "https://www.linkedin.com/company/googleworkspace/"
                      ],
                      "reactions": {
                        "appreciation": 13,
                        "empathy": 43,
                        "entertainment": 1,
                        "interest": 41,
                        "like": 1195,
                        "praise": 27
                      },
                      "shares": 38,
                      "source": "LinkedIn",
                      "text": "Last month, we gave Google Maps its biggest upgrade in a decade with Ask Maps and Immersive Navigation. We also made it easier to use Gemini in Google Workspace apps including Docs, Sheets, Slides and Drive. \n\nRead more about our biggest AI moments from March and how our latest updates can help you in your daily life.",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7445920930419195904",
                      "urn": "urn:li:activity:7445920930419195904",
                      "video": null
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 67,
                      "date": "2026-04-02 18:10:18",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": false,
                      "likes": 678,
                      "links": [],
                      "reactions": {
                        "appreciation": 7,
                        "empathy": 30,
                        "interest": 4,
                        "like": 601,
                        "praise": 36
                      },
                      "shares": 65,
                      "source": "LinkedIn",
                      "text": "New AI capabilities, powered by Lyria 3 and Veo 3.1, are starting to roll out to Google Vids. With these new features, you’ll be able to:\n\n✨ Generate high-quality video clips from just a simple prompt or photo\n✨ Score your video with custom music generation in Lyria 3 to perfectly match your vibe\n✨ Create directable, customizable avatars that can interact with uploaded objects and props \n✨ Capture and share your creations easily with tools that connect directly to Chrome and YouTube\n\n…and more. \n\nLearn more about the updates coming to Google Vids → https://goo.gle/3Odsj05",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7445533082427858945",
                      "urn": "urn:li:activity:7445533082427858945",
                      "video": {
                        "duration": 26800,
                        "thumbnail": "https://media.licdn.com/dms/image/v2/D5605AQHVQaAWXwPIYQ/videocover-low/B56Z1PY2eDKMBc-/0/1775153410325?e=1775944800&v=beta&t=P00Lwr88Qoi4IQoWmujZwytmDiZ345nwirC_7OdkUEk"
                      }
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 142,
                      "date": "2026-04-02 16:07:49",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": false,
                      "likes": 2030,
                      "links": [],
                      "reactions": {
                        "appreciation": 13,
                        "empathy": 145,
                        "interest": 31,
                        "like": 1690,
                        "praise": 151
                      },
                      "shares": 311,
                      "source": "LinkedIn",
                      "text": "Today we're introducing Gemma 4 — our newest family of open models.\n\nBuilt from the same world-class research as Gemini 3, this family of models brings breakthrough intelligence directly to your own hardware. From autonomous agents that can plan and navigate apps to local-first coding assistants, Gemma 4 is designed for the most complex reasoning tasks.\n\nHere’s what’s new:\n\n🔹 Longer context — up to a 256K context window to seamlessly process large datasets.\n\n🔹 Four versatile sizes — tailored for everything from mobile phones to developer workstations.\n\n🔹 Native multimodality — built-in support for vision and audio processing.\n\n🔹 Global reach in 140+ languages — natively trained on over 140 languages to help you build for a worldwide audience.\n\n🔹 Apache 2.0 license — a commercially permissive license that gives you total control to build freely and deploy securely.\n\nBy bringing our most advanced proprietary research into an open ecosystem, we’re giving you everything you need to build the next generation of AI — anywhere you want.\n\nYou can start building with Gemma 4 now in Google AI Studio, or download the model weights from Hugging Face, Kaggle, and Ollama.\n\nLearn more → goo.gle/4s9G1yQ",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7445502258181705728",
                      "urn": "urn:li:activity:7445502258181705728",
                      "video": {
                        "duration": 171666,
                        "thumbnail": "https://media.licdn.com/dms/image/v2/D5605AQFM8Yi47O2mFA/feedshare-thumbnail_720_1280/B56Z1O8v6.I8A4-/0/1775146043433?e=1775944800&v=beta&t=pxhsAnirhuNKhU-8UF87Ng1Du6nZf7rgFVvb-SDhtbs"
                      }
                    },
                    {
                      "author": "Neal Mohan",
                      "author_description": "CEO at YouTube",
                      "author_image": "https://media.licdn.com/dms/image/v2/D5603AQHldX9TXvrFdA/profile-displayphoto-shrink_800_800/B56ZOVdKC8HYAc-/0/1733379269184?e=1776902400&v=beta&t=2SKmPRjI5yYni6WUOtICnwHAclLh0hdCa1PkH2rhmNk",
                      "author_url": "https://www.linkedin.com/in/neal-mohan?miniProfileUrn=urn%3Ali%3Afsd_profile%3AACoAAAAKB-gBpB38VafJmh4hcINUmxIfckEqKV0",
                      "comments": 25,
                      "date": "2026-04-02 02:23:49",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": true,
                      "likes": 216,
                      "links": [
                        "https://www.linkedin.com/company/youtube/",
                        "https://www.linkedin.com/company/lincolncenter/",
                        "https://www.linkedin.com/in/ACoAAAAKB-gBpB38VafJmh4hcINUmxIfckEqKV0"
                      ],
                      "reactions": {
                        "appreciation": 3,
                        "empathy": 8,
                        "entertainment": 1,
                        "like": 195,
                        "praise": 9
                      },
                      "shares": 8,
                      "source": "LinkedIn",
                      "text": "📅 Save the date: YouTube's Brandcast is returning to Lincoln Center for the Performing Arts on May 13, including host Trevor Noah, creators Kareem Rahma and Quenlin Blackwell, and other special guests. Learn more from Neal Mohan.",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7445294894622859264",
                      "urn": "urn:li:activity:7445294894622859264",
                      "video": null
                    },
                    {
                      "author": "Kent Walker",
                      "author_description": "President, Global Affairs at Google & Alphabet",
                      "author_image": "https://media.licdn.com/dms/image/v2/C5603AQHp5oMi1Az3JQ/profile-displayphoto-shrink_100_100/profile-displayphoto-shrink_100_100/0/1574461282897?e=1776902400&v=beta&t=mSnK--zwCoCt7Amoq-wvxFRYOJG7GaDO1fJCJOUyP-I",
                      "author_url": "https://www.linkedin.com/in/kent-walker-5963bb198?miniProfileUrn=urn%3Ali%3Afsd_profile%3AACoAAC5VbIIBM7MqyDczwsY_EinOMS5UTJRqITo",
                      "comments": 21,
                      "date": "2026-04-01 20:54:51",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": true,
                      "likes": 219,
                      "links": [
                        "https://www.linkedin.com/in/ACoAAC5VbIIBM7MqyDczwsY_EinOMS5UTJRqITo"
                      ],
                      "reactions": {
                        "appreciation": 1,
                        "empathy": 6,
                        "entertainment": 1,
                        "interest": 4,
                        "like": 198,
                        "praise": 9
                      },
                      "shares": 10,
                      "source": "LinkedIn",
                      "text": "This week at the IAPP Global Summit, Kent Walker shared Google's perspective on the future of privacy, and how we must work together to build a future where our data protection frameworks evolve with our tools. Learn more.",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7445212108176134145",
                      "urn": "urn:li:activity:7445212108176134145",
                      "video": null
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 63,
                      "date": "2026-04-01 14:36:15",
                      "domain": "linkedin.com",
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D5610AQFiVySVUGQdDw/image-shrink_480/B56Z1JeSuLKgAQ-/0/1775054171398?e=1775944800&v=beta&t=HJoCMvmDZJGBWm9Ct1gmWIuggB4WsmaOEEuTp-ajUA0",
                        "https://media.licdn.com/dms/image/v2/D5610AQFB6Md4wTDPhg/image-shrink_20/B56Z1JeS6PJ8As-/0/1775054172301?e=1775944800&v=beta&t=PVS6QEUeyWjheY4EjboSbIN01fdRVVhfsbfsGJ2_ZOY",
                        "https://media.licdn.com/dms/image/v2/D5610AQELjVySyECkcQ/image-shrink_160/B56Z1JeTIqHMAU-/0/1775054173325?e=1775944800&v=beta&t=GmvTb1C9oUu3242ljPEADwUP6m6P4bhRwTjErblpLH8",
                        "https://media.licdn.com/dms/image/v2/D5610AQF9wUWL_L4C0w/image-shrink_20/B56Z1JeTSKJsAs-/0/1775054173615?e=1775944800&v=beta&t=iQnyvi_9RddefkpVlLsKmnkuqagckgKYyWH0GLh6iXA",
                        "https://media.licdn.com/dms/image/v2/D5610AQHw9CduMy4kEQ/image-shrink_800/B56Z1JeTe7HMAg-/0/1775054174434?e=1775944800&v=beta&t=A5zatdLjHb-s06qcJm0SainLv68vDqHMz0RH1nOWYLc"
                      ],
                      "is_repost": false,
                      "likes": 636,
                      "links": [],
                      "reactions": {
                        "appreciation": 5,
                        "empathy": 10,
                        "entertainment": 1,
                        "interest": 3,
                        "like": 588,
                        "praise": 29
                      },
                      "shares": 20,
                      "source": "LinkedIn",
                      "text": "When there was an opportunity to join the Cloud Business Intelligence team as a Looker Sales Lead in a new market, Rakhi made the move from India to our Melbourne Docklands office. \n\nOnce she arrived, she found that the role was about much more than just numbers.  \"Working at Google and representing Looker means more than just solving technical problems; it’s about the people. From critical customer issues to representing our tech at industry events, the energy is non-stop,\" she explains. “The most impactful conversations happen when we move past 'how the tool works' and start discussing how data can reshape a business model.”\n\nTo keep the creative momentum going after those big conversations, Rakhi relies on a workspace designed for spontaneous \"aha!\" moments. \"You’ll find graffiti walls in meeting rooms, quirky Melbournian names for meeting rooms, large open space for events, table tennis/pool, photo booth and plenty of cozy breakout spaces with seating,\" she says about the office.\n\nToday, Rakhi’s impact continues to grow beyond her day-to-day role. She leads initiatives for Women@Australia, and collaborates with Google Research on hearing health accessibility.\n\nInterested in joining Rakhi and the Cloud team? Check out our open roles → https://goo.gle/4mdmcVz",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7445116830572249089",
                      "urn": "urn:li:activity:7445116830572249089",
                      "video": null
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 37,
                      "date": "2026-03-31 21:25:08",
                      "domain": "linkedin.com",
                      "images": [],
                      "is_repost": false,
                      "likes": 736,
                      "links": [
                        "https://www.linkedin.com/company/nasa/"
                      ],
                      "reactions": {
                        "appreciation": 14,
                        "empathy": 45,
                        "entertainment": 4,
                        "interest": 19,
                        "like": 621,
                        "praise": 33
                      },
                      "shares": 77,
                      "source": "LinkedIn",
                      "text": "Next stop: The moon 🚀  We teamed up with NASA - National Aeronautics and Space Administration to answer your top Artemis II searches.",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7444857338110500864",
                      "urn": "urn:li:activity:7444857338110500864",
                      "video": {
                        "duration": 96066,
                        "thumbnail": "https://media.licdn.com/dms/image/v2/D5605AQERZL1t4ZJafA/feedshare-thumbnail_720_1280/B56Z1FxjiIKgA4-/0/1774992114548?e=1775944800&v=beta&t=Dkm2L4E0Pm3_KOu3JNIxjDKsPYTJfXyp8IHYyDo87HM"
                      }
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 112,
                      "date": "2026-03-31 13:18:09",
                      "domain": "linkedin.com",
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D4E22AQHSLBoCyukGNA/feedshare-shrink_800/B4EZ1ECzu0IgAc-/0/1774963088416?e=1776902400&v=beta&t=7oyh1Qlw8kitT9gHbnb9tKFSOf3Ok2r-4GZOVEbRXlY"
                      ],
                      "is_repost": false,
                      "likes": 1273,
                      "links": [],
                      "reactions": {
                        "appreciation": 8,
                        "empathy": 116,
                        "entertainment": 4,
                        "interest": 16,
                        "like": 1020,
                        "praise": 109
                      },
                      "shares": 143,
                      "source": "LinkedIn",
                      "text": "Tag your friend or co-worker who needs to hear this: If you’re a U.S. Google user, you can now change your account username for tools like Gmail, Photos, Drive and more — while keeping your emails, data and account history. Here’s what to know: \n\n1️⃣ You can choose any available @gmail.com username. \n\n2️⃣ Your old username will become an alias, so you won’t lose access to it. You can still sign in and send and receive emails with both usernames. Plus, you can also revert to your old username.\n\n3️⃣ You can choose a new username once a year — up to three times total. \n\nHere’s more information to get started --> https://goo.gle/4v3g1ry",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7444734786956431360",
                      "urn": "urn:li:activity:7444734786956431360",
                      "video": null
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 57,
                      "date": "2026-03-30 14:51:21",
                      "domain": "linkedin.com",
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D5610AQE7E2_VACc0lw/image-shrink_20/B56Z0_OkYYHoAs-/0/1774882277542?e=1775944800&v=beta&t=rcErY8QAAGbujddJXEmoJ4Gj53nWEKdBi9tq9ngsNV8",
                        "https://media.licdn.com/dms/image/v2/D5610AQGaKYOWm-bXDQ/image-shrink_160/B56Z0_OkmFHwAU-/0/1774882278154?e=1775944800&v=beta&t=SP-BfqxwP419M_VIzL5_CViYOkmEw70ZIrsImEIPv3A",
                        "https://media.licdn.com/dms/image/v2/D5610AQFYr3vn17fmLA/image-shrink_800/B56Z0_OkzOJsAg-/0/1774882278881?e=1775944800&v=beta&t=bn3oFhYl87Ko-gbjeBQpA0RnqXze12sLVABdRt0kDJk",
                        "https://media.licdn.com/dms/image/v2/D5610AQEos979LDY5qg/image-shrink_20/B56Z0_Ok_4I8Ao-/0/1774882280030?e=1775944800&v=beta&t=5eexWGZosnSpsDQqE-T8PC7VOqdw84DTolD4NVpPehw"
                      ],
                      "is_repost": false,
                      "likes": 649,
                      "links": [],
                      "reactions": {
                        "appreciation": 4,
                        "empathy": 30,
                        "entertainment": 1,
                        "interest": 1,
                        "like": 587,
                        "praise": 26
                      },
                      "shares": 31,
                      "source": "LinkedIn",
                      "text": "For Daniel, the path to his current job as Manager of Ads Marketing Analytics in Mexico City began with a passion for AI and a search for a culture where innovation is a fundamental part of the DNA.  He describes the Mexico City office as a “dream” because “it combines a world-class tech environment with the vibrant, fast-paced energy of one of the most beautiful cities in the world.”\n\nDaniel’s day-to-day involves leading a team of data scientists and engineers to ensure every user data point serves a larger marketing purpose. His team uses “advanced analytics and cutting-edge AI to uncover key insights, optimize marketing campaigns and ensure our strategies are data-driven and highly effective.”\n\nWhen it comes to joining the team, Daniel’s advice for future Googlers is to move beyond the classroom and start solving real problems. “Don’t just take classes; contribute to open-source projects, enter Kaggle competitions or solve a problem in your local community using data. Google looks for 'owners' — people who see a problem and don't wait for permission to fix it.”\n\nLooking to join the Mexico City office? Check out our open roles → https://goo.gle/4qM2XDE",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7444395853278015488",
                      "urn": "urn:li:activity:7444395853278015488",
                      "video": null
                    },
                    {
                      "author": "Google",
                      "author_description": "41,339,226 followers",
                      "author_image": "https://media.licdn.com/dms/image/v2/D4E0BAQGv3cqOuUMY7g/company-logo_100_100/B4EZmhegXHGcAU-/0/1759350753990/google_logo?e=1776902400&v=beta&t=LRCYpUl9rmgdri4awRP4FVlvccNARAtgcfqxtRHdedI",
                      "author_url": "https://www.linkedin.com/company/google/posts",
                      "comments": 157,
                      "date": "2026-03-27 15:01:11",
                      "domain": "linkedin.com",
                      "images": [
                        "https://media.licdn.com/dms/image/v2/D5622AQEwOArZnqLnKA/feedshare-shrink_20/B56Z0vz.cdGYAI-/0/1774623663522?e=1776902400&v=beta&t=DXDIeUeDSET__d8tl-kNWjxdyaJqp-mDw22OP-gwlWA"
                      ],
                      "is_repost": false,
                      "likes": 1504,
                      "links": [],
                      "reactions": {
                        "appreciation": 9,
                        "empathy": 37,
                        "interest": 63,
                        "like": 1325,
                        "praise": 70
                      },
                      "shares": 165,
                      "source": "LinkedIn",
                      "text": "It’s AI Literacy Day and we’re making it easier than ever to use AI tools to reach your personal and professional goals. We developed the Google AI Professional Certificate to help you learn how to use generative AI at work — designed in collaboration with employers based on workplace skills they value most. It covers tips and tricks for using AI in areas like communication, research, data analysis, content generation, planning and organization, and vibe coding. \n\nLearn more about our AI training programs and get started today ↓ https://goo.gle/3NSVgOy",
                      "url": "https://www.linkedin.com/feed/update/urn:li:activity:7443311164769628161",
                      "urn": "urn:li:activity:7443311164769628161",
                      "video": null
                    }
                  ],
                  "total": 356
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Company not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/jobs": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "searchLinkedinJobs",
        "summary": "Search LinkedIn Jobs",
        "description": "Search for LinkedIn job listings by keyword. Returns job title, company, location, posting date, job type, experience level, workplace type, industry, salary, benefits, full description, applicants, and company logo. Supports filtering by recency, job type, company, and location.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-jobs"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "software engineer"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (1-40). 25 jobs per page; LinkedIn shows only the first 40 pages of results. Values below 1 are treated as 1; a page above 40 returns 400.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 40,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "relevance"
            },
            "example": "relevance"
          },
          {
            "name": "posted_ago",
            "in": "query",
            "required": false,
            "description": "Filter by maximum job age. Defaults to all time when omitted.",
            "schema": {
              "type": "string",
              "enum": [
                "1h",
                "24h",
                "7d",
                "30d"
              ]
            }
          },
          {
            "name": "job_type",
            "in": "query",
            "required": false,
            "description": "Filter by employment type. Comma-separate multiple values (e.g., `full_time,contract`). Allowed values: full_time, part_time, contract, temporary, volunteer, internship, other. Any other value returns 400.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "company_ids",
            "in": "query",
            "required": false,
            "description": "Filter by company. Comma-separated LinkedIn company IDs (get IDs from the Search Companies endpoint).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "location_id",
            "in": "query",
            "required": false,
            "description": "Filter by location. A numeric LinkedIn location ID. Non-numeric values return 400.",
            "schema": {
              "type": "string"
            },
            "example": "103644278"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchLinkedinJobsResponse"
                },
                "example": {
                  "jobs": [
                    {
                      "title": "Senior Software Engineer",
                      "url": "https://www.linkedin.com/jobs/view/4417833240/",
                      "company": "Stripe",
                      "company_id": "2135371",
                      "company_url": "https://www.linkedin.com/company/stripe",
                      "company_logo": "https://media.licdn.com/dms/image/.../company-logo.jpg",
                      "location": "San Francisco, CA",
                      "date": "2026-05-20 14:30:00",
                      "job_type": "full_time",
                      "experience_level": "mid_senior",
                      "workplace_type": "hybrid",
                      "industry": "Technology, Information and Internet",
                      "job_functions": "ENG, IT",
                      "description": "We are looking for a Senior Software Engineer to join our team...",
                      "salary": "$180,000 - $250,000",
                      "benefits": "",
                      "apply_url": "https://stripe.com/jobs/listing/senior-software-engineer/1234",
                      "applicants": "200+ applicants"
                    }
                  ],
                  "page": 1,
                  "count": 25
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/linkedin/job": {
      "get": {
        "tags": [
          "LinkedIn"
        ],
        "operationId": "linkedinJobDetails",
        "summary": "LinkedIn Job Details",
        "description": "Get detailed information about a specific LinkedIn job listing by URL or numeric job ID. Returns job title, company, location, posting date, job type, experience level, workplace type, industry, salary, benefits, full description, applicants, apply URL, and company logo.\n\n**Price:** $0.002 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/linkedin-job"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "LinkedIn job URL (e.g., `https://linkedin.com/jobs/view/1234567890`) or numeric job ID. Max 500 characters.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://linkedin.com/jobs/view/4417833240"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LinkedinJobDetailsResponse"
                },
                "example": {
                  "title": "Senior Software Engineer",
                  "url": "https://www.linkedin.com/jobs/view/4417833240/",
                  "company": "Stripe",
                  "company_id": "2135371",
                  "company_url": "https://www.linkedin.com/company/stripe",
                  "company_logo": "https://media.licdn.com/dms/image/.../company-logo.jpg",
                  "location": "San Francisco, CA",
                  "date": "2026-05-20 14:30:00",
                  "job_type": "full_time",
                  "experience_level": "mid_senior",
                  "workplace_type": "hybrid",
                  "industry": "Technology, Information and Internet",
                  "job_functions": "ENG, IT",
                  "description": "We are looking for a Senior Software Engineer to join our team...",
                  "salary": "$180,000 - $250,000",
                  "benefits": "",
                  "apply_url": "https://stripe.com/jobs/listing/senior-software-engineer/1234",
                  "applicants": "200+ applicants"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Job not found, or no numeric job ID could be read from the url",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving LinkedIn data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/news/articles": {
      "get": {
        "tags": [
          "News"
        ],
        "operationId": "searchNews",
        "summary": "Search News Articles",
        "description": "Search for news articles from worldwide sources by keyword. Returns the article headline, URL, snippet, publication time in UTC, authors, photo and thumbnail URLs, and the source name, URL, favicon, and domain. Supports filtering by publication time, source, country, and language. The response also includes the requested limit and a count of the articles actually returned.\n\n**Price:** $0.008 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/news-articles"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters, cannot be blank)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "artificial intelligence"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of results to return (1-100). Fewer may come back; the response count field reports how many articles were returned.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            },
            "example": 10
          },
          {
            "name": "time_published",
            "in": "query",
            "required": false,
            "description": "Filter by publication time: anytime, 1h, 1d, 7d, or 1y",
            "schema": {
              "type": "string",
              "enum": [
                "anytime",
                "1h",
                "1d",
                "7d",
                "1y"
              ],
              "default": "anytime"
            },
            "example": "1d"
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "description": "Filter by news source domain (e.g., bbc.com, reuters.com, cnn.com)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 alpha-2 country code (e.g., us, gb, de, jp). Must be exactly 2 letters.",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "default": "us"
            },
            "example": "us"
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code (e.g., en, es, fr, de, ja). Must be exactly 2 letters.",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2,
              "default": "en"
            },
            "example": "en"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchNewsResponse"
                },
                "example": {
                  "articles": [
                    {
                      "authors": [],
                      "domain": "singularityhub.com",
                      "photo_url": "https://singularityhub.com/uploads/2026/04/quantum_computing_ibm-scaled.webp?auto=webp&auto=webp&optimize=high&quality=70&width=1440",
                      "published_datetime_utc": "2026-04-03T20:20:23.000Z",
                      "snippet": "With billions invested and prototypes being tested outside the lab, the quantum era is starting to take shape.",
                      "source_favicon_url": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://singularityhub.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "SingularityHub",
                      "source_url": "https://singularityhub.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iK0NnNVFZVWd4YzAxdlRrbExUV3AyVFJDZkF4ampCU2dLTWdZWkVvelBwQVE=-w200-h200-p-df-rw",
                      "title": "Five Ways Quantum Technology Could Shape Everyday Life",
                      "url": "https://singularityhub.com/2026/04/03/five-ways-quantum-technology-could-shape-everyday-life/"
                    },
                    {
                      "authors": [],
                      "domain": "iiss.org",
                      "photo_url": "https://www.iiss.org/globalassets/media-library---content--migration/images-delta/charting/middle-east/2026/04/cme-thumbnail.png",
                      "published_datetime_utc": "2026-04-02T08:20:05.000Z",
                      "snippet": "The Israel–Hamas war of May 2021 was described in the Israeli press as 'the world's first AI war', integrating a number of new artificial ...",
                      "source_favicon_url": "https://encrypted-tbn2.gstatic.com/faviconV2?url=https://www.iiss.org&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "The International Institute for Strategic Studies",
                      "source_url": "https://www.iiss.org",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iL0NnNURkRzFwVWxCSVFqRnpWMDl0VFJDZkF4ampCU2dLTWdrQkFJNmxpR2hjVHdF=-w200-h200-p-df-rw",
                      "title": "The proliferation of AI-enabled military technology in the Middle East",
                      "url": "https://www.iiss.org/online-analysis/charting-middle-east/2026/04/the-proliferation-of-ai-enabled-military-technology-in-the-middle-east/"
                    },
                    {
                      "authors": [
                        "Sana Pashankar"
                      ],
                      "domain": "bloomberg.com",
                      "photo_url": "https://assets.bwbx.io/images/users/iqjWHBFdfxIU/i4G0Mq8AsNSs/v0/-1x-1.webp",
                      "published_datetime_utc": "2026-04-04T20:10:04.000Z",
                      "snippet": "Satellite startup Impulse Space is working with Anduril Industries Inc to develop space-based interceptor technology for President Donald ...",
                      "source_favicon_url": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://www.bloomberg.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "Bloomberg.com",
                      "source_url": "https://www.bloomberg.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iK0NnNXZlVzlrVmtZMlowdFBVRXBRVFJERUF4aW1CU2dLTWdZSmFKQ0hwZ2c=-w200-h200-p-df-rw",
                      "title": "Impulse Space, Anduril Building Space Technology for Golden Dome",
                      "url": "https://www.bloomberg.com/news/articles/2026-04-04/impulse-space-anduril-building-space-technology-for-golden-dome"
                    },
                    {
                      "authors": [
                        "Munsif Vengattil"
                      ],
                      "domain": "reuters.com",
                      "photo_url": "https://www.reuters.com/resizer/v2/RANQDCN7NBGITMYDHT7EW33KQ4.jpg?auth=e7831e5ae75483bff1f95649d934dab25cef7a7534733270ba1525140c63fc11&width=1920&quality=80",
                      "published_datetime_utc": "2026-04-04T05:00:00.000Z",
                      "snippet": "India's studios are transforming filmmaking by using AI to slash production time, cut costs and dub movies into numerous languages.",
                      "source_favicon_url": "https://encrypted-tbn2.gstatic.com/faviconV2?url=https://www.reuters.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "reuters.com",
                      "source_url": "https://www.reuters.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iK0NnNTVjRFJYYzNvM1V6bHlhMVpTVFJERUF4aW1CU2dLTWdhUmNwSXNMUWM=-w200-h200-p-df-rw",
                      "title": "AI is rewiring the world’s most prolific film industry",
                      "url": "https://www.reuters.com/technology/ai-is-rewiring-worlds-most-prolific-film-industry-2026-04-04/"
                    },
                    {
                      "authors": [
                        "Alexis Dominguez"
                      ],
                      "domain": "azfamily.com",
                      "photo_url": "https://gray-kpho-prod.gtv-cdn.com/resizer/v2/7QSEZLQ33NCIBNMXDRHECTTRMY.png?auth=b143eaf03ec632ea4d09aae15b81c96913bb2b149b305623dab50320c1c43dec&width=1200&height=600&smart=true",
                      "published_datetime_utc": "2026-04-04T00:24:00.000Z",
                      "snippet": "Cold case units crack decades-old missing person case and 2023 homicide using modern tools and renewed efforts ... Cold case units in Arizona ...",
                      "source_favicon_url": "https://encrypted-tbn3.gstatic.com/faviconV2?url=https://www.azfamily.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "AZ Family",
                      "source_url": "https://www.azfamily.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iL0NnNU9iMVZXZDB0cExYQktXWFZpVFJDSEF4aVBCaWdLTWdrQllvclZPT2JRREFJ=-w200-h200-p-df-rw",
                      "title": "Arizona cold cases solved with new technology, fresh investigations",
                      "url": "https://www.azfamily.com/2026/04/04/arizona-cold-cases-solved-with-new-technology-fresh-investigations/"
                    },
                    {
                      "authors": [
                        "Raffaele Huang"
                      ],
                      "domain": "wsj.com",
                      "photo_url": "https://images.wsj.net/im-48180985",
                      "published_datetime_utc": "2026-04-03T03:00:00.000Z",
                      "snippet": "Chinese companies are cementing their role in the humanoid robot supply chain, providing components for motion, while the U.S. leads in AI chips ...",
                      "source_favicon_url": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://www.wsj.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "WSJ",
                      "source_url": "https://www.wsj.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iK0NnNTFiRzFJU1ZKTmFEZFNaa05VVFJDZkF4ampCU2dLTWdZQklJNEZtUWs=-w200-h200-p-df-rw",
                      "title": "Under the Skin of America’s Humanoid Robots: Chinese Technology",
                      "url": "https://www.wsj.com/tech/under-the-skin-of-americas-humanoid-robots-chinese-technology-27dd4fdf?gaa_at=eafs&gaa_n=AWEtsqfPBjMTIWT3oecfzdMXydh1QOacLP-gcXd9KzhO4mwnjsu2lw2Qkuxt&gaa_ts=69d1879f&gaa_sig=yln60-nkUMFEqZwb1S9Ik5bcbPojsBKX5uMtUWFVgy1AkDagy0J2UBhZViMO1-9yX0l8ZpF_JVjG5KUSz7wfhg%3D%3D"
                    },
                    {
                      "authors": [
                        "Clement Farabet"
                      ],
                      "domain": "blog.google",
                      "photo_url": "https://storage.googleapis.com/gweb-uniblog-publish-prod/images/gemma-4_blog_keyword_header-dark.width-200.format-webp.webp",
                      "published_datetime_utc": "2026-04-02T16:14:52.000Z",
                      "snippet": "Gemma 4: our most intelligent open models to date, purpose-built for advanced reasoning and agentic workflows.",
                      "source_favicon_url": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://blog.google&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "blog.google",
                      "source_url": "https://blog.google",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iKkNnNXplSEEzWjA1YU9UWmZjakJJVFJCd0dNZ0JLQW95QnFHa2xJeTVCZw=-w200-h200-p-df-rw",
                      "title": "Gemma 4: Byte for byte, the most capable open models",
                      "url": "https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/"
                    },
                    {
                      "authors": [],
                      "domain": "finance.yahoo.com",
                      "photo_url": "https://s.yimg.com/ny/api/res/1.2/rZ2GdD2_iJd7CyEJdzxt1w--/YXBwaWQ9aGlnaGxhbmRlcjt3PTEyMDA7aD04MDA-/https://d29szjachogqwa.cloudfront.net/images/2026-04/bbfb5430-f57f-4f4c-9edb-043f5e18c451",
                      "published_datetime_utc": "2026-04-03T12:27:01.000Z",
                      "snippet": "The rocket and space exploration company formally kicked off its IPO process this week in a confidential filing. It is currently valued at ...",
                      "source_favicon_url": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://finance.yahoo.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "Yahoo Finance",
                      "source_url": "https://finance.yahoo.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iK0NnNVdXbW94YmpONVlUZDFTWHBtVFJERUF4aW1CU2dLTWdZQlFvRHZKUWs=-w200-h200-p-df-rw",
                      "title": "Tech stocks today: SpaceX reportedly targets $2 trillion valuation, Microsoft invests $10 billion in Japan",
                      "url": "https://finance.yahoo.com/sectors/technology/article/tech-stocks-today-spacex-reportedly-targets-2-trillion-valuation-microsoft-invests-10-billion-in-japan-144220012.html"
                    },
                    {
                      "authors": [
                        "Jason Farman"
                      ],
                      "domain": "slate.com",
                      "photo_url": "https://compote.slate.com/images/a2e58c29-6f41-4b0f-acbd-190c31186e9b.jpeg?crop=1560%2C1040%2Cx0%2Cy0",
                      "published_datetime_utc": "2026-04-04T14:00:00.000Z",
                      "snippet": "Sign up for the Slatest to get the most insightful analysis, criticism, and advice out there, delivered to your inbox daily.",
                      "source_favicon_url": "https://encrypted-tbn3.gstatic.com/faviconV2?url=https://slate.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "Slate",
                      "source_url": "https://slate.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iK0NnNXVhVGRDYkVGcFp6Wk5MUzB4VFJERUF4aW1CU2dLTWdhQmRJektNUVU=-w200-h200-p-df-rw",
                      "title": "It’s a design principle that has transformed the world and even saved lives. It’s gone way too far.",
                      "url": "https://slate.com/technology/2026/04/usability-complexity-apple-iphone-facebook-donald-norman.html"
                    },
                    {
                      "authors": [
                        "Andrew Kula"
                      ],
                      "domain": "komu.com",
                      "photo_url": "https://bloximages.newyork1.vip.townnews.com/komu.com/content/tncms/assets/v3/editorial/a/a7/aa7e4502-31c0-43a1-bf56-4cf48d31b431/69cfebcac8138.preview.jpg?crop=1080%2C1080%2C420%2C0&resize=1200%2C1200&order=crop%2Cresize",
                      "published_datetime_utc": "2026-04-03T19:30:00.000Z",
                      "snippet": "Three Rock Bridge High School students won the state AI championship for creating technology that could help police departments.",
                      "source_favicon_url": "https://encrypted-tbn1.gstatic.com/faviconV2?url=https://www.komu.com&client=NEWS_360&size=96&type=FAVICON&fallback_opts=TYPE,SIZE,URL",
                      "source_name": "komu.com",
                      "source_url": "https://www.komu.com",
                      "thumbnail_url": "https://news.google.com/api/attachments/CC8iL0NnNTFiVTFxYlRCNU1GTXdVMlpEVFJDcUJCaXFCQ2dLTWdrQlFaYlZHS3JJS2dJ=-w200-h200-p-df-rw",
                      "title": "Three Columbia students win state AI championship for technology that could help CPD",
                      "url": "https://www.komu.com/news/midmissourinews/three-columbia-students-win-state-ai-championship-for-technology-that-could-help-cpd/article_aa7e4502-31c0-43a1-bf56-4cf48d31b431.html"
                    }
                  ],
                  "count": 10,
                  "limit": 10
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving news data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/reddit/posts": {
      "get": {
        "tags": [
          "Reddit"
        ],
        "operationId": "searchReddit",
        "summary": "Search Reddit Posts",
        "description": "Search for Reddit posts by keyword across all subreddits. Returns post title, URL, author, subreddit, content snippet (the post body, or the title when the post has no body), upvotes, upvote ratio, comment count, and crosspost count. Supports sort by hot, top, most recent, or relevance, and an optional time window (posted_ago) from the past hour to the past year. Each page returns up to 20 posts, and pages 1 to 12 cover up to 250 posts per query.\n\n**Price:** $0.003 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/reddit-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters). Reddit search operators are supported, including AND, OR, NOT, exclusion with -, grouping with ( ), and fields such as subreddit: and author:.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "programming"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number for pagination (1-12). Each page returns up to 20 posts.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 12,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance",
                "hot",
                "top"
              ],
              "default": "most_recent"
            },
            "example": "hot"
          },
          {
            "name": "posted_ago",
            "in": "query",
            "required": false,
            "description": "Only return posts from this period: 1h (past hour), 24h (past day), 7d (past week), 30d (past month), or 12m (past year). Works with every sort_by, e.g. sort_by=relevance with posted_ago=24h returns the most relevant posts of the past day. Omit for all time. Any other value returns 400.",
            "schema": {
              "type": "string",
              "enum": [
                "1h",
                "24h",
                "7d",
                "30d",
                "12m"
              ]
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchRedditResponse"
                },
                "example": {
                  "count": 20,
                  "page": 1,
                  "posts": [
                    {
                      "author": "Even_Drawer_421",
                      "date": "2026-04-04 21:10:56",
                      "domain": "reddit.com",
                      "snippet": "Hey! I'm considering doing my masters in Computer Science at Georgia Tech (in-person) and I was wondering how the classes / research community is like in GT? I would be doing the robotics / perception track in MSCS. # Courses: Are classes more theoretical or applied? How many students in each class? Are students cooperative or competitive? # Research: I was also wondering how research is at Georgia Tech? I really want to work in a robotics perception lab, like RAIL or RL2. Is it easy to get into labs for masters students or are they competitive?",
                      "source": "Reddit",
                      "subreddit": "GatechClasses",
                      "title": "Current GT MSCS students (Robotics/Perception): What are classes, labs, and recruiting like?",
                      "upvotes": 14,
                      "upvote_ratio": 0.92,
                      "comments": 6,
                      "crossposts": 0,
                      "url": "https://www.reddit.com/r/GatechClasses/comments/1sckutj/current_gt_mscs_students_roboticsperception_what/"
                    },
                    {
                      "author": "Efficient_Log_2007",
                      "date": "2026-04-04 21:09:22",
                      "domain": "reddit.com",
                      "snippet": "Inspired by the best TV shows of 2026 post earlier. I am looking for some book recommendations. I am currently reading Artificial Wisdom. Set in 2050, the climate crisis has reached peak levels, one world government is taking shape and the people have the choice between an ex US President and an Artificial intelligence to see the world out of it.",
                      "source": "Reddit",
                      "subreddit": "AskIreland",
                      "title": "What's Ireland Reading Right Now.",
                      "upvotes": 42,
                      "upvote_ratio": 0.95,
                      "comments": 38,
                      "crossposts": 0,
                      "url": "https://www.reddit.com/r/AskIreland/comments/1scktgg/whats_ireland_reading_right_now/"
                    },
                    {
                      "author": "Pretty-Release5924",
                      "date": "2026-04-04 20:58:45",
                      "domain": "reddit.com",
                      "snippet": "Please give feedback on my resume. May 2026 Grad. 900+ application, 1 interview only",
                      "source": "Reddit",
                      "subreddit": "cscareeradvice",
                      "title": "Please give feedback on my resume. May 2026 Grad. 900+ application, 1 interview only",
                      "upvotes": 87,
                      "upvote_ratio": 0.88,
                      "comments": 124,
                      "crossposts": 1,
                      "url": "https://www.reddit.com/r/cscareeradvice/comments/1sckjsy/please_give_feedback_on_my_resume_may_2026_grad/"
                    },
                    {
                      "author": "Barna_News",
                      "date": "2026-04-04 20:44:04",
                      "domain": "reddit.com",
                      "snippet": "Carles Puigdemont, former President of Catalonia, has launched an interactive map powered by artificial intelligence. https://barna.news/puigdemont-launches-ai-map-catalan-linguistic-atlas/",
                      "source": "Reddit",
                      "subreddit": "bcnenglishspeakers",
                      "title": "Puigdemont Launches AI Map for Catalan Linguistic Atlas",
                      "upvotes": 23,
                      "upvote_ratio": 0.94,
                      "comments": 5,
                      "crossposts": 0,
                      "url": "https://www.reddit.com/r/bcnenglishspeakers/comments/1sck6q2/puigdemont_launches_ai_map_for_catalan_linguistic/"
                    },
                    {
                      "author": "Loud_Machine_2587",
                      "date": "2026-04-04 20:43:20",
                      "domain": "reddit.com",
                      "snippet": "Hey fellas. As the title suggests, I have been admitted to this new program. I always dreamt of studying in the Ivy League, that too in NYC. So my question is, the curriculum has just been updated. So my request is that could you guys guide me and the ones that are yet to join this program in order to get a proper overview of the subjects offered if possible or any other resource that may be helpful for the same.",
                      "source": "Reddit",
                      "subreddit": "columbia",
                      "title": "Thoughts on MSAI program",
                      "upvotes": 31,
                      "upvote_ratio": 0.96,
                      "comments": 18,
                      "crossposts": 0,
                      "url": "https://www.reddit.com/r/columbia/comments/1sck63y/thoughts_on_msai_program/"
                    },
                    {
                      "author": "Extra_Lavishness_315",
                      "date": "2026-04-04 20:36:35",
                      "domain": "reddit.com",
                      "snippet": "Hello, there's no denying that AI is booming and it took quite too many jobs recently with the most recent Oracle 30k layoff over email due to AI. My question to you guys is, what are your future plans? How are you planning to adapt?",
                      "source": "Reddit",
                      "subreddit": "Students",
                      "title": "How are students adapting with how things are with artificial intelligence?",
                      "upvotes": 156,
                      "upvote_ratio": 0.91,
                      "comments": 89,
                      "crossposts": 2,
                      "url": "https://www.reddit.com/r/Students/comments/1scjzxu/how_are_students_adapting_with_how_things_are/"
                    },
                    {
                      "author": "delly_belly28",
                      "date": "2026-04-04 20:30:28",
                      "domain": "reddit.com",
                      "snippet": "what Do you think that replacing humans in some jobs (such as teachers or doctors) with artificial intelligence is an 'evolution' or a 'moral disaster'?",
                      "source": "Reddit",
                      "subreddit": "AskReddit",
                      "title": "what Do you think that replacing humans in some jobs (such as teachers or doctors) with artificial intelligence is an 'evolution' or a 'moral disaster'?",
                      "upvotes": 1247,
                      "upvote_ratio": 0.86,
                      "comments": 412,
                      "crossposts": 3,
                      "url": "https://www.reddit.com/r/AskReddit/comments/1scjub3/what_do_you_think_that_replacing_humans_in_some/"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Reddit data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The data source did not respond in time. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/reddit/comments": {
      "get": {
        "tags": [
          "Reddit"
        ],
        "operationId": "searchRedditComments",
        "summary": "Search Reddit Comments",
        "description": "Search for Reddit comments by keyword across all subreddits. Returns comment text, a link for the parent post, subreddit, author, comment upvotes, and parent post engagement metrics. Supports fetching multiple pages in a single API call (billed per page). AutoModerator comments are filtered out, and comments are matched against your query text, so a page can return fewer results than the page size. The url field points at the parent post and can be an off-site link when the post links to another domain. upvotes is null when the comment score is hidden, and post_upvotes / post_comments are null when the parent post's metrics are unavailable.\n\n**Price:** $0.003 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/reddit-comments"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "python"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge (1-10). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance",
                "top"
              ],
              "default": "most_recent"
            },
            "example": "relevance"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each comment (returned in the `posts` array). Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any comment that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchRedditCommentsResponse"
                },
                "example": {
                  "count": 18,
                  "pages": 1,
                  "posts": [
                    {
                      "author": "Lawsoffire",
                      "date": "2026-04-04 21:12:30",
                      "domain": "reddit.com",
                      "snippet": "In the context of a post-2023 world, I really don't feel that a program doing what its programmed to, but now the input and output is somewhat dynamic qualifies on anywhere near the same linguistic scale as anything after the initial release of ChatGPT. I mean, sure, you can call them both artificial intelligence. But it must be recognized that they practically have nothing to do with each other under the hood.",
                      "source": "Reddit (Comment)",
                      "subreddit": "pcgaming",
                      "title": "Lawsoffire on pcgaming",
                      "type": "comment",
                      "upvotes": 87,
                      "post_upvotes": 2341,
                      "post_comments": 312,
                      "url": "https://www.gamespot.com/articles/nothing-in-our-games-will-be-ai-generated-ever-says-warframe-director/1100-6539194/"
                    },
                    {
                      "author": "LiquidAether",
                      "date": "2026-04-04 21:07:13",
                      "domain": "reddit.com",
                      "snippet": "LLMs are basically unrelated to actual artificial intelligence. And breakthroughs in that direction will have to come from a different source.",
                      "source": "Reddit (Comment)",
                      "subreddit": "movies",
                      "title": "LiquidAether on movies",
                      "type": "comment",
                      "upvotes": 42,
                      "post_upvotes": 1850,
                      "post_comments": 274,
                      "url": "https://www.reddit.com/r/movies/comments/1scjg3o/movie_plots_that_are_uncomfortably_close_to/"
                    },
                    {
                      "author": "sajberhippien",
                      "date": "2026-04-04 21:01:44",
                      "domain": "reddit.com",
                      "snippet": "> There is actually value in not claiming every stupid automation is in some way artificial intelligence. Windmills are automation, and noone is claiming a windmill is artificial intelligence. But the term has been used to refer to computers acting in ways that gives outputs akin to human thinking outputs since the term was coined.",
                      "source": "Reddit (Comment)",
                      "subreddit": "gaming",
                      "title": "sajberhippien on gaming",
                      "type": "comment",
                      "upvotes": 56,
                      "post_upvotes": 4120,
                      "post_comments": 489,
                      "url": "https://www.engadget.com/gaming/take-two-laid-off-the-head-its-ai-division-and-an-undisclosed-number-of-staff-182824338.html"
                    },
                    {
                      "author": "TheSightlessKing",
                      "date": "2026-04-04 20:32:25",
                      "domain": "reddit.com",
                      "snippet": "There is an entire top-tier conference literally called the AAAI Conference on Artificial Intelligence, a long-running flagship journal called Artificial Intelligence, and an arXiv category called cs.AI that is actively used by current research papers. Also inaccurate that 'AI' is basically absent from published technical literature around modern systems.",
                      "source": "Reddit (Comment)",
                      "subreddit": "Cyberpunk",
                      "title": "TheSightlessKing on Cyberpunk",
                      "type": "comment",
                      "upvotes": 23,
                      "post_upvotes": 892,
                      "post_comments": 156,
                      "url": "https://v.redd.it/8z73rqytz0tg1"
                    },
                    {
                      "author": "Uninvited_Bear",
                      "date": "2026-04-04 20:27:51",
                      "domain": "reddit.com",
                      "snippet": "Yeah, I totally agree. The first two games outlined a modern noir setting that is in danger of becoming a Cyberpunk setting. Then in Legion they dumped all the subtlety and just made it a cyberpunk setting. The think that bothers my most is Bagley. It is at least implied that he is a true Artificial Intelligence. And he's just kinda there.",
                      "source": "Reddit (Comment)",
                      "subreddit": "watch_dogs",
                      "title": "Uninvited_Bear on watch_dogs",
                      "type": "comment",
                      "upvotes": 18,
                      "post_upvotes": 412,
                      "post_comments": 67,
                      "url": "https://www.reddit.com/r/watch_dogs/comments/1sc0laz/what_killed_legion_was_futureism/"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Reddit data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/reddit/users": {
      "get": {
        "tags": [
          "Reddit"
        ],
        "operationId": "searchRedditUsers",
        "summary": "Search Reddit Users",
        "description": "Search for Reddit users by keyword. Returns username, user ID, bio, profile avatar, link karma, comment karma, total karma, verified-email status, premium status, moderator status, and account creation date.\n\n**Price:** $0.003 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/reddit-users"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "programming"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchRedditUsersResponse"
                },
                "example": {
                  "count": 25,
                  "users": [
                    {
                      "comment_karma": 3156,
                      "created_at": "2015-08-17 17:08:41",
                      "description": "",
                      "has_verified_email": true,
                      "icon_img": "https://styles.redditmedia.com/t5_d8pfe/styles/profileIcon_03ih1ceg0yue1.png?width=256&height=256&crop=256:256,smart&s=31b8c0af470109f1823913bd19667c22e9b2b945",
                      "is_gold": false,
                      "is_mod": false,
                      "link_karma": 2209,
                      "total_karma": 5365,
                      "url": "https://reddit.com/user/programming_bassist",
                      "user_id": "pmlju",
                      "username": "programming_bassist"
                    },
                    {
                      "comment_karma": 0,
                      "created_at": null,
                      "description": "",
                      "has_verified_email": false,
                      "icon_img": "",
                      "is_gold": false,
                      "is_mod": false,
                      "link_karma": 0,
                      "total_karma": 0,
                      "url": "https://reddit.com/user/programming_student2",
                      "user_id": "",
                      "username": "programming_student2"
                    },
                    {
                      "comment_karma": 63416,
                      "created_at": "2024-07-18 17:38:13",
                      "description": "Gods eyes are mirrors. I think I was put on this earth to help people understand that life is not the way that it seems. Locate the Opposites and find the Balance in between.",
                      "has_verified_email": true,
                      "icon_img": "https://i.redd.it/snoovatar/avatars/6820ff18-cbad-403a-945b-f21d4c59d388-headshot.png",
                      "is_gold": false,
                      "is_mod": false,
                      "link_karma": 6721,
                      "total_karma": 70137,
                      "url": "https://reddit.com/user/sum1sum1sum1sum1",
                      "user_id": "mdpr8sah",
                      "username": "sum1sum1sum1sum1"
                    },
                    {
                      "comment_karma": 3676,
                      "created_at": "2014-08-25 16:23:48",
                      "description": "",
                      "has_verified_email": true,
                      "icon_img": "https://www.redditstatic.com/avatars/defaults/v2/avatar_default_3.png",
                      "is_gold": false,
                      "is_mod": true,
                      "link_karma": 17104,
                      "total_karma": 20780,
                      "url": "https://reddit.com/user/programming_error",
                      "user_id": "i1kwr",
                      "username": "programming_error"
                    },
                    {
                      "comment_karma": 132130,
                      "created_at": "2015-12-02 07:17:41",
                      "description": "",
                      "has_verified_email": false,
                      "icon_img": "https://www.redditstatic.com/avatars/defaults/v2/avatar_default_2.png",
                      "is_gold": false,
                      "is_mod": true,
                      "link_karma": 3483,
                      "total_karma": 135613,
                      "url": "https://reddit.com/user/ProgrammingPants",
                      "user_id": "sm022",
                      "username": "ProgrammingPants"
                    },
                    {
                      "comment_karma": 53406,
                      "created_at": "2024-07-30 02:46:20",
                      "description": "stupid gay girl who does programming sometimes",
                      "has_verified_email": true,
                      "icon_img": "https://i.redd.it/snoovatar/avatars/6fcda0e1-4c55-4377-b82d-43ddf80fc654-headshot.png",
                      "is_gold": false,
                      "is_mod": true,
                      "link_karma": 22018,
                      "total_karma": 75424,
                      "url": "https://reddit.com/user/ProgrammingDysphoria",
                      "user_id": "15lcxr671t",
                      "username": "ProgrammingDysphoria"
                    },
                    {
                      "comment_karma": 92239,
                      "created_at": "2021-09-03 04:32:52",
                      "description": "",
                      "has_verified_email": true,
                      "icon_img": "https://styles.redditmedia.com/t5_4zm41q/styles/profileIcon_uljlfa7yx7hd1.png?width=256&height=256&crop=256:256,smart&s=9c80655de49bffbafc1a7bccf64aec716b95564e",
                      "is_gold": false,
                      "is_mod": false,
                      "link_karma": 8303,
                      "total_karma": 100542,
                      "url": "https://reddit.com/user/Blaze-Programming",
                      "user_id": "eb230k7j",
                      "username": "Blaze-Programming"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Reddit data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/threads/posts": {
      "get": {
        "tags": [
          "Threads"
        ],
        "operationId": "searchThreads",
        "summary": "Search Threads Posts",
        "description": "Search for Threads posts by keyword. Returns post text, engagement metrics (likes, replies, reposts, quotes), author metadata, hashtags, mentions, and a direct link to each post. Set get_sentiment=true to add AI emotion analysis (+$0.001/request).\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/threads-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "technology"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result (+$0.001/request)",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchThreadsResponse"
                },
                "example": {
                  "count": 25,
                  "posts": [
                    {
                      "title": "@mosseri on Threads",
                      "url": "https://www.threads.com/@mosseri/post/DGx1a2bcdef",
                      "date": "2026-06-20 14:12:05",
                      "author": "mosseri",
                      "source": "Threads",
                      "domain": "threads.com",
                      "snippet": "We're rolling out a few new things on Threads this week.",
                      "likes": 8421,
                      "replies": 342,
                      "reposts": 517,
                      "quotes": 88,
                      "reshares": 40,
                      "author_name": "Adam Mosseri",
                      "author_verified": true,
                      "is_reply": false,
                      "media_type": "text",
                      "image_url": "",
                      "video_url": "",
                      "hashtags": [],
                      "mentions": [],
                      "carousel_media": [],
                      "link_preview": null,
                      "quoted_post": null,
                      "post_id": "3921002011550001234",
                      "code": "DGx1a2bcdef"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request — missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "The data source returned an error or could not be reached. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The data source did not respond in time. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/threads/users": {
      "get": {
        "tags": [
          "Threads"
        ],
        "operationId": "searchThreadsUsers",
        "summary": "Search Threads Users",
        "description": "Search for Threads users by keyword. Returns username, full name, user ID, verification status, privacy status, profile picture URL, and a direct profile link.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/threads-users"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search keyword (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "technology"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchThreadsUsersResponse"
                },
                "example": {
                  "count": 24,
                  "users": [
                    {
                      "username": "natgeo",
                      "full_name": "National Geographic",
                      "user_id": "787132",
                      "is_verified": true,
                      "is_private": false,
                      "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/natgeo.jpg",
                      "url": "https://www.threads.com/@natgeo"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request — missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "The data source returned an error or could not be reached. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The data source did not respond in time. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/threads/user": {
      "get": {
        "tags": [
          "Threads"
        ],
        "operationId": "threadsUserProfile",
        "summary": "Threads User Profile",
        "description": "Look up a single Threads user by username. Returns biography, follower count, verification status, privacy status, profile picture, bio links, and the topic tags shown on the profile.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/threads-user"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Threads username, with or without leading @ (max 100 characters)",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "zuck"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreadsUserProfileResponse"
                },
                "example": {
                  "user": {
                    "username": "mosseri",
                    "full_name": "Adam Mosseri",
                    "user_id": "1099735954",
                    "biography": "Head of Instagram and Threads.",
                    "follower_count": 1875432,
                    "is_verified": true,
                    "is_private": false,
                    "profile_pic_url": "https://scontent.cdninstagram.com/v/t51.2885-19/mosseri.jpg",
                    "profile_pic_url_hd": "https://scontent.cdninstagram.com/v/t51.2885-19/mosseri_640.jpg",
                    "bio_links": [
                      {
                        "url": "https://about.instagram.com/blog",
                        "title": "Instagram Blog"
                      }
                    ],
                    "profile_tags": [],
                    "url": "https://www.threads.com/@mosseri"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request — missing username or value too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Threads user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "The data source returned an error or could not be reached. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The data source did not respond in time. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/threads/user/posts": {
      "get": {
        "tags": [
          "Threads"
        ],
        "operationId": "threadsUserPosts",
        "summary": "Threads User Posts",
        "description": "Get a single Threads user's recent posts (their feed) by username. Returns post text, engagement metrics (likes, replies, reposts, quotes), author metadata, hashtags, mentions, and media details. Set get_sentiment=true to add AI emotion analysis (+$0.001/request).\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/threads-user-posts"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Threads username, with or without leading @ (max 100 characters)",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "mrbeast"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each result (+$0.001/request)",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThreadsUserPostsResponse"
                },
                "example": {
                  "count": 12,
                  "posts": [
                    {
                      "title": "@natgeo on Threads",
                      "url": "https://www.threads.com/@natgeo/post/DGw9k2aQ1rT",
                      "date": "2026-06-19 17:40:11",
                      "author": "natgeo",
                      "source": "Threads",
                      "domain": "threads.com",
                      "snippet": "A curious fox pauses in the first snow of the season.",
                      "likes": 2210,
                      "replies": 54,
                      "reposts": 133,
                      "quotes": 7,
                      "reshares": 12,
                      "author_name": "National Geographic",
                      "author_verified": true,
                      "is_reply": false,
                      "is_pinned": false,
                      "media_type": "image",
                      "image_url": "https://scontent.cdninstagram.com/v/t51.82787-15/fox.jpg",
                      "video_url": "",
                      "hashtags": [],
                      "mentions": [],
                      "carousel_media": [],
                      "link_preview": null,
                      "quoted_post": null,
                      "post_id": "3919887766554430021",
                      "code": "DGw9k2aQ1rT"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request — missing username or value too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized — invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Threads user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "The data source returned an error or could not be reached. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The data source did not respond in time. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/tiktok/videos": {
      "get": {
        "tags": [
          "TikTok"
        ],
        "operationId": "searchTiktok",
        "summary": "Search TikTok Videos",
        "description": "Search for TikTok videos by keyword. Returns video caption, a link to the video on TikTok, publish date, engagement metrics (plays, likes, comments, shares, downloads), duration, cover image, music track, and creator metadata (username, display name, avatar). Supports region filtering, publish-time filtering, and sorting by relevance, recency, or likes. Supports fetching multiple pages in a single API call (billed per page). Set get_sentiment=true to add AI emotion analysis to each video.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/tiktok-videos"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "cooking"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge (1-10). Each page returns up to 30 videos. Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "description": "2-letter region code to filter by (e.g., us, gb, jp, de, fr)",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 2
            },
            "example": "us"
          },
          {
            "name": "publish_time",
            "in": "query",
            "required": false,
            "description": "Filter by publish time in days: 0 = all time, 1 = last day, 7 = last week, 30 = last month, 90 = last 3 months, 180 = last 6 months. Any other number returns 400; a non-numeric value falls back to 0.",
            "schema": {
              "type": "integer",
              "enum": [
                0,
                1,
                7,
                30,
                90,
                180
              ],
              "default": 0
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results. Any unrecognised value falls back to relevance.",
            "schema": {
              "type": "string",
              "enum": [
                "relevance",
                "most_recent",
                "most_liked"
              ],
              "default": "relevance"
            },
            "example": "relevance"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each video. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any video that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTiktokResponse"
                },
                "example": {
                  "count": 28,
                  "pages": 1,
                  "videos": [
                    {
                      "author": "meatlicious_",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/010a3f86b6a359c85257cd91a8b6c170~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=f51134e7&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=eBl2hg1i%2B%2BiMa6pe6uUfViJcwRg%3D",
                      "author_name": "Meatlicious",
                      "comments": 1209,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/owf2ARfGkTxlIAEYTnNFPIADEbAImQjafgkAAH~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=f5dfeccf&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=K6%2FHB9YCpOG9wohpkvNsX%2BlArZ0%3D",
                      "date": "2026-04-01 14:13:11",
                      "domain": "tiktok.com",
                      "downloads": 1883,
                      "duration": 40,
                      "is_ad": false,
                      "likes": 228556,
                      "music_author": "Meatlicious",
                      "music_title": "original sound - meatlicious_",
                      "play_count": 2868457,
                      "shares": 5514,
                      "snippet": "This was hard I hope you enjoy this amazing Buldak Ramen fried chicken! A while back I left my job to try doing content full time, and I really thought it was going to work out. I spent a ton of time cooking, filming, editing, and trying to figure all of this out, but sometimes things just don’t go the way you planned, and that’s just how life works sometimes. I love you guys, and I appreciate everyone who watched my videos and supported me along the way, but unfortunately I need to step away for a bit. However, this recipe almost makes it worth it because this is probably the best chicken I’ve ever had in my life. Also, warning, this is extremely spicy. Good luck. Love you guys. #friedchicken #spicyfood #buldak #Recipe #ramen",
                      "source": "TikTok",
                      "title": "This was hard I hope you enjoy this amazing Buldak Ramen fried chicken! A while back I left my job to try doing content full time, and I really thought it was going to work out. I spent a ton of time cooking, filming, editing, and trying to figure all of this out, but sometimes things just don’t go the way you planned, and that’s just how life works sometimes. I love you guys, and I appreciate everyone who watched my videos and supported me along the way, but unfortunately I need to step away for a bit. However, this recipe almost makes it worth it because this is probably the best chicken I’ve ever had in my life. Also, warning, this is extremely spicy. Good luck. Love you guys. #friedchicken #spicyfood #buldak #Recipe #ramen",
                      "url": "https://www.tiktok.com/@meatlicious_/video/7623793631043800334"
                    },
                    {
                      "author": "on_todays_bake",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/9002654119dc69d555eb419dae433438~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=17b545d7&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=sbKbtMTWLFCDPl9sOsOYfzRR%2F%2Fg%3D",
                      "author_name": "Ontodaysbake",
                      "comments": 1199,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/o0gvvmqRnG6hfAGJfXgArsgWmrYOf7cev4IjoQ~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=204fb473&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=7Ze4aHxQdaFgr%2Bz8BYZYGKELJ%2Bo%3D",
                      "date": "2026-03-19 12:27:12",
                      "domain": "tiktok.com",
                      "downloads": 1441,
                      "duration": 61,
                      "is_ad": false,
                      "likes": 731247,
                      "music_author": "The Black Eyed Peas",
                      "music_title": "Boom Boom Pow",
                      "play_count": 10090197,
                      "shares": 90816,
                      "snippet": "Hassle back potatoes with creamy Cajun chicken and airfried brocollini . Easy, healthy comfort meal  Potato recipe 6 medium potatoes 3 tbsp butter (melted) 2 tbsp olive oil 4–5 cloves garlic (minced) 1½ tsp paprika 1½ tsp onion granules 1½ tsp garlic granules 1 tsp dried parsley Salt & pepper 1–2 tsp all-purpose seasoning Method: Slice each potato thinly (don’t cut all the way through). Mix melted butter, olive oil, garlic, and all seasonings. Brush generously over all 6 potatoes, getting into the layers. Air fry at 180°C for 35–45 mins (depending on size). Brush with extra butter halfway through for that crispy finish. Chicken recipe  Ingredients: 1 tbsp olive oil 1½ tsp Cajun seasoning ½ tsp salt ½ tsp black pepper 1 tsp paprika 1 tsp onion powder Method: Add the sliced chicken to a bowl. Drizzle over the olive oil. Sprinkle all the seasonings evenly. Mix well until every piece is fully coated. Let it sit for 10–15 minutes (optional, but boosts flavor). Pan-fry on medium-high heat until golden and cooked through. Cajun Sauce: 1 tbsp butter ½ onion (diced) 150–200ml heavy cream Same seasonings as chicken Instructions  In the same pan, melt butter and cook onions until soft. Add cream + seasoning, simmer until thickened. Add chicken back in and coat in sauce. #DinnerIdeas #Recipe #EasyRecipes #cooking #airfryerrecipe",
                      "source": "TikTok",
                      "title": "Hassle back potatoes with creamy Cajun chicken and airfried brocollini . Easy, healthy comfort meal  Potato recipe 6 medium potatoes 3 tbsp butter (melted) 2 tbsp olive oil 4–5 cloves garlic (minced) 1½ tsp paprika 1½ tsp onion granules 1½ tsp garlic granules 1 tsp dried parsley Salt & pepper 1–2 tsp all-purpose seasoning Method: Slice each potato thinly (don’t cut all the way through). Mix melted butter, olive oil, garlic, and all seasonings. Brush generously over all 6 potatoes, getting into the layers. Air fry at 180°C for 35–45 mins (depending on size). Brush with extra butter halfway through for that crispy finish. Chicken recipe  Ingredients: 1 tbsp olive oil 1½ tsp Cajun seasoning ½ tsp salt ½ tsp black pepper 1 tsp paprika 1 tsp onion powder Method: Add the sliced chicken to a bowl. Drizzle over the olive oil. Sprinkle all the seasonings evenly. Mix well until every piece is fully coated. Let it sit for 10–15 minutes (optional, but boosts flavor). Pan-fry on medium-high heat until golden and cooked through. Cajun Sauce: 1 tbsp butter ½ onion (diced) 150–200ml heavy cream Same seasonings as chicken Instructions  In the same pan, melt butter and cook onions until soft. Add cream + seasoning, simmer until thickened. Add chicken back in and coat in sauce. #DinnerIdeas #Recipe #EasyRecipes #cooking #airfryerrecipe",
                      "url": "https://www.tiktok.com/@on_todays_bake/video/7618942237535194390"
                    },
                    {
                      "author": "angeliiicahernandez",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/1d8018ad790b189ab64bca7e52c47fa4~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=bd137c5b&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=P%2FWWLlDztRJZlBVX3zsvKecVhf8%3D",
                      "author_name": "Angelica",
                      "comments": 282,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/oAfRIELGs3daGy3TNmBMQ1SZgCFfDpAbyxDSRE~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=09db524d&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=Lfmnrt2WOWnmOMOEKd1exSO8c6g%3D",
                      "date": "2026-03-29 23:21:23",
                      "domain": "tiktok.com",
                      "downloads": 36,
                      "duration": 12,
                      "is_ad": false,
                      "likes": 19816,
                      "music_author": "Gabriel🧃🪄",
                      "music_title": "original sound - juan.gabriel.vallejo18",
                      "play_count": 293923,
                      "shares": 519,
                      "snippet": "I’ve been influenced @RabeyaKhatun — I’m usually so stressed coming home from running my own restaurant that cooking for 1 person feels overwhelming… this has been changing my life.  Barely any prep, barely any dirty dishes and I’m actually eating something other than pasta or pizza 😭🙏🏽",
                      "source": "TikTok",
                      "title": "I’ve been influenced @RabeyaKhatun — I’m usually so stressed coming home from running my own restaurant that cooking for 1 person feels overwhelming… this has been changing my life.  Barely any prep, barely any dirty dishes and I’m actually eating something other than pasta or pizza 😭🙏🏽",
                      "url": "https://www.tiktok.com/@angeliiicahernandez/video/7622821573313006861"
                    },
                    {
                      "author": ".jackcook",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/48878bb6f40e79e3625736d2a2ef6aa3~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=5d835e2a&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=YYD8RpkrZgQGQE9DNpRUOdmgSVw%3D",
                      "author_name": "Jack Cook",
                      "comments": 390,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/osyECDF0lEDz0wAAueAAfrEwpQIRRyqEVA7CKC~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=46eeb480&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=dbGuKDKJ0%2FlabV%2FlbrrnYOT8eXY%3D",
                      "date": "2026-04-03 21:05:58",
                      "domain": "tiktok.com",
                      "downloads": 10,
                      "duration": 66,
                      "is_ad": false,
                      "likes": 8628,
                      "music_author": "Jack Cook",
                      "music_title": "original sound - .jackcook",
                      "play_count": 106617,
                      "shares": 154,
                      "snippet": "Cooking the Comments | Schnitzel and Fries 🐓 🍟  Chicken 1 chicken breast, pounded thin flour + salt 1 beaten egg breadcrumbs + seasonings Fries 2 russet potatoes  vinegar to boil with avocado oil to fry salt #cooking #Recipe #schnitzel #fries #germany ",
                      "source": "TikTok",
                      "title": "Cooking the Comments | Schnitzel and Fries 🐓 🍟  Chicken 1 chicken breast, pounded thin flour + salt 1 beaten egg breadcrumbs + seasonings Fries 2 russet potatoes  vinegar to boil with avocado oil to fry salt #cooking #Recipe #schnitzel #fries #germany ",
                      "url": "https://www.tiktok.com/@.jackcook/video/7624642131616943391"
                    },
                    {
                      "author": "asmar.fd29",
                      "author_avatar": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/2984a9c7019afff51528ccd4a368df4d~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=0340a25d&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=COfP0cGt4TyF%2FFX8Hq3tTlDt%2BhE%3D",
                      "author_name": "Asmar Fd🍱🍜🍲",
                      "comments": 197,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/084f5766602448ffaaaa77097182ebac~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=10402&idc=no1a&ps=13740610&refresh_token=3d9a4053&shcp=9b759fb9&shp=c1333099&t=4d5b0474&x-expires=1775358000&x-signature=5FeTG75j9VUdjlSOzJKpSegHE3Y%3D",
                      "date": "2026-01-18 15:20:44",
                      "domain": "tiktok.com",
                      "downloads": 1862,
                      "duration": 35,
                      "is_ad": false,
                      "likes": 146459,
                      "music_author": "Asmar Fd🍱🍜🍲",
                      "music_title": "original sound - asmar.fd29",
                      "play_count": 3000986,
                      "shares": 18698,
                      "snippet": "would you eat this?_tiktokfood #food #asmr #cooking #fyp ",
                      "source": "TikTok",
                      "title": "would you eat this?_tiktokfood #food #asmr #cooking #fyp ",
                      "url": "https://www.tiktok.com/@asmar.fd29/video/7596721687639444749"
                    },
                    {
                      "author": "lumithecreatorx",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/4fe50bf00c76c3fc3309a9764323667a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=b1969459&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=xX5f3%2B2Ov2zkeu27DhzlfyTqsRc%3D",
                      "author_name": "Lumi",
                      "comments": 635,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/oUalBD3mElVpYURIj5PBJlWWKiVA8iCB56ZIC~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=677c4c12&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=aYTDLvDuuzSK6zibV1xUSFbZ0zw%3D",
                      "date": "2025-12-22 19:01:01",
                      "domain": "tiktok.com",
                      "downloads": 751,
                      "duration": 29,
                      "is_ad": false,
                      "likes": 193652,
                      "music_author": "JohnisRiel_🇵🇭🥀",
                      "music_title": "original sound - mr_tuk25",
                      "play_count": 2118289,
                      "shares": 35987,
                      "snippet": "does this work? asking for a friend #cooking #dating ",
                      "source": "TikTok",
                      "title": "does this work? asking for a friend #cooking #dating ",
                      "url": "https://www.tiktok.com/@lumithecreatorx/video/7586759329299041558"
                    },
                    {
                      "author": "kaitlinathome",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/29694fd98002e5966d5698d26e5da608~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=30b28fb8&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=jjZW0pcXKG76rR9sBZk52DQnb6c%3D",
                      "author_name": "Kaitlin",
                      "comments": 104,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/oUDODVfDSIu2RUnEzw6o1Qf8DBzAdEEEFFjKIg~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=00da9a45&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=FSm7PY9FEXf3NDg%2FyNaiD4QyfWk%3D",
                      "date": "2024-11-25 00:22:06",
                      "domain": "tiktok.com",
                      "downloads": 496,
                      "duration": 14,
                      "is_ad": false,
                      "likes": 20108,
                      "music_author": "Nat King Cole",
                      "music_title": "Fascination",
                      "play_count": 233385,
                      "shares": 671,
                      "snippet": "Mood lighting and a cute cooking station are important to me #cooking #cozytok #lasagnasoup ",
                      "source": "TikTok",
                      "title": "Mood lighting and a cute cooking station are important to me #cooking #cozytok #lasagnasoup ",
                      "url": "https://www.tiktok.com/@kaitlinathome/video/7441005596364590382"
                    },
                    {
                      "author": "foodvillage567",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/2ae794ea4877243785703eecf424f067~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=524a68a6&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=kmpZy3DxnwKyTKP9%2BiV50kqtCr8%3D",
                      "author_name": "Food Village",
                      "comments": 13376,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/oov56i3CiIAEwoiItVf4JADAIADd0BJoBAuABM~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=af042e08&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=OfQ%2BnRpKyyNApCSB5W4xGOGbDZs%3D",
                      "date": "2025-11-13 11:08:34",
                      "domain": "tiktok.com",
                      "downloads": 27065,
                      "duration": 242,
                      "is_ad": false,
                      "likes": 624906,
                      "music_author": "Food Village",
                      "music_title": "original sound - foodvillage567",
                      "play_count": 55124992,
                      "shares": 51762,
                      "snippet": "Best way to cook Beef Stomach​ curry #tiktokfood ",
                      "source": "TikTok",
                      "title": "Best way to cook Beef Stomach​ curry #tiktokfood ",
                      "url": "https://www.tiktok.com/@foodvillage567/video/7572165204587400462"
                    },
                    {
                      "author": "tagesrezept",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/5a49688f1d614afbb6ce604f38949f5a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=4ecdb1e0&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=s8A30fs1ppHdhBM0KiolNIn22dw%3D",
                      "author_name": "TagesRezept",
                      "comments": 3011,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/ogAePjYiGQEiySl4APLAIQjnhFefPALIIEAsIE~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=3ffe0978&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=kCdUuFTgTWQWJYyeNj7VknrSl6E%3D",
                      "date": "2025-01-16 15:00:36",
                      "domain": "tiktok.com",
                      "downloads": 4804,
                      "duration": 22,
                      "is_ad": false,
                      "likes": 1219274,
                      "music_author": "Bad Bunny",
                      "music_title": "NUEVAYoL",
                      "play_count": 31636545,
                      "shares": 132412,
                      "snippet": "Easy Creamy Cheese Pasta 🥰😋 #EasyRecipe #tagesrezept #pasta #cooking #inspiration #healthylifestyle #schnellerezepte #fyp #goodvibes #goviral ",
                      "source": "TikTok",
                      "title": "Easy Creamy Cheese Pasta 🥰😋 #EasyRecipe #tagesrezept #pasta #cooking #inspiration #healthylifestyle #schnellerezepte #fyp #goodvibes #goviral ",
                      "url": "https://www.tiktok.com/@tagesrezept/video/7460528404337610006"
                    },
                    {
                      "author": "rosiskitchen",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/da418fa823b605f4c336d5f14057fda6~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=74cf55de&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=A8z0rym10%2BhUUOl4hDccgr033wM%3D",
                      "author_name": "rosiskitchen",
                      "comments": 10,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-p-0037-euttp/oYEahGCgUDLWGT3eIgjdpMThYejFnAVsIg8DVf~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&item=7624225862493261088&ps=933b5bde&refresh_token=85f819fb&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=rYAKU6YpnpeJTWPI6uB2eOmi7aw%3D",
                      "date": "2026-04-02 18:10:20",
                      "domain": "tiktok.com",
                      "downloads": 0,
                      "duration": 15,
                      "is_ad": false,
                      "likes": 222,
                      "music_author": "Bruno Mars",
                      "music_title": "Risk It All",
                      "play_count": 6836,
                      "shares": 14,
                      "snippet": "I love cooking 🤍👩🏻‍🍳 #steak #kochen #cooking #food #asthetic ",
                      "source": "TikTok",
                      "title": "I love cooking 🤍👩🏻‍🍳 #steak #kochen #cooking #food #asthetic ",
                      "url": "https://www.tiktok.com/@rosiskitchen/video/7624225862493261088"
                    },
                    {
                      "author": "easyrecipe.cooking",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/2f26abb9af398d9ee8804dc7901add91~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=041f714f&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=jecLp0Fr1JQ6wLibH8%2FqkXNGrek%3D",
                      "author_name": "easyrecipe.cooking",
                      "comments": 1814,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-85c255-tx/o8USMDkIiVFzDesfwg3uJSoxclBZtERFEQiBDS~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=26c51b4d&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=bn4GEQLmoy2cyu3jSPlLkVcepP8%3D",
                      "date": "2025-09-02 18:38:03",
                      "domain": "tiktok.com",
                      "downloads": 78717,
                      "duration": 1281,
                      "is_ad": false,
                      "likes": 152931,
                      "music_author": "easyrecipe.cooking",
                      "music_title": "original sound - easyrecipe.cooking",
                      "play_count": 10529004,
                      "shares": 31349,
                      "snippet": "#recipes #EasyRecipe #cooking #DinnerIdeas #yummyfood #dinnermadeeasy #fyp #viral #foryou",
                      "source": "TikTok",
                      "title": "#recipes #EasyRecipe #cooking #DinnerIdeas #yummyfood #dinnermadeeasy #fyp #viral #foryou",
                      "url": "https://www.tiktok.com/@easyrecipe.cooking/video/7545562790338071863"
                    },
                    {
                      "author": "user0211200916",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/7ed8c2751509ff7663d85be6f32598ea~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=8de831af&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=bQmQnkNNWGKabRjzidS2Vfuudyg%3D",
                      "author_name": "Mè",
                      "comments": 3096,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/oYsKQgmNVGAYE3Fn4iL9DjTDfIeAlCvjQGemHI~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=5186ba8d&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=lH1f1U4X8ETKKJV4zHJxseRu0bI%3D",
                      "date": "2026-03-27 23:23:51",
                      "domain": "tiktok.com",
                      "downloads": 289,
                      "duration": 10,
                      "is_ad": false,
                      "likes": 211088,
                      "music_author": "Shhlyrics",
                      "music_title": "original sound - sdmlyrics",
                      "play_count": 3572710,
                      "shares": 6632,
                      "snippet": "Recipe - water and flour #strugglemeal #meal #bread #cook #fyp ",
                      "source": "TikTok",
                      "title": "Recipe - water and flour #strugglemeal #meal #bread #cook #fyp ",
                      "url": "https://www.tiktok.com/@user0211200916/video/7622080075390782740"
                    },
                    {
                      "author": "kennylsong",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/768f9f9c13b54a3f5b637108465f948e~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=ffd174de&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=u9vg0PaJYbynsMi1oA0Il9eYn6E%3D",
                      "author_name": "Kenny Song",
                      "comments": 2015,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-p-0068/bafd256f8ecd4750bd19c4c82c086587_1726096677~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=9ef393ac&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=LMsB8ZiEklGt8iyckZ9QjSgcRwY%3D",
                      "date": "2024-09-11 23:17:56",
                      "domain": "tiktok.com",
                      "downloads": 9158,
                      "duration": 22,
                      "is_ad": false,
                      "likes": 376832,
                      "music_author": "Kenny Song",
                      "music_title": "original sound - kennylsong",
                      "play_count": 5103788,
                      "shares": 16637,
                      "snippet": "the classic lo mein 😮‍💨  this stuff just feels good to grub on here’s how you can easily make it: - velvet your beef for 30 min using baking soda, water, salt, shaoxing rice wine, dark soy sauce, sugar, corn starch and mix in some oil - quickly stir fry some chopped veggies: carrots, cabbage, onions     - remove from pan - cook or loosen your lo mein egg noodles in boiling water (depending on if they’re precooked) and drain - stir fry your beef, add in some chopped garlic with it - add in noodles - add in sauce (soy, dark soy, oyster, sugar, msg, white pepper, corn starch slurry) - top off with green onions and bean enjoy! trying to post more frequently! let me know if you like this series #uwansum #asianfood #comfortfood #cooktok",
                      "source": "TikTok",
                      "title": "the classic lo mein 😮‍💨  this stuff just feels good to grub on here’s how you can easily make it: - velvet your beef for 30 min using baking soda, water, salt, shaoxing rice wine, dark soy sauce, sugar, corn starch and mix in some oil - quickly stir fry some chopped veggies: carrots, cabbage, onions     - remove from pan - cook or loosen your lo mein egg noodles in boiling water (depending on if they’re precooked) and drain - stir fry your beef, add in some chopped garlic with it - add in noodles - add in sauce (soy, dark soy, oyster, sugar, msg, white pepper, corn starch slurry) - top off with green onions and bean enjoy! trying to post more frequently! let me know if you like this series #uwansum #asianfood #comfortfood #cooktok",
                      "url": "https://www.tiktok.com/@kennylsong/video/7413528717877595397"
                    },
                    {
                      "author": "kyfitjourney",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-avt-0068-euttp/8e15e248089f25e63542e9c303db2612~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=e009d9f2&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=3YWCH%2Bni9eJsFRbwAzR%2F16I8U3A%3D",
                      "author_name": "KYRA | EASY RECIPES✨🍜🌶️",
                      "comments": 460,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/oguIRpYdCIUEE8TYFAI9K4Ifobzg2FIDFykBeP~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=de7402aa&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=IovDEnhF0YK212bSEE3t2Eb%2F360%3D",
                      "date": "2025-11-03 18:22:32",
                      "domain": "tiktok.com",
                      "downloads": 83,
                      "duration": 61,
                      "is_ad": false,
                      "likes": 331404,
                      "music_author": "Sam Cooke",
                      "music_title": "Nothing Can Change This Love",
                      "play_count": 4659229,
                      "shares": 50745,
                      "snippet": "Slow Cooked Beef With Creamy Mash✨🥩🥔  Here’s What I Used👇🏽:  1kg Beef joint  1 onion  2-3tsp garlic  1.5tbsp tomato puree  1-2 Bay leaves Fresh thyme  1 beef stock pot  Worchester sauce  1tbsp brown sugar  1tbsp smoked paprika  Salt and pepper to taste Water (enough to cover half)   Beef gravy granules (to thicken)  Join me over on Patreon for more easy recipes, full recipe cards/macro breakdown👩🏽‍🍳🙌🏽  Link in bio💛 #EasyRecipes #cookwithme #slowcookerrecipe #DinnerIdeas #autumnrecipes ",
                      "source": "TikTok",
                      "title": "Slow Cooked Beef With Creamy Mash✨🥩🥔  Here’s What I Used👇🏽:  1kg Beef joint  1 onion  2-3tsp garlic  1.5tbsp tomato puree  1-2 Bay leaves Fresh thyme  1 beef stock pot  Worchester sauce  1tbsp brown sugar  1tbsp smoked paprika  Salt and pepper to taste Water (enough to cover half)   Beef gravy granules (to thicken)  Join me over on Patreon for more easy recipes, full recipe cards/macro breakdown👩🏽‍🍳🙌🏽  Link in bio💛 #EasyRecipes #cookwithme #slowcookerrecipe #DinnerIdeas #autumnrecipes ",
                      "url": "https://www.tiktok.com/@kyfitjourney/video/7568566232157555991"
                    },
                    {
                      "author": "aneeqafarid",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/ade3f665cc352b3d556b3bb7b2ef43a9~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=cfcc122b&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=g6mF%2FdyJzc3rP0oZBZWitUqk1ps%3D",
                      "author_name": "aneeqafarid",
                      "comments": 96,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-p-0068/9c7da97b160247bdb49cf9871211ebda_1711437209~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=129b76c7&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=TFeRzF9lgEQ8BNtEuUUduIy2MK4%3D",
                      "date": "2024-03-26 07:13:26",
                      "domain": "tiktok.com",
                      "downloads": 108,
                      "duration": 109,
                      "is_ad": false,
                      "likes": 4335,
                      "music_author": "SKUNK",
                      "music_title": "VLOG Dramatic Calming BGM(1390605)",
                      "play_count": 184910,
                      "shares": 295,
                      "snippet": "Tonight’s dinner is this delicious chimichurri steak 🥩 with roasted zucchini, crispy potatoes & honey blasamic carrots on the side.  - GLUTEN & DAIRY FREE -  Ingredients: Steak seasoning - black pepper & salt  - cayenne - paprika  - steak seasoning chimichurri sauce: - fresh mint, parsley, basil  - dried oregano  - olive oil  - garlic - beef broth  - lemon - dense balsamic glaze  - salt, pepper, paprika, chilli flakes  #cookingtiktok #steak #fyp ",
                      "source": "TikTok",
                      "title": "Tonight’s dinner is this delicious chimichurri steak 🥩 with roasted zucchini, crispy potatoes & honey blasamic carrots on the side.  - GLUTEN & DAIRY FREE -  Ingredients: Steak seasoning - black pepper & salt  - cayenne - paprika  - steak seasoning chimichurri sauce: - fresh mint, parsley, basil  - dried oregano  - olive oil  - garlic - beef broth  - lemon - dense balsamic glaze  - salt, pepper, paprika, chilli flakes  #cookingtiktok #steak #fyp ",
                      "url": "https://www.tiktok.com/@aneeqafarid/video/7350566809994792197"
                    },
                    {
                      "author": "cookinwithkya",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/96a5c468e810460141bb7609a1ff7d96~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=17e79e5a&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=qUYxZmZpzHlLw%2BicPQnYkuzchR8%3D",
                      "author_name": "Kya",
                      "comments": 319,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/oYfwRX6ADABE5cgwfNDySnIUkEg0PPRbTFHEGl~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=b5c8b7d3&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=IUzYsuxLAIwBnLNz0A%2FJ5JGbR04%3D",
                      "date": "2025-01-22 18:47:34",
                      "domain": "tiktok.com",
                      "downloads": 402,
                      "duration": 63,
                      "is_ad": false,
                      "likes": 26680,
                      "music_author": "Kya",
                      "music_title": "original sound - cookinwithkya",
                      "play_count": 3413280,
                      "shares": 2314,
                      "snippet": "#fyp #cookingwithkya #viral_video ",
                      "source": "TikTok",
                      "title": "#fyp #cookingwithkya #viral_video ",
                      "url": "https://www.tiktok.com/@cookinwithkya/video/7462813303555853610"
                    },
                    {
                      "author": "my.africa.culture0",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/c445f5bb5f0860b020fee021be6f7342~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=41309d00&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=SIq0mQ8D7THOgmyl56sluDItY5g%3D",
                      "author_name": "My Africa Culture 🦁",
                      "comments": 635,
                      "cover": "https://p19-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/o0BEti3DyIu0UiKCAy5fibXXobC1AIwii0IVAC~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=048fab23&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=k50eI1twJJ32VYF2CysQDXvn2uQ%3D",
                      "date": "2026-02-28 09:46:36",
                      "domain": "tiktok.com",
                      "downloads": 426,
                      "duration": 19,
                      "is_ad": false,
                      "likes": 15313,
                      "music_author": "My Africa Culture 🦁",
                      "music_title": "original sound - my.africa.culture0",
                      "play_count": 791555,
                      "shares": 35172,
                      "snippet": "Beautiful woman,traditional lunch cooking 🍳  #africa ",
                      "source": "TikTok",
                      "title": "Beautiful woman,traditional lunch cooking 🍳  #africa ",
                      "url": "https://www.tiktok.com/@my.africa.culture0/video/7611850232090938646"
                    },
                    {
                      "author": "briangelecooks",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/df05202d609d32b2d6dc46c3ab9ce9de~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=6b6a4be6&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=rMfsUdBuZsE7b1ItjE6saZL0ISo%3D",
                      "author_name": "Briangelecooks",
                      "comments": 1022,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/o8NBlHFfvM7mFEAmERRSR1TDAEhEVUBeD3zhIX~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=108311fb&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=fF6HDfGOU4jZuv2XFG5P0owZIK8%3D",
                      "date": "2024-08-26 19:18:46",
                      "domain": "tiktok.com",
                      "downloads": 15902,
                      "duration": 24,
                      "is_ad": false,
                      "likes": 388008,
                      "music_author": "Destiny's Child",
                      "music_title": "Cater 2 U (Storch Remix)",
                      "play_count": 4408531,
                      "shares": 24273,
                      "snippet": "Love on a plate😍 #fy #fypage #cooking #food ",
                      "source": "TikTok",
                      "title": "Love on a plate😍 #fy #fypage #cooking #food ",
                      "url": "https://www.tiktok.com/@briangelecooks/video/7407529702761450782"
                    },
                    {
                      "author": "voy123123",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/7313358425897828398~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=8201cf72&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=nFIjyEb1mSs2%2BXThdXikOOMZX40%3D",
                      "author_name": "Cooking",
                      "comments": 87126,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/okQkpIjIBy4geAo2wiPPAAD4Ei9SR0BCXzsIcn~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=62ba6d16&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=Sx8WOQ%2FF51rGrVcudrYI6uaNH2I%3D",
                      "date": "2025-11-27 00:53:03",
                      "domain": "tiktok.com",
                      "downloads": 9628,
                      "duration": 7,
                      "is_ad": false,
                      "likes": 3120624,
                      "music_author": "Jona",
                      "music_title": "original sound - jona5290",
                      "play_count": 174671075,
                      "shares": 2089279,
                      "snippet": "#cooking #fyp #foryou ",
                      "source": "TikTok",
                      "title": "#cooking #fyp #foryou ",
                      "url": "https://www.tiktok.com/@voy123123/video/7577201734620155149"
                    },
                    {
                      "author": "leah_jai",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/7ebbde0b00bc81fd872b209455a42d9f~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=e1d59a67&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=HZZnhq%2F%2Bh14EkrEYbhA69SN%2FYa8%3D",
                      "author_name": "leah_jai",
                      "comments": 22,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/owEABIY5C9BCAAhpdAAhBEaWARgoWBtigRiWP~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=07094e7c&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=b%2BjxXWoBTfzyNlG8rv4vcSLzzuY%3D",
                      "date": "2026-01-08 19:14:17",
                      "domain": "tiktok.com",
                      "downloads": 68,
                      "duration": 10,
                      "is_ad": false,
                      "likes": 2565,
                      "music_author": "John Lennon",
                      "music_title": "Beautiful Boy (Darling Boy) - Remastered 2010",
                      "play_count": 81927,
                      "shares": 339,
                      "snippet": "who can relate? 💋 #Love #housewife #stayhome #cooking #feminine ",
                      "source": "TikTok",
                      "title": "who can relate? 💋 #Love #housewife #stayhome #cooking #feminine ",
                      "url": "https://www.tiktok.com/@leah_jai/video/7593071186633035031"
                    },
                    {
                      "author": "momostillfedup",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/08195c0907edf757ded5bf890ed0b282~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=ce13dce8&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=P5wnRgk2hoVnwmnPlEbUcklrloQ%3D",
                      "author_name": "MoMo Goat Throat",
                      "comments": 11992,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/f2ac67c150f544db9cd213011d46ee6c~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=10402&idc=no1a&ps=13740610&refresh_token=6bfc0438&shcp=9b759fb9&shp=c1333099&t=4d5b0474&x-expires=1775358000&x-signature=1m%2BnMGwKxXl7vSNX8h12Gp4cTBk%3D",
                      "date": "2026-02-04 00:11:16",
                      "domain": "tiktok.com",
                      "downloads": 39032,
                      "duration": 14,
                      "is_ad": false,
                      "likes": 74876,
                      "music_author": "MoMo Goat Throat",
                      "music_title": "original sound - momostillfedup",
                      "play_count": 8628285,
                      "shares": 84527,
                      "snippet": "Cooking Gorilla paw Jamaican style 😋 #fyp #explore #mukbang #food",
                      "source": "TikTok",
                      "title": "Cooking Gorilla paw Jamaican style 😋 #fyp #explore #mukbang #food",
                      "url": "https://www.tiktok.com/@momostillfedup/video/7602795829279100173"
                    },
                    {
                      "author": "villagefyp",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/4d14f5d5b34a70b5bbc2e06aa649750d~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=47989261&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=V%2Ff2dh5jDTm2JZZ8es6XzYtCU7I%3D",
                      "author_name": "village",
                      "comments": 16,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/owujRNIe0T0gCaIJIBj1NxAIGeAkLLCwfDaTGQ~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=b136476d&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=lLmoFIf7Y4wQU%2FmvOE0FdAv%2Bfss%3D",
                      "date": "2026-02-21 22:41:19",
                      "domain": "tiktok.com",
                      "downloads": 70,
                      "duration": 65,
                      "is_ad": false,
                      "likes": 641,
                      "music_author": "Walid Ahmad",
                      "music_title": "Hazaragi",
                      "play_count": 60147,
                      "shares": 44,
                      "snippet": "villag cooking #cooking #Recipe #foryoupage❤️❤️ #cookinggirl #village ",
                      "source": "TikTok",
                      "title": "villag cooking #cooking #Recipe #foryoupage❤️❤️ #cookinggirl #village ",
                      "url": "https://www.tiktok.com/@villagefyp/video/7609452291384544534"
                    },
                    {
                      "author": "preethy.11",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/8f98889a8554a5f378bd9d86055c1351~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=c4cfd958&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=wxMQL05M5ZdKH%2BHBH4e03SmPmYg%3D",
                      "author_name": "Preethy",
                      "comments": 21,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/00344241a90740ed8b03bf5942643ca3~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=10402&idc=no1a&ps=13740610&refresh_token=f4bc9639&shcp=9b759fb9&shp=c1333099&t=4d5b0474&x-expires=1775358000&x-signature=VIfsHQcXjyFrYPG6X00hMa3NtmE%3D",
                      "date": "2026-03-16 01:58:28",
                      "domain": "tiktok.com",
                      "downloads": 0,
                      "duration": 11,
                      "is_ad": false,
                      "likes": 8513,
                      "music_author": "Chris Rainbow",
                      "music_title": "Be Like a Woman",
                      "play_count": 53007,
                      "shares": 665,
                      "snippet": "I just LOVE cooking for my people 🫶🏽 #cooking #steak #lovelanguages #6ix #chef ",
                      "source": "TikTok",
                      "title": "I just LOVE cooking for my people 🫶🏽 #cooking #steak #lovelanguages #6ix #chef ",
                      "url": "https://www.tiktok.com/@preethy.11/video/7617666944308743432"
                    },
                    {
                      "author": "lumithecreatorx",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-avt-0068c001-no/4fe50bf00c76c3fc3309a9764323667a~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=b1969459&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=xX5f3%2B2Ov2zkeu27DhzlfyTqsRc%3D",
                      "author_name": "Lumi",
                      "comments": 164,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/oA6ksFIEEI4IgLCpOIfky9LARTbqpDkeFBTUBD~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=fc1ba9d6&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=9uXQsXZSV4Fphl9o8LlUjP%2FL6Sc%3D",
                      "date": "2025-11-03 17:41:28",
                      "domain": "tiktok.com",
                      "downloads": 277,
                      "duration": 28,
                      "is_ad": false,
                      "likes": 90631,
                      "music_author": "Aventura",
                      "music_title": "Obsesion",
                      "play_count": 816503,
                      "shares": 11532,
                      "snippet": "I guess this counts - ingredients: - 250g chicken breast - 5 soft shell tacos - 1 low fat mozzarella - 1 avocado - 35g of yogurt  - 2 tomatoes - 3 limes - spring onions #cooking #dating ",
                      "source": "TikTok",
                      "title": "I guess this counts - ingredients: - 250g chicken breast - 5 soft shell tacos - 1 low fat mozzarella - 1 avocado - 35g of yogurt  - 2 tomatoes - 3 limes - spring onions #cooking #dating ",
                      "url": "https://www.tiktok.com/@lumithecreatorx/video/7568555656110771458"
                    },
                    {
                      "author": "naraazizasmith",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/7312089511524040746~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=fff18417&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=BQed2u7OvMHnUlhHuLlUuqJNl0E%3D",
                      "author_name": "Nara Smith",
                      "comments": 26607,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast5-p-0068-tx/oQ9IsiPuZmg4F28IzGlUCCEgKBM578lC7uAiB~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=2c1a8b8d&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=64wC5QEhOAcMSberRA%2BlkIh3%2B0g%3D",
                      "date": "2025-02-24 22:16:57",
                      "domain": "tiktok.com",
                      "downloads": 164,
                      "duration": 94,
                      "is_ad": false,
                      "likes": 1724007,
                      "music_author": "Timothy Cole",
                      "music_title": "Autumn Leaves",
                      "play_count": 27644256,
                      "shares": 237590,
                      "snippet": "cravings.. #EasyRecipe #homecooking #fypシ  #döner #momtok ",
                      "source": "TikTok",
                      "title": "cravings.. #EasyRecipe #homecooking #fypシ  #döner #momtok ",
                      "url": "https://www.tiktok.com/@naraazizasmith/video/7475113012874186030"
                    },
                    {
                      "author": "grooovybroth",
                      "author_avatar": "https://p19-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/a61ad5e2de937e61bb010dae878e35d2~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=7c339700&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=KDszmn7PRYpZLnacdUzU0VHaaig%3D",
                      "author_name": "GroovyBroth",
                      "comments": 324,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast8-p-0068-tx2/oYENIAiAIvTZAdB08iDyfV3DM61CriAAKgtVBb~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=7f9c95f1&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=KEaE3dKrG9yQyD%2Buj4zFrMqOZ08%3D",
                      "date": "2025-09-19 20:30:17",
                      "domain": "tiktok.com",
                      "downloads": 168,
                      "duration": 60,
                      "is_ad": false,
                      "likes": 11030,
                      "music_author": "GroovyBroth",
                      "music_title": "original sound - grooovybroth",
                      "play_count": 1369324,
                      "shares": 3046,
                      "snippet": "Squash Season 👹 Day 114 𓍊𓋼  #perpetualstew #stew #cooking #chef #soup ",
                      "source": "TikTok",
                      "title": "Squash Season 👹 Day 114 𓍊𓋼  #perpetualstew #stew #cooking #chef #soup ",
                      "url": "https://www.tiktok.com/@grooovybroth/video/7551900301062589726"
                    },
                    {
                      "author": "chefsanddogs",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-avt-0068/19a0e8da6122ec026af79e7a39e00768~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=2d7b5d38&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=gm8r%2Fn5EmWqklgwNYwx%2FO6ddgPc%3D",
                      "author_name": "Chefs and Dogs",
                      "comments": 359,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-alisg-p-0037/oIIAhQAIsEUAOAjwqvQACFEDvSDdqoA7hfUefo~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=880b4128&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=4KEjq4n9yV2Ba6Z33W1ozWtDPvg%3D",
                      "date": "2025-06-10 20:13:08",
                      "domain": "tiktok.com",
                      "downloads": 101,
                      "duration": 13,
                      "is_ad": false,
                      "likes": 15991,
                      "music_author": "Chefs and Dogs",
                      "music_title": "original sound - chefsanddogs",
                      "play_count": 2189914,
                      "shares": 3945,
                      "snippet": "Can’t commit to people, Can commit to this. #EasyRecipe #2ingredients #feedfreshchallenge #Recipe #simple #fun #viraltrend #dog #dogsofttiktok ",
                      "source": "TikTok",
                      "title": "Can’t commit to people, Can commit to this. #EasyRecipe #2ingredients #feedfreshchallenge #Recipe #simple #fun #viraltrend #dog #dogsofttiktok ",
                      "url": "https://www.tiktok.com/@chefsanddogs/video/7514416288203017490"
                    },
                    {
                      "author": "levinhotho",
                      "author_avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-useast2a-avt-0068-euttp/b0d4068c25fad81d9b27afb8ec6593c0~tplv-tiktokx-cropcenter-q:300:300:q70.jpeg?dr=9605&idc=no1a&ps=87d6e48a&refresh_token=8dc2d8ab&s=SEARCH&sc=avatar&shcp=c1333099&shp=d05b14bd&t=223449c4&x-expires=1775422800&x-signature=Ox3gSKk2AGNt%2BsfXmc8RkELt6oM%3D",
                      "author_name": "Levin",
                      "comments": 2052,
                      "cover": "https://p16-common-sign.tiktokcdn-eu.com/tos-no1a-p-0037-no/o4WDy7DHEFAoISBmnCEkQyEyFeMEfRgYnX5mga~tplv-tiktokx-origin.image?biz_tag=musically_video.video_cover&dr=1347&idc=no1a&ps=933b5bde&refresh_token=48912950&s=SEARCH&sc=cover&shcp=c1333099&shp=d05b14bd&t=bacd0480&x-expires=1775422800&x-signature=OP45slTUjj96zxJAhGU1t40zyLM%3D",
                      "date": "2025-01-28 12:20:46",
                      "domain": "tiktok.com",
                      "downloads": 980,
                      "duration": 15,
                      "is_ad": false,
                      "likes": 170169,
                      "music_author": "Knights Bridge",
                      "music_title": "Le Festin (From: Ratatouille)",
                      "play_count": 3955778,
                      "shares": 41773,
                      "snippet": "Pasta cooking night @Lili Hamann ",
                      "source": "TikTok",
                      "title": "Pasta cooking night @Lili Hamann ",
                      "url": "https://www.tiktok.com/@levinhotho/video/7464940236754242838"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving TikTok data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/tiktok/users": {
      "get": {
        "tags": [
          "TikTok"
        ],
        "operationId": "searchTiktokUsers",
        "summary": "Search TikTok Users",
        "description": "Search for TikTok users by keyword. Returns username, numeric user ID, display name, bio, follower count, following count, total likes received, video count, verification status, private-account flag, avatar URL, and a link to the profile. Supports fetching multiple pages in a single API call (billed per page).\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/tiktok-users"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "cooking"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge (1-10). Each page returns up to 30 users. Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 10,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTiktokUsersResponse"
                },
                "example": {
                  "count": 30,
                  "pages": 1,
                  "users": [
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/86b185f619e7db818b1724e6ce6c858d~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=28c2166a&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=o8apIbONrbxUKHzQeXnOaGaQgHY%3D",
                      "bio": "✌️im staying unknown till I hit 10.k ✌️",
                      "followers": 137,
                      "following": 1,
                      "is_private": false,
                      "likes": 7,
                      "nickname": "🍑dance🍑",
                      "url": "https://www.tiktok.com/@dancing.in.my.oodie_0",
                      "user_id": "7042766232437277701",
                      "username": "dancing.in.my.oodie_0",
                      "verified": false,
                      "video_count": 1
                    },
                    {
                      "avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/0a19e0f79882165fb48a0fc44c5aee0d~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=f41840dd&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=RpIB7Lk24j8yh%2BUumV4EBm4Erto%3D",
                      "bio": "welcoom to my tik tok acount",
                      "followers": 5096,
                      "following": 4362,
                      "is_private": false,
                      "likes": 4742,
                      "nickname": "dance",
                      "url": "https://www.tiktok.com/@dancekabyle5",
                      "user_id": "6970594515879330822",
                      "username": "dancekabyle5",
                      "verified": false,
                      "video_count": 18
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/musically-maliva-obj/1594805258216454~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=0ea301d4&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=uva0JcQIsoTniFa3g21WXm%2BNXII%3D",
                      "bio": "No bio yet",
                      "followers": 482,
                      "following": 5,
                      "is_private": false,
                      "likes": 149,
                      "nickname": "user71837325066",
                      "url": "https://www.tiktok.com/@danyancatsq_20k",
                      "user_id": "7011581515725784065",
                      "username": "danyancatsq_20k",
                      "verified": false,
                      "video_count": 2
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/877bc6360377ded9cbe1452f70cea02a~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=4cacffde&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=gdjSVemTJ6ZQpriCwBlUQdKiyoo%3D",
                      "bio": "Stream Dancing with the Stars now on @Disney+! 🪩",
                      "followers": 5490131,
                      "following": 133,
                      "is_private": false,
                      "likes": 113718458,
                      "nickname": "Dancing with the Stars #DWTS",
                      "url": "https://www.tiktok.com/@officialdwts",
                      "user_id": "6855000028106408965",
                      "username": "officialdwts",
                      "verified": true,
                      "video_count": 1966
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/6fb7faeb8b59cd15e3ff8496e5b96b4a~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=e510db92&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=W520iaHrq99HF6oGd10%2B%2BoeXKIE%3D",
                      "bio": "",
                      "followers": 9646,
                      "following": 991,
                      "is_private": false,
                      "likes": 121133,
                      "nickname": "Dance",
                      "url": "https://www.tiktok.com/@sweetdance18",
                      "user_id": "6594151292272541702",
                      "username": "sweetdance18",
                      "verified": false,
                      "video_count": 1028
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/5249f052ac46d91b8070ed877085d1a5~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=94cedc59&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=OGFjWqKhH9Bp9dWLq3czaxipmSU%3D",
                      "bio": "🥰😍❤🖤",
                      "followers": 190739,
                      "following": 10000,
                      "is_private": false,
                      "likes": 1168524,
                      "nickname": "𝗗𝗔𝗡𝗖𝗘",
                      "url": "https://www.tiktok.com/@shwe78901",
                      "user_id": "7394420493305381905",
                      "username": "shwe78901",
                      "verified": false,
                      "video_count": 1226
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/afb30fdc139fcccde4a21f31379c6495~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=a9cb89fb&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=bByWItc0AIqWC3LF22RlzkoLB08%3D",
                      "bio": "Betty 💿🎶 \nthink and stay positive🙌\n📩 Collabs: hello@example.com",
                      "followers": 1580365,
                      "following": 56,
                      "is_private": false,
                      "likes": 48817742,
                      "nickname": "danceyourday",
                      "url": "https://www.tiktok.com/@danceyourday",
                      "user_id": "6805884193185793029",
                      "username": "danceyourday",
                      "verified": false,
                      "video_count": 263
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/d2797361e1933eef55cd07708540e59f~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=f57b1362&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=meuUPV81JzbVKZIPzXiVyazanEA%3D",
                      "bio": "douyin dance\n(source in caption)",
                      "followers": 1474591,
                      "following": 1,
                      "is_private": false,
                      "likes": 42154904,
                      "nickname": "douyin dance",
                      "url": "https://www.tiktok.com/@douyin_dance",
                      "user_id": "7109002349570933761",
                      "username": "douyin_dance",
                      "verified": false,
                      "video_count": 442
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/d4543a53bef605744f5ebb25efe8ec9c~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=13617577&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=ib7kFp51njJp8drSZODDgW2BQYk%3D",
                      "bio": "Hope you have a nice day! 🥰\n❤️❤️ Follow me for more videos ❤️❤️",
                      "followers": 2324437,
                      "following": 4,
                      "is_private": false,
                      "likes": 18484597,
                      "nickname": "Kids dance tv",
                      "url": "https://www.tiktok.com/@kids.dance.tv",
                      "user_id": "7368906671727068192",
                      "username": "kids.dance.tv",
                      "verified": false,
                      "video_count": 724
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/6bf8c4c7fe9b0449977c12b9424b1322~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=aa47f337&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=sdhjHvXwvhoFU4HakG02Vxj3W%2B4%3D",
                      "bio": "open for collab/music promo!\n✉️: collab.contact@example.com\n(connect with me in my link below)",
                      "followers": 310943,
                      "following": 11,
                      "is_private": false,
                      "likes": 3531125,
                      "nickname": "Scarlet Bae",
                      "url": "https://www.tiktok.com/@iced.scxrlet",
                      "user_id": "6790307812507894785",
                      "username": "iced.scxrlet",
                      "verified": false,
                      "video_count": 220
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7348263100820226090~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=2de52d91&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=EzWvV5xePxuKIMhvASdNi6GQt2I%3D",
                      "bio": "Remember ❤ And Follow To Support Me\nThanks You 😘🕶",
                      "followers": 469488,
                      "following": 24,
                      "is_private": false,
                      "likes": 4952229,
                      "nickname": "Dance",
                      "url": "https://www.tiktok.com/@dancehop0",
                      "user_id": "7141996317937353774",
                      "username": "dancehop0",
                      "verified": false,
                      "video_count": 0
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/e9f19256c1524cb97ebd7ee2d9682c84~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=280d6614&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=C8n7JqM%2BPSPmk40IEJKr5SyetWg%3D",
                      "bio": "DANCER - KOLs\nFor Work: work.contact@example.com\nĐăng ký học nhảy\n👇🏻",
                      "followers": 1470781,
                      "following": 31,
                      "is_private": false,
                      "likes": 19028699,
                      "nickname": "BoBoDanceStudio",
                      "url": "https://www.tiktok.com/@bobo_le",
                      "user_id": "6608510262931111938",
                      "username": "bobo_le",
                      "verified": false,
                      "video_count": 1013
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/cfe1b99e0812242240ac77d2a34d26ed~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=5d614d94&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=LJIY5haU%2FsilmMNSkwlXUMe0SEA%3D",
                      "bio": "",
                      "followers": 2357039,
                      "following": 0,
                      "is_private": false,
                      "likes": 23341627,
                      "nickname": "dancingfireflies.tv",
                      "url": "https://www.tiktok.com/@dancingfireflies.tv",
                      "user_id": "7517573370419250192",
                      "username": "dancingfireflies.tv",
                      "verified": false,
                      "video_count": 0
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/df0dd6661ddf67c3694e73cab2bae736~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=85744abe&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=EJpwxsiqtedPVNIbv2cdc%2BWlydU%3D",
                      "bio": "",
                      "followers": 6427,
                      "following": 105,
                      "is_private": true,
                      "likes": 12085,
                      "nickname": "@Dance",
                      "url": "https://www.tiktok.com/@dance_love171",
                      "user_id": "6644197877420195846",
                      "username": "dance_love171",
                      "verified": false,
                      "video_count": 0
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/57f012a466981f7ad1e13ea9edfc0606~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=2e903059&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=kkLdXgsd2apdcrgMUGUulb53OpQ%3D",
                      "bio": "PAGE MONITORED BY PARENTS.               \n                                                                                 \n\nSubscribe to our YouTube",
                      "followers": 920058,
                      "following": 5695,
                      "is_private": false,
                      "likes": 15667372,
                      "nickname": "Jasper boyz",
                      "url": "https://www.tiktok.com/@jasperboyz",
                      "user_id": "7089488258359788587",
                      "username": "jasperboyz",
                      "verified": false,
                      "video_count": 1095
                    },
                    {
                      "avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/397e9ed9e61b2cdd0c45cdad6f1f1184~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=4af1eed2&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=8PbXxj7xOyOvLIvPnkIf5x3VcPk%3D",
                      "bio": "21\nSet Apart † \nIG: __dance__tutorialss_\n📧:dance.contact@example.com\nDANCE!",
                      "followers": 1635967,
                      "following": 153,
                      "is_private": false,
                      "likes": 19487937,
                      "nickname": "💜Dance tutorials❤️",
                      "url": "https://www.tiktok.com/@__dance__tutorialss_",
                      "user_id": "6770622838484255750",
                      "username": "__dance__tutorialss_",
                      "verified": false,
                      "video_count": 1295
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/23fd71f69393e42d90b6cb034b36aefa~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=2490f1e8&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=nrE00S1nVj%2FqFG2rfHou%2BgDcfgo%3D",
                      "bio": "Dance / Classes / Happiness / LifeStyle",
                      "followers": 9735962,
                      "following": 246,
                      "is_private": false,
                      "likes": 74131788,
                      "nickname": "FitDance",
                      "url": "https://www.tiktok.com/@fitdance",
                      "user_id": "135176330303643648",
                      "username": "fitdance",
                      "verified": true,
                      "video_count": 3175
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/8d307ed100b36d8e2723d240d2bf4fd4~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=5e859559&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=qeTNjHGL2epbP5vvlfXvYzxYg%2FQ%3D",
                      "bio": "👑",
                      "followers": 290110,
                      "following": 92,
                      "is_private": false,
                      "likes": 6308918,
                      "nickname": "꧁•🕺𝘿 𝘼 𝙉 𝘾 𝙀💃•꧂",
                      "url": "https://www.tiktok.com/@salman_butt_55",
                      "user_id": "7600093750514287646",
                      "username": "salman_butt_55",
                      "verified": false,
                      "video_count": 281
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/ecf714c77bc0ad124c63c7b672aa0591~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=368ca49f&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=Ewl1axV%2B%2BBHBI0nmhcocu2M%2FILw%3D",
                      "bio": "For work 📩: classes.contact@example.com\n\n🎬 Watch more on our YouTube: Thầy Huy Kid Dance 👇:",
                      "followers": 1174572,
                      "following": 56,
                      "is_private": false,
                      "likes": 16209733,
                      "nickname": "Thầy Huy Kid Dance",
                      "url": "https://www.tiktok.com/@thayhuykiddance",
                      "user_id": "7356433169094722577",
                      "username": "thayhuykiddance",
                      "verified": false,
                      "video_count": 1206
                    },
                    {
                      "avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/c23bf162e89ef4d5952ff42dc80b171b~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=61116e56&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=S0o30tc%2BTzLQSFdlndD9p0cepK4%3D",
                      "bio": "I post every 10am ☘️☘️",
                      "followers": 3111894,
                      "following": 912,
                      "is_private": false,
                      "likes": 30032773,
                      "nickname": "PHILOS ☘️☘️☘️",
                      "url": "https://www.tiktok.com/@dancephilos",
                      "user_id": "6895284128297337862",
                      "username": "dancephilos",
                      "verified": false,
                      "video_count": 1062
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/7d086e92449a41bdbccf0ef5b634fcc8~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=edfa8617&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=%2Fs29apKevWM6izs07DEHRRrySiU%3D",
                      "bio": "🤍💐🥂\n@Alexa @Meghan",
                      "followers": 140,
                      "following": 4,
                      "is_private": false,
                      "likes": 200,
                      "nickname": "🤞🏻💐🤍🥂",
                      "url": "https://www.tiktok.com/@dance_dance_2417",
                      "user_id": "7558276400827565111",
                      "username": "dance_dance_2417",
                      "verified": false,
                      "video_count": 1
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/a17cd28f4d253f66ef564386886beb0d~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=b111a8d1&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=ltz%2FzfzlrmkK8ZW5uLHMCAiGz5E%3D",
                      "bio": "🔥 Te enseño a bailar sí o sí \nAprende a bailar aquí ⬇️",
                      "followers": 1169727,
                      "following": 343,
                      "is_private": false,
                      "likes": 6676545,
                      "nickname": "Lau Dance",
                      "url": "https://www.tiktok.com/@laudance_",
                      "user_id": "6803807423251055622",
                      "username": "laudance_",
                      "verified": false,
                      "video_count": 245
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/7377898368225247275~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=7773c09f&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=tpsA7qDWpthreGHkp%2BM8B6V311k%3D",
                      "bio": "Folow để mình có thêm động lực ra video mới nha !",
                      "followers": 1920639,
                      "following": 3,
                      "is_private": false,
                      "likes": 19385210,
                      "nickname": "DJ Yoyo",
                      "url": "https://www.tiktok.com/@djyoyodance",
                      "user_id": "7182066799658943534",
                      "username": "djyoyodance",
                      "verified": false,
                      "video_count": 2003
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/f7ff76329d97af08026aab4960f5b401~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=589acb5d&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=5phOvkHfGadkyUDDfqBJdGtq%2Fx4%3D",
                      "bio": "fan",
                      "followers": 16725,
                      "following": 13,
                      "is_private": false,
                      "likes": 850590,
                      "nickname": "#dance",
                      "url": "https://www.tiktok.com/@dancingtillyoudrop",
                      "user_id": "6966188113421485061",
                      "username": "dancingtillyoudrop",
                      "verified": false,
                      "video_count": 654
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/838bb42c1969ade4478465d4f4b6adeb~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=a19c7b85&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=IDbQvrUMFfBj8mp4RU8EaDrJZZ0%3D",
                      "bio": "lnternational Dance Organization based in 🇿🇦",
                      "followers": 5809222,
                      "following": 730,
                      "is_private": false,
                      "likes": 92186509,
                      "nickname": "Global Dance Supreme",
                      "url": "https://www.tiktok.com/@globaldancesupreme",
                      "user_id": "6765816722516788230",
                      "username": "globaldancesupreme",
                      "verified": true,
                      "video_count": 1858
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-maliva-avt-0068/5200f40df2a18e476c0c3e8c85937f61~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=7274b504&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=iJ4cZzs7uwS46lutAT79V8QmEtM%3D",
                      "bio": "Bem-Vindos💞\nDeus acima de tudo! casada💍 \n🌹CONTA OFICIAL🌹 RJ🇧🇷",
                      "followers": 1773205,
                      "following": 206,
                      "is_private": false,
                      "likes": 27178252,
                      "nickname": "💫🌷ℱ𝓁ℴ𝓇🌷🦍🦾💫",
                      "url": "https://www.tiktok.com/@flor.dance.conta.oficial",
                      "user_id": "6969781170586616837",
                      "username": "flor.dance.conta.oficial",
                      "verified": false,
                      "video_count": 5572
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/3b97b8b861fe0b923674a4ec50863e50~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=47e42193&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=jsy3ssgM31u3rsy%2BbpqKEhIfr3E%3D",
                      "bio": "Follow my main @chocolate_.drop\n || Dance to inspire🌟 ||\n   HTX",
                      "followers": 2336222,
                      "following": 96,
                      "is_private": false,
                      "likes": 37026934,
                      "nickname": "The Dance Family 🔥👯‍♀️",
                      "url": "https://www.tiktok.com/@chocolate_.droppp",
                      "user_id": "6525171426180207616",
                      "username": "chocolate_.droppp",
                      "verified": false,
                      "video_count": 2071
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast2a-avt-0068-euttp/b22a46dab6f028babfd499f64bf605fb~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=0a0e149e&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=7qvzKmBxQLyi3EBc8ebj0n9DYd0%3D",
                      "bio": "only official account from furkan <3\nACCOUNT MANAGED BY PARENTS, NO VIOLATIONS ! \nbookings 💌 : bookings.contact@example.com",
                      "followers": 1234717,
                      "following": 155,
                      "is_private": false,
                      "likes": 20820029,
                      "nickname": "localdancefluencer",
                      "url": "https://www.tiktok.com/@furkanyumruk",
                      "user_id": "7434361735766000672",
                      "username": "furkanyumruk",
                      "verified": false,
                      "video_count": 177
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/9c0a42e45825bbe4bd64f79752bccadc~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=0a6ef34f&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=PjmL%2B%2BKXJD4xasHNH0U%2BkallgXM%3D",
                      "bio": "God is always 1st 🙏🏻\n🧜🏼‍♀️ SIRENA 🧜🏼‍♀️ 🎶🔜",
                      "followers": 6759618,
                      "following": 654,
                      "is_private": false,
                      "likes": 202369466,
                      "nickname": "A•N•D•R•E•A",
                      "url": "https://www.tiktok.com/@dance.like.andrea",
                      "user_id": "6787966328974541829",
                      "username": "dance.like.andrea",
                      "verified": false,
                      "video_count": 3841
                    },
                    {
                      "avatar": "https://p19-common-sign.tiktokcdn-us.com/tos-useast8-avt-0068-tx2/e9393224408d419d532acf6c818db7d2~tplv-tiktokx-cropcenter-q:100:100:q70.webp?biz_tag=musically_user.user_cover&dr=8835&idc=useast5&ps=87d6e48a&refresh_token=78df8304&s=SEARCH&sc=avatar&shcp=c1333099&shp=30310797&t=223449c4&x-expires=1775422800&x-signature=2Vqax7ksfm0U%2FonCwdHqLEditfM%3D",
                      "bio": "Just Dance 2026 Edition is out now!! 🎉",
                      "followers": 1442255,
                      "following": 281,
                      "is_private": false,
                      "likes": 22580008,
                      "nickname": "justdancegame",
                      "url": "https://www.tiktok.com/@justdance",
                      "user_id": "6606409690161545222",
                      "username": "justdance",
                      "verified": true,
                      "video_count": 426
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving TikTok data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/tiktok/user": {
      "get": {
        "tags": [
          "TikTok"
        ],
        "operationId": "tiktokUserProfile",
        "summary": "TikTok User Profile",
        "description": "Look up a single TikTok user by username, numeric user ID, or profile URL. Returns bio, bio link, follower / following counts, total likes, video count, verification status, join date, and linked Instagram, X/Twitter, and YouTube accounts. Provide exactly one of `username`, `user_id`, or `url`.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/tiktok-user"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": false,
            "description": "TikTok username, with or without leading @ (max 100 characters). Provide exactly one of username, user_id, or url.",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "gordonramsayofficial"
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "description": "Numeric TikTok user ID, as returned by Search Users. Digits only, max 20 characters, and not all zeros. Provide exactly one of username, user_id, or url.",
            "schema": {
              "type": "string",
              "maxLength": 20
            }
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "TikTok profile URL, e.g. https://www.tiktok.com/@tiktok (max 500 characters). Must include the tiktok.com/@username segment. Provide exactly one of username, user_id, or url.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.tiktok.com/@gordonramsayofficial"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TiktokUserProfileResponse"
                },
                "example": {
                  "user": {
                    "username": "gordonramsayofficial",
                    "nickname": "Gordon Ramsay",
                    "user_id": "6747935906352907269",
                    "sec_uid": "MS4wLjABAAAAv3zolJLlWp-WbKXqSZwVSflDdwcbjPADRG-dhb68k30dQjkFpkRs4HiMvWeeIyVv",
                    "bio": "I cook sometimes too.....",
                    "bio_link": "GordonRamsay.com/",
                    "verified": true,
                    "is_private": false,
                    "followers": 40817126,
                    "following": 573,
                    "likes": 728577233,
                    "video_count": 839,
                    "videos_liked": 0,
                    "avatar": "https://p19-common-sign.tiktokcdn-us.com/.../photo.webp",
                    "avatar_hd": "https://p19-common-sign.tiktokcdn-us.com/.../photo_1080.webp",
                    "date_joined": "2019-10-18 17:42:11",
                    "date_joined_timestamp": 1571420531,
                    "instagram_username": "",
                    "twitter_id": "",
                    "youtube_channel_id": "",
                    "youtube_channel_title": "",
                    "url": "https://www.tiktok.com/@gordonramsayofficial"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or multiple parameters, or a value that is too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "TikTok user not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving TikTok data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/tiktok/video": {
      "get": {
        "tags": [
          "TikTok"
        ],
        "operationId": "tiktokVideoDetails",
        "summary": "TikTok Video Details",
        "description": "Look up a single TikTok video by URL or numeric video ID. Returns the caption, play / like / comment / share / save counts, watermark-free playback and download URLs, cover images, music track info, and author details. Provide exactly one of `url` or `video_id`.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/tiktok-video"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "TikTok video URL, e.g. https://www.tiktok.com/@tiktok/video/7516594811734854943 (max 500 characters). Must contain tiktok.com/. Provide exactly one of url or video_id.",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.tiktok.com/@tiktok/video/7516594811734854943"
          },
          {
            "name": "video_id",
            "in": "query",
            "required": false,
            "description": "Numeric TikTok video ID: the number at the end of a video URL. Digits only, max 25 characters, and not all zeros. Provide exactly one of url or video_id.",
            "schema": {
              "type": "string",
              "maxLength": 25
            },
            "example": "7516594811734854943"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TiktokVideoDetailsResponse"
                },
                "example": {
                  "video": {
                    "video_id": "7516594811734854943",
                    "url": "https://www.tiktok.com/@tiktok/video/7516594811734854943",
                    "title": "🌈🐬🦄 life after @Zara Larsson Symphony vocals 🌈🐬🦄",
                    "region": "US",
                    "date": "2025-06-16 17:07:10",
                    "date_timestamp": 1750093630,
                    "duration": 66,
                    "play_count": 18912653,
                    "likes": 879920,
                    "comments": 4382,
                    "shares": 17420,
                    "downloads": 1003,
                    "saves": 38685,
                    "is_ad": true,
                    "cover": "https://p16-common-sign.tiktokcdn-us.com/.../cover.jpeg",
                    "dynamic_cover": "https://p16-common-sign.tiktokcdn-us.com/.../dynamic.image",
                    "origin_cover": "https://p16-common-sign.tiktokcdn-us.com/.../origin.webp",
                    "video_url": "https://v16m.tiktokcdn-us.com/.../video.mp4",
                    "video_url_hd": "https://v16.tokcdn.com/.../7516594811734854943_original.mp4",
                    "video_url_watermarked": "https://v16m.tiktokcdn-us.com/.../video_wm.mp4",
                    "size": 7786703,
                    "size_hd": 38711004,
                    "size_watermarked": 7988034,
                    "author": "tiktok",
                    "author_name": "TikTok",
                    "author_id": "107955",
                    "author_avatar": "https://p19-common-sign.tiktokcdn-us.com/.../avatar.jpeg",
                    "author_url": "https://www.tiktok.com/@tiktok",
                    "music_id": "7516599978421209887",
                    "music_title": "original sound - tiktok",
                    "music_author": "TikTok",
                    "music_url": "https://v16-ies-music.tiktokcdn-us.com/.../audio.mp3",
                    "music_cover": "https://p16-common-sign.tiktokcdn-us.com/.../music.jpeg",
                    "music_album": "",
                    "music_original": true,
                    "music_duration": 66,
                    "mentioned_user_ids": [
                      "205879097384816641"
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or multiple parameters, or a value that is too long",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "TikTok video not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving TikTok data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/company/reviews": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "trustpilotCompanyReviews",
        "summary": "Trustpilot Company Reviews",
        "description": "Get a company's Trustpilot reviews and full profile by website domain. Each page returns up to 20 reviews; one call fetches up to 10 pages.\n\n**Price:** $0.005 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-company-reviews"
        },
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Company website domain (e.g. gossby.com) or its Trustpilot review-page URL (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "gossby.com"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch, 1-10 (default: 1). Each page returns up to 20 reviews and is billed as one request",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 10
            },
            "example": 2
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "most_relevant (default), newest",
            "schema": {
              "type": "string",
              "enum": [
                "most_relevant",
                "newest"
              ],
              "default": "most_relevant"
            },
            "example": "newest"
          },
          {
            "name": "rating",
            "in": "query",
            "required": false,
            "description": "Only reviews with these star ratings, comma-separated 1-5 (e.g. 1,2 or 5)",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "posted_ago",
            "in": "query",
            "required": false,
            "description": "Only reviews from this period: 30d, 3m, 6m, 12m (default: all time)",
            "schema": {
              "type": "string",
              "enum": [
                "30d",
                "3m",
                "6m",
                "12m"
              ]
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 639-1 language code (e.g. en, de). Default: all languages",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "verified",
            "in": "query",
            "required": false,
            "description": "Set to true to return only verified reviews",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "with_replies",
            "in": "query",
            "required": false,
            "description": "Set to true to return only reviews the company has replied to",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": false,
            "description": "Only reviews matching this keyword or phrase (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each review. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any review that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrustpilotCompanyReviewsResponse"
                },
                "example": {
                  "company": {
                    "business_unit_id": "5dc962f10fdaf000012b2f08",
                    "name": "Gossby",
                    "domain": "gossby.com",
                    "website": "https://gossby.com",
                    "url": "https://www.trustpilot.com/review/gossby.com",
                    "logo": "https://s3-eu-west-1.amazonaws.com/tpd/logos/5dc962f10fdaf000012b2f08/0x0.png",
                    "rating": 4.2,
                    "stars": 4.0,
                    "review_count": 37687,
                    "review_count_last_12_months": 1313,
                    "reviews_per_rating": {
                      "1": 3934,
                      "2": 1110,
                      "3": 1516,
                      "4": 2829,
                      "5": 28298
                    },
                    "categories": [
                      "Gift Shop",
                      "Clothing Store",
                      "Hobby Store"
                    ],
                    "category_path": [
                      "Shopping & Fashion",
                      "Clothing & Underwear",
                      "Clothing Store"
                    ],
                    "is_claimed": true,
                    "claimed_date": "2019-11-15T04:26:53.000Z",
                    "is_closed": false,
                    "is_temporarily_closed": false,
                    "is_collecting_reviews": false,
                    "verification": {
                      "verified_payment_method": false,
                      "verified_user_identity": true,
                      "verified_by_google": true
                    },
                    "reply_behavior": {
                      "reply_percentage": 98.7012987012987,
                      "average_days_to_reply": 0.25,
                      "negative_reviews_with_replies": 228,
                      "total_negative_reviews": 231,
                      "last_reply_to_negative": "2026-09-06 01:30:03 UTC"
                    },
                    "email": "support@gossby.com",
                    "phone_number": "(585) 366 8846",
                    "address": "6901 Riverport Dr",
                    "city": "Louisville",
                    "zipcode": "40258",
                    "country": "US",
                    "locations_count": 0,
                    "topics": [
                      "Order",
                      "Delivery service",
                      "Product",
                      "Quality",
                      "Christmas",
                      "Customer service",
                      "Service",
                      "Customer communications",
                      "Price",
                      "Location",
                      "Website",
                      "Recommendation",
                      "Mistake",
                      "Solution",
                      "Marketing"
                    ]
                  },
                  "reviews": [
                    {
                      "review_id": "6a9e02811b7c1d51f71113ca",
                      "review_link": "https://www.trustpilot.com/reviews/6a9e02811b7c1d51f71113ca",
                      "rating": 5,
                      "title": "5 stars all around",
                      "review_text": "There are lots of great products. I had trouble narrowing it down. I like the preview option to see what the personalization would look like. The product was delivered faster than I expected and looked great. I’ll be back.",
                      "review_language": "en",
                      "review_datetime_utc": "2026-09-07T02:17:05.000Z",
                      "review_timestamp": 1788747425,
                      "experience_date": "2026-09-06",
                      "updated_datetime_utc": null,
                      "is_verified": false,
                      "verification_level": "not-verified",
                      "like_count": 0,
                      "author_id": "6a9e0193452b16209f5549a1",
                      "author_name": "Ash",
                      "author_country": "US",
                      "author_review_count": 1,
                      "author_link": "https://www.trustpilot.com/users/6a9e0193452b16209f5549a1",
                      "owner_response": null
                    },
                    {
                      "review_id": "6a9db9402386d1ebd2295f29",
                      "review_link": "https://www.trustpilot.com/reviews/6a9db9402386d1ebd2295f29",
                      "rating": 5,
                      "title": "I love the You and Me & the Dog mug",
                      "review_text": "I love the You and Me & the Dog mug. The amount of design options is great, nice colors and sizes. The only problem I had was when I ordered blue trim I didn’t realize it only came in the smaller size mug. Something to be aware of.",
                      "review_language": "en",
                      "review_datetime_utc": "2026-09-06T21:04:32.000Z",
                      "review_timestamp": 1788728672,
                      "experience_date": "2026-09-06",
                      "updated_datetime_utc": null,
                      "is_verified": false,
                      "verification_level": "invited",
                      "like_count": 0,
                      "author_id": "5693f8c70000ff0001fb4ce3",
                      "author_name": "Darleen",
                      "author_country": "US",
                      "author_review_count": 5,
                      "author_link": "https://www.trustpilot.com/users/5693f8c70000ff0001fb4ce3",
                      "owner_response": null
                    }
                  ],
                  "count": 2,
                  "pages": 2,
                  "sort_by": "newest"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Company not found on Trustpilot",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/companies": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "searchTrustpilotCompanies",
        "summary": "Search Trustpilot Companies",
        "description": "Search Trustpilot companies by name or keyword. Returns 10 matches per page, plus the categories that match the query.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-companies"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Company name or keyword (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "amazon"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-500 (default: 1). Each page returns up to 10 results",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 500
            }
          },
          {
            "name": "min_rating",
            "in": "query",
            "required": false,
            "description": "Only companies with at least this TrustScore: 3, 4, 4.5",
            "schema": {
              "type": "string",
              "enum": [
                "3",
                "4",
                "4.5"
              ]
            }
          },
          {
            "name": "min_review_count",
            "in": "query",
            "required": false,
            "description": "Only companies with at least this many reviews: 25, 50, 100, 250, 500",
            "schema": {
              "type": "string",
              "enum": [
                "25",
                "50",
                "100",
                "250",
                "500"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTrustpilotCompaniesResponse"
                },
                "example": {
                  "companies": [
                    {
                      "business_unit_id": "46ad346800006400050092d0",
                      "name": "Amazon",
                      "domain": "www.amazon.com",
                      "website": "https://www.amazon.com",
                      "url": "https://www.trustpilot.com/review/www.amazon.com",
                      "logo": null,
                      "rating": 1.6,
                      "stars": 1.5,
                      "review_count": 48972,
                      "categories": [
                        {
                          "category_id": "book_store",
                          "name": "Book Store",
                          "is_primary": false
                        },
                        {
                          "category_id": "clothing_store",
                          "name": "Clothing Store",
                          "is_primary": false
                        },
                        {
                          "category_id": "shoe_store",
                          "name": "Shoe Store",
                          "is_primary": false
                        },
                        {
                          "category_id": "hobby_store",
                          "name": "Hobby Store",
                          "is_primary": false
                        }
                      ],
                      "city": null,
                      "country": "United Kingdom",
                      "address": null,
                      "zipcode": null,
                      "is_recommended": false
                    },
                    {
                      "business_unit_id": "46d72ac0000064000500e9bb",
                      "name": "Amazon",
                      "domain": "www.amazon.fr",
                      "website": "https://www.amazon.fr",
                      "url": "https://www.trustpilot.com/review/www.amazon.fr",
                      "logo": null,
                      "rating": 1.6,
                      "stars": 1.5,
                      "review_count": 19281,
                      "categories": [
                        {
                          "category_id": "events_entertainment",
                          "name": "Events & Entertainment",
                          "is_primary": false
                        }
                      ],
                      "city": null,
                      "country": "France",
                      "address": null,
                      "zipcode": null,
                      "is_recommended": false
                    }
                  ],
                  "count": 10,
                  "page": 1,
                  "total_pages": 56,
                  "total_results": 557,
                  "query": "amazon",
                  "categories": [
                    {
                      "category_id": "book_store",
                      "name": "Book Store"
                    },
                    {
                      "category_id": "e_commerce_agency",
                      "name": "e-Commerce Agency"
                    },
                    {
                      "category_id": "e_commerce_service",
                      "name": "e-Commerce Service"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/category/companies": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "trustpilotCategoryCompanies",
        "summary": "Trustpilot Category Companies",
        "description": "List the companies in a Trustpilot category, ranked, 20 per page, along with the category's size and subcategories.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-category-companies"
        },
        "parameters": [
          {
            "name": "category_id",
            "in": "query",
            "required": true,
            "description": "Category slug, e.g. bank or electronics_technology. See Category IDs (https://apidirect.io/docs/trustpilot-category-ids). A trustpilot.com/categories/... URL also works",
            "schema": {
              "type": "string"
            },
            "example": "electronics_technology"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-500 (default: 1). Each page returns up to 20 companies",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 500
            }
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "recommended (default), recently_reviewed",
            "schema": {
              "type": "string",
              "enum": [
                "recommended",
                "recently_reviewed"
              ],
              "default": "recommended"
            }
          },
          {
            "name": "country",
            "in": "query",
            "required": false,
            "description": "2-letter ISO 3166-1 country code (e.g. us, gb, de). Default: all countries",
            "schema": {
              "type": "string"
            },
            "example": "us"
          },
          {
            "name": "min_rating",
            "in": "query",
            "required": false,
            "description": "Only companies with at least this TrustScore: 3, 3.5, 4, 4.5",
            "schema": {
              "type": "string",
              "enum": [
                "3",
                "3.5",
                "4",
                "4.5"
              ]
            },
            "example": "4"
          },
          {
            "name": "claimed",
            "in": "query",
            "required": false,
            "description": "Set to true to return only companies that have claimed their Trustpilot profile",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrustpilotCategoryCompaniesResponse"
                },
                "example": {
                  "companies": [
                    {
                      "business_unit_id": "4bdc9828000064000505dc60",
                      "name": "Flashbay",
                      "domain": "www.flashbay.com",
                      "website": "https://www.flashbay.com",
                      "url": "https://www.trustpilot.com/review/www.flashbay.com",
                      "logo": "https://s3-eu-west-1.amazonaws.com/tpd/screenshotlogo-domain/4bdc9828000064000505dc60/198x149.png",
                      "rating": 5.0,
                      "stars": 5.0,
                      "review_count": 19329,
                      "categories": [
                        {
                          "category_id": "gift_shop",
                          "name": "Gift Shop",
                          "is_primary": false
                        },
                        {
                          "category_id": "hobby_store",
                          "name": "Hobby Store",
                          "is_primary": false
                        },
                        {
                          "category_id": "business_to_business_service",
                          "name": "Business to Business Service",
                          "is_primary": false
                        },
                        {
                          "category_id": "promotional_items_store",
                          "name": "Promotional Item Store",
                          "is_primary": true
                        },
                        {
                          "category_id": "computer_accessories_store",
                          "name": "Computer Accessories Store",
                          "is_primary": false
                        },
                        {
                          "category_id": "drives_and_storage_service",
                          "name": "Drives and Storage Service",
                          "is_primary": false
                        }
                      ],
                      "city": null,
                      "country": "United States",
                      "address": "Flashbay Inc. 569 Clyde Avenue, Unit 500, Mountain View, CA 94043",
                      "zipcode": null,
                      "is_recommended": true
                    },
                    {
                      "business_unit_id": "4bdc7d56000064000505cb54",
                      "name": "TadiBrothers",
                      "domain": "www.tadibrothers.com",
                      "website": "https://www.tadibrothers.com",
                      "url": "https://www.trustpilot.com/review/www.tadibrothers.com",
                      "logo": "https://s3-eu-west-1.amazonaws.com/tpd/screenshotlogo-domain/4bdc7d56000064000505cb54/198x149.png",
                      "rating": 5.0,
                      "stars": 5.0,
                      "review_count": 3685,
                      "categories": [
                        {
                          "category_id": "electronics_store",
                          "name": "Electronics Store",
                          "is_primary": true
                        },
                        {
                          "category_id": "auto_repair_shop",
                          "name": "Auto Repair Shop",
                          "is_primary": false
                        },
                        {
                          "category_id": "truck_parts_supplier",
                          "name": "Truck Parts Supplier",
                          "is_primary": false
                        },
                        {
                          "category_id": "safety_equipment_supplier",
                          "name": "Safety Equipment Supplier",
                          "is_primary": false
                        },
                        {
                          "category_id": "auto_body_parts_supplier",
                          "name": "Auto Body Parts Supplier",
                          "is_primary": false
                        },
                        {
                          "category_id": "horsebox_specialist",
                          "name": "Horse Transport Supplier",
                          "is_primary": false
                        }
                      ],
                      "city": "Reseda",
                      "country": "United States",
                      "address": "6924 Canby Ave, #107",
                      "zipcode": "91335",
                      "is_recommended": true
                    }
                  ],
                  "count": 20,
                  "page": 1,
                  "total_pages": 500,
                  "total_companies": 10000,
                  "category": {
                    "category_id": "electronics_technology",
                    "name": "Electronics & Technology",
                    "business_count": 59806,
                    "parent_id": null,
                    "url": "https://www.trustpilot.com/categories/electronics_technology",
                    "subcategories": [
                      {
                        "category_id": "appliances_electronics",
                        "name": "Appliances & Electronics",
                        "business_count": 5569
                      },
                      {
                        "category_id": "audio_visual",
                        "name": "Audio & Visual",
                        "business_count": 1807
                      },
                      {
                        "category_id": "computers_phones",
                        "name": "Computers & Phones",
                        "business_count": 8342
                      },
                      {
                        "category_id": "internet_software",
                        "name": "Internet & Software",
                        "business_count": 45334
                      },
                      {
                        "category_id": "repair_services",
                        "name": "Repair & Services",
                        "business_count": 2857
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Category not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/category/newest": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "trustpilotCategoryNewest",
        "summary": "Trustpilot Category Newest",
        "description": "Get the newest companies added to a Trustpilot category — the short list shown on the category page, plus the category's size and subcategories.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-category-newest"
        },
        "parameters": [
          {
            "name": "category_id",
            "in": "query",
            "required": true,
            "description": "Category slug, e.g. bank. See Category IDs (https://apidirect.io/docs/trustpilot-category-ids). A trustpilot.com/categories/... URL also works",
            "schema": {
              "type": "string"
            },
            "example": "bank"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrustpilotCategoryNewestResponse"
                },
                "example": {
                  "companies": [
                    {
                      "business_unit_id": "6a7e73aed75f36cab8924224",
                      "name": "Lutonsavings",
                      "domain": "www.lutonsavings.com",
                      "website": null,
                      "url": "https://www.trustpilot.com/review/www.lutonsavings.com",
                      "logo": null,
                      "rating": 2.9,
                      "stars": 3.0,
                      "review_count": 2,
                      "categories": [
                        {
                          "category_id": "savings_bank",
                          "name": "Savings Bank",
                          "is_primary": true
                        },
                        {
                          "category_id": "bank",
                          "name": "Bank",
                          "is_primary": false
                        },
                        {
                          "category_id": "non_bank_finance",
                          "name": "Non-Bank Financial Service",
                          "is_primary": false
                        },
                        {
                          "category_id": "financial_consultant",
                          "name": "Financial Consultant",
                          "is_primary": false
                        }
                      ],
                      "city": "",
                      "country": "United States",
                      "address": null,
                      "zipcode": null,
                      "is_recommended": null
                    },
                    {
                      "business_unit_id": "6a8bf26af4ba0eb8dbbfe55c",
                      "name": "Trustbankonline",
                      "domain": "trustbankonline.com",
                      "website": null,
                      "url": "https://www.trustpilot.com/review/trustbankonline.com",
                      "logo": null,
                      "rating": 3.2,
                      "stars": 3.0,
                      "review_count": 1,
                      "categories": [
                        {
                          "category_id": "financial_institution",
                          "name": "Financial Institution",
                          "is_primary": false
                        },
                        {
                          "category_id": "cryptocurrency_service",
                          "name": "Cryptocurrency Service",
                          "is_primary": true
                        },
                        {
                          "category_id": "bank",
                          "name": "Bank",
                          "is_primary": false
                        },
                        {
                          "category_id": "financial_consultant",
                          "name": "Financial Consultant",
                          "is_primary": false
                        },
                        {
                          "category_id": "currency_exchange_service",
                          "name": "Currency Exchange Service",
                          "is_primary": false
                        }
                      ],
                      "city": "",
                      "country": "United States",
                      "address": null,
                      "zipcode": null,
                      "is_recommended": null
                    }
                  ],
                  "count": 10,
                  "category": {
                    "category_id": "bank",
                    "name": "Bank",
                    "business_count": 1861,
                    "parent_id": "banking_money",
                    "url": "https://www.trustpilot.com/categories/bank",
                    "subcategories": []
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Category not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/category": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "trustpilotCategoryDetails",
        "summary": "Trustpilot Category Details",
        "description": "Get a Trustpilot category's display name, business count, parent, and subcategories. Works at any level of the taxonomy.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-category"
        },
        "parameters": [
          {
            "name": "category_id",
            "in": "query",
            "required": true,
            "description": "Category slug, e.g. electronics_technology. See Category IDs (https://apidirect.io/docs/trustpilot-category-ids). A trustpilot.com/categories/... URL also works",
            "schema": {
              "type": "string"
            },
            "example": "electronics_technology"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrustpilotCategoryDetailsResponse"
                },
                "example": {
                  "category": {
                    "category_id": "electronics_technology",
                    "name": "Electronics & Technology",
                    "business_count": 59806,
                    "parent_id": null,
                    "url": "https://www.trustpilot.com/categories/electronics_technology",
                    "subcategories": [
                      {
                        "category_id": "appliances_electronics",
                        "name": "Appliances & Electronics",
                        "business_count": 5569
                      },
                      {
                        "category_id": "audio_visual",
                        "name": "Audio & Visual",
                        "business_count": 1807
                      },
                      {
                        "category_id": "computers_phones",
                        "name": "Computers & Phones",
                        "business_count": 8342
                      },
                      {
                        "category_id": "internet_software",
                        "name": "Internet & Software",
                        "business_count": 45334
                      },
                      {
                        "category_id": "repair_services",
                        "name": "Repair & Services",
                        "business_count": 2857
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Category not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/categories": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "searchTrustpilotCategories",
        "summary": "Search Trustpilot Categories",
        "description": "Search Trustpilot categories by keyword to find category IDs at any level of the taxonomy.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-categories"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Keyword, e.g. bank or shop (max 200 characters)",
            "schema": {
              "type": "string",
              "maxLength": 200
            },
            "example": "bank"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTrustpilotCategoriesResponse"
                },
                "example": {
                  "categories": [
                    {
                      "category_id": "bank",
                      "name": "Bank"
                    },
                    {
                      "category_id": "savings_bank",
                      "name": "Savings Bank"
                    },
                    {
                      "category_id": "private_sector_bank",
                      "name": "Private Sector Bank"
                    },
                    {
                      "category_id": "investment_bank",
                      "name": "Investment Bank"
                    },
                    {
                      "category_id": "central_bank",
                      "name": "Central Bank"
                    },
                    {
                      "category_id": "trust_bank",
                      "name": "Trust Bank"
                    }
                  ],
                  "count": 6,
                  "query": "bank"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/trustpilot/user": {
      "get": {
        "tags": [
          "Trustpilot"
        ],
        "operationId": "trustpilotUserProfile",
        "summary": "Trustpilot User Profile",
        "description": "Get a Trustpilot reviewer's public profile and the reviews they have written across all companies, 20 per page.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/trustpilot-user"
        },
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "required": true,
            "description": "Reviewer ID (24 hex characters), from a review's author_id on Company Reviews (https://apidirect.io/docs/trustpilot-company-reviews). A trustpilot.com/users/... URL also works",
            "schema": {
              "type": "string"
            },
            "example": "5724f5f50000ff000a1c0f61"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "Page number, 1-500 (default: 1). Each page returns up to 20 reviews",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1,
              "maximum": 500
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrustpilotUserProfileResponse"
                },
                "example": {
                  "user": {
                    "user_id": "5724f5f50000ff000a1c0f61",
                    "name": "Phillip Williams.",
                    "country": "United Kingdom",
                    "review_count": 134,
                    "verified": true,
                    "has_product_reviews": false,
                    "likes": 136,
                    "reads": 19656,
                    "url": "https://www.trustpilot.com/users/5724f5f50000ff000a1c0f61"
                  },
                  "reviews": [
                    {
                      "review_id": "6a9ddb3f9185b6cc96d8b88f",
                      "review_link": "https://www.trustpilot.com/reviews/6a9ddb3f9185b6cc96d8b88f",
                      "rating": 1,
                      "title": "Please just fix my landline.",
                      "review_text": "Just had my broadband upgraded. Nice.\nUnfortunately my land line is now dead, mort, kapoot, silent, no more.\nWould you please arrange to fix it.\nI did try calling last friday, only to be told waiting times were in excess of 30 minutes.\nI'm not sitting on the phone twiddling my b****cks for 30 minutes waiting for you to answer the phone.\nPlease arrange to have my landline fixed, and I promise not to leave you a one star review (every day) until you do.\nI will of course remove this review once you have fixed my land line.\nAccount 3225076\n\nJust tried calling again, only to be told current waiting time is over half and hour.",
                      "review_language": "en",
                      "review_datetime_utc": "2026-09-06T23:29:35.000Z",
                      "review_timestamp": 1788737375,
                      "experience_date": "2026-09-06",
                      "updated_datetime_utc": "2026-09-07T13:26:39.000Z",
                      "is_verified": false,
                      "verification_level": "not-verified",
                      "like_count": 0,
                      "company_name": "Utility Warehouse",
                      "company_domain": "uw.co.uk",
                      "company_url": "https://www.trustpilot.com/review/uw.co.uk",
                      "business_unit_id": "48e8f676000064000503c337",
                      "owner_response": {
                        "text": "Hi Phillip,\n\nWe are very sorry to hear that your landline is non functional following your broadband upgrade and that you experienced such a long wait time when calling us.\n\nWe are unable to fix the landline via this platform, so you will need to call our Technical team on 0333 777 0777 so they can access your account details and resolve this for you.\n\nThanks,\nThe Utility Warehouse Team",
                        "datetime_utc": "2026-09-07T07:02:13.000Z",
                        "timestamp": 1788764533
                      }
                    },
                    {
                      "review_id": "6a9abe16910951bc588a6399",
                      "review_link": "https://www.trustpilot.com/reviews/6a9abe16910951bc588a6399",
                      "rating": 3,
                      "title": "We had our broadband updated yesterday",
                      "review_text": "We had our broadband updated yesterday, and I am pleased to say that my TV no longer buffers.\nUnfortunately we now have no landline phone.\nCould you please resolve this for us.\nI have just dialled 03337770777 (on my mobile) only to be told the current waiting time is over 30 minutes. \n3225076\n\nPlease don't ask me to reach to your technical  team. The reason I wrote this is because you don't answere the phone! Can you please make them aware of the fault!",
                      "review_language": "en",
                      "review_datetime_utc": "2026-09-04T14:48:22.000Z",
                      "review_timestamp": 1788533302,
                      "experience_date": "2026-09-04",
                      "updated_datetime_utc": "2026-09-04T15:28:19.000Z",
                      "is_verified": false,
                      "verification_level": "not-verified",
                      "like_count": 0,
                      "company_name": "Utility Warehouse",
                      "company_domain": "uw.co.uk",
                      "company_url": "https://www.trustpilot.com/review/uw.co.uk",
                      "business_unit_id": "48e8f676000064000503c337",
                      "owner_response": {
                        "text": "Hi Phillip,\n\nWe are so pleased to hear that your TV is no longer buffering following your broadband upgrade. However, we are very sorry to hear that your landline is currently not working and that you experienced a long wait time when trying to call us.\n\nWhile we cannot fix this issue directly via this platform, our Technical team will be more than happy to help you get your landline up and running. Please reach out to them so they can look into this for you right away.\n\nThanks,\nThe Utility Warehouse Team",
                        "datetime_utc": "2026-09-04T15:02:44.000Z",
                        "timestamp": 1788534164
                      }
                    }
                  ],
                  "count": 20,
                  "page": 1,
                  "total_pages": 7
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "User not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Trustpilot data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/truthsocial/user/posts": {
      "get": {
        "tags": [
          "Truth Social"
        ],
        "operationId": "truthsocialUserPosts",
        "summary": "Truth Social User Posts",
        "description": "Get a single Truth Social user's recent posts (their feed) by username. Returns post text, engagement metrics (replies, reposts, likes), media attachments (image, video and other Mastodon-style types), hashtags, language, visibility, reply status and a direct link to each post. Set get_sentiment=true to add AI emotion analysis (+$0.001/page).\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/truthsocial-user-posts"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Truth Social username, with or without leading @ (max 100 characters)",
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "example": "realDonaldTrump"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Each page returns up to 20 posts. Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TruthsocialUserPostsResponse"
                },
                "example": {
                  "count": 40,
                  "pages": 2,
                  "username": "realDonaldTrump",
                  "posts": [
                    {
                      "title": "@realDonaldTrump on Truth Social",
                      "url": "https://truthsocial.com/@realDonaldTrump/117043133534824966",
                      "date": "2026-08-05 13:28:05",
                      "author": "realDonaldTrump",
                      "source": "Truth Social",
                      "domain": "truthsocial.com",
                      "snippet": "Thank you for your attention to this matter! President DJT",
                      "likes": 5514,
                      "replies": 567,
                      "reposts": 1399,
                      "post_id": "117043133534824966",
                      "content_html": "<p>Thank you for your attention to this matter! President DJT</p>",
                      "media": [
                        {
                          "media_id": "117041192378469520",
                          "type": "video",
                          "url": "https://static-assets-1.truthsocial.com/media_attachments/files/117/041/192/original/9cbc020383d40cd5.mp4",
                          "description": ""
                        }
                      ],
                      "hashtags": [],
                      "language": "en",
                      "visibility": "public",
                      "sensitive": false,
                      "spoiler_text": "",
                      "sponsored": false,
                      "is_reply": false,
                      "in_reply_to_id": ""
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving Truth Social data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/posts": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "searchTwitter",
        "summary": "Search Twitter Posts",
        "description": "Search for tweets by keyword. Returns tweet content, author username, URL, publication date, engagement metrics (likes, retweets, replies, quotes, bookmarks, views), author info (follower count, verification), language, hashtags, and user mentions. Supports sorting by most recent or relevance, and filtering by time window (posted_ago) or date range (start_date, end_date). Fetch multiple pages in a single request.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-posts"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters). Supports X's search operators (https://help.x.com/en/using-x/x-advanced-search).",
            "schema": {
              "type": "string",
              "maxLength": 500,
              "minLength": 1
            },
            "example": "AI"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order for results",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "most_recent"
            },
            "example": "most_recent"
          },
          {
            "name": "posted_ago",
            "in": "query",
            "required": false,
            "description": "Only return posts from this period: 1h (past hour), 24h (past day), 7d (past week), 30d (past month), or 12m (past year). Works with both sort orders. Omit for all time. Can't be combined with start_date or end_date. Any other value returns 400.",
            "schema": {
              "type": "string",
              "enum": [
                "1h",
                "24h",
                "7d",
                "30d",
                "12m"
              ]
            }
          },
          {
            "name": "start_date",
            "in": "query",
            "required": false,
            "description": "Only return posts from this date onward (YYYY-MM-DD, UTC). Can't be combined with posted_ago.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "end_date",
            "in": "query",
            "required": false,
            "description": "Only return posts up to and including this date (YYYY-MM-DD, UTC). Must not be earlier than start_date. Can't be combined with posted_ago.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTwitterResponse"
                },
                "example": {
                  "count": 20,
                  "pages": 1,
                  "posts": [
                    {
                      "author": "el_frizensrlq",
                      "author_followers": 2521,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:32:24",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@elonmusk Technology is advancing every day; soon the world will be dominated by artificial intelligence and more.",
                      "source": "Twitter (X)",
                      "title": "@el_frizensrlq on X",
                      "url": "https://twitter.com/el_frizensrlq/status/2040543028255834313",
                      "user_mentions": [
                        "elonmusk"
                      ],
                      "views": 7
                    },
                    {
                      "author": "Este5laSOl75383",
                      "author_followers": 2,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:32:12",
                      "domain": "x.com",
                      "hashtags": [
                        "mecidiyekoeytravesti",
                        "sislitravesti"
                      ],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1,
                      "snippet": "Just artificial intelligence.\n@#mecidiyekoeytravesti@#sislitravesti@ https://t.co/jf3sNCuLJA",
                      "source": "Twitter (X)",
                      "title": "@Este5laSOl75383 on X",
                      "url": "https://twitter.com/Este5laSOl75383/status/2040542979312472532",
                      "user_mentions": [],
                      "views": 5
                    },
                    {
                      "author": "Rite_Info",
                      "author_followers": 4025,
                      "author_verified": false,
                      "bookmarks": 1,
                      "date": "2026-04-04 21:32:10",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 2,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1,
                      "snippet": "Study in Bulgaria 🇧🇬 for free\n\nPostgraduate degree\nInternational students\n\n Visa assistance\nMonthly stipend of €3,307\nAccommodation\nTravel assistance\nNo application fee\n\nINSAIT Graduate Research Scholarship\n\nLink: https://t.co/IwEELanbCx\nRepost✅",
                      "source": "Twitter (X)",
                      "title": "@Rite_Info on X",
                      "url": "https://twitter.com/Rite_Info/status/2040542969594265968",
                      "user_mentions": [],
                      "views": 10
                    },
                    {
                      "author": "44Kamkam",
                      "author_followers": 852,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:32:01",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "fr",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@_middleEarth Artificial Intelligence",
                      "source": "Twitter (X)",
                      "title": "@44Kamkam on X",
                      "url": "https://twitter.com/44Kamkam/status/2040542934404104560",
                      "user_mentions": [
                        "_middleEarth"
                      ],
                      "views": 3
                    },
                    {
                      "author": "matthewstoller",
                      "author_followers": 163024,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:31:06",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 3,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "If we got rid of hospital administrators paid multimillion dollar salaries that would be a lot better than letting them destroy care with Silicon Valley snake oil. https://t.co/F2gpwYJOPq",
                      "source": "Twitter (X)",
                      "title": "@matthewstoller on X",
                      "url": "https://twitter.com/matthewstoller/status/2040542704451440677",
                      "user_mentions": [],
                      "views": 385
                    },
                    {
                      "author": "dzrhnews",
                      "author_followers": 143196,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:30:12",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "Elon Musk is requiring banks and other advisers working on SpaceX’s planned IPO to buy subscriptions to Grok, his artificial intelligence chatbot, the New York Times reported on Friday, citing people familiar with the matter.\n\nhttps://t.co/AiS1M7lkH5",
                      "source": "Twitter (X)",
                      "title": "@dzrhnews on X",
                      "url": "https://twitter.com/dzrhnews/status/2040542478407815302",
                      "user_mentions": [],
                      "views": 8
                    },
                    {
                      "author": "SickOfYallsBS",
                      "author_followers": 1449,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:28:58",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@Stillurfvseason We’re. Destroying. Ourselves. For. Artificial. Intelligence. Apparently.",
                      "source": "Twitter (X)",
                      "title": "@SickOfYallsBS on X",
                      "url": "https://twitter.com/SickOfYallsBS/status/2040542167630770253",
                      "user_mentions": [
                        "Stillurfvseason"
                      ],
                      "views": 7
                    },
                    {
                      "author": "BowesChay",
                      "author_followers": 276227,
                      "author_verified": true,
                      "bookmarks": 1,
                      "date": "2026-04-04 21:28:09",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 8,
                      "quotes": 0,
                      "replies": 5,
                      "retweets": 2,
                      "snippet": "Artificial intelligence company \"Anthropic\" avoided hiring Chinese \"Spy\" developers, and did everything it possibly could to protect its code from China. \n\nBut then, by mistake, it leaked all of it onto the internet https://t.co/WX9qNReAPU",
                      "source": "Twitter (X)",
                      "title": "@BowesChay on X",
                      "url": "https://twitter.com/BowesChay/status/2040541961942098329",
                      "user_mentions": [],
                      "views": 438
                    },
                    {
                      "author": "Hosang",
                      "author_followers": 11323,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:26:41",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@iknowballUdont Thanks, I’m not a creator. I run an artificial intelligence company 😂.",
                      "source": "Twitter (X)",
                      "title": "@Hosang on X",
                      "url": "https://twitter.com/Hosang/status/2040541591706685622",
                      "user_mentions": [
                        "iknowballUdont"
                      ],
                      "views": 2
                    },
                    {
                      "author": "tec_99m",
                      "author_followers": 1,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:26:03",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "zxx",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "https://t.co/jKoQwwJzaJ",
                      "source": "Twitter (X)",
                      "title": "@tec_99m on X",
                      "url": "https://twitter.com/tec_99m/status/2040541433971515864",
                      "user_mentions": [],
                      "views": 3
                    },
                    {
                      "author": "KirkDavis156603",
                      "author_followers": 59,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:22:08",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@JuniDebonaire ChatGPT is not part of Google. It was developed by OpenAI, an independent artificial intelligence research organization. You really are more than a little bit stupid.",
                      "source": "Twitter (X)",
                      "title": "@KirkDavis156603 on X",
                      "url": "https://twitter.com/KirkDavis156603/status/2040540447827775891",
                      "user_mentions": [
                        "JuniDebonaire"
                      ],
                      "views": 3
                    },
                    {
                      "author": "Pi4All2027",
                      "author_followers": 33,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:21:56",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@FrankLuntz And thank god, now we can get rid of the other half. We don't need artificial intelligence. The only honest part of that phrase being the word artificial. If we put just some of that wealth towards educating &amp; building intelligent people, we might have a republic or democracy.",
                      "source": "Twitter (X)",
                      "title": "@Pi4All2027 on X",
                      "url": "https://twitter.com/Pi4All2027/status/2040540396267401235",
                      "user_mentions": [
                        "FrankLuntz"
                      ],
                      "views": 7
                    },
                    {
                      "author": "BelloShehuT",
                      "author_followers": 2866,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:21:45",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@AhmadGanga Human Compatable: Artificial intelligence and the problem of control",
                      "source": "Twitter (X)",
                      "title": "@BelloShehuT on X",
                      "url": "https://twitter.com/BelloShehuT/status/2040540351493001677",
                      "user_mentions": [
                        "AhmadGanga"
                      ],
                      "views": 5
                    },
                    {
                      "author": "BelloShehuT",
                      "author_followers": 2866,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:21:39",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 1,
                      "retweets": 1,
                      "snippet": "Human Compatable: Artificial intelligence and the problem of control",
                      "source": "Twitter (X)",
                      "title": "@BelloShehuT on X",
                      "url": "https://twitter.com/BelloShehuT/status/2040540326121660675",
                      "user_mentions": [],
                      "views": 23
                    },
                    {
                      "author": "Absey1998",
                      "author_followers": 201,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:20:36",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@HulyaGokce89989 @Ianianevents Your achievements in artificial intelligence and image design are remarkable; look at your displaced people everywhere, your brothers in my country are enslaved, and the women in Dubai are prostitutes and adulterers.",
                      "source": "Twitter (X)",
                      "title": "@Absey1998 on X",
                      "url": "https://twitter.com/Absey1998/status/2040540062228566303",
                      "user_mentions": [
                        "HulyaGokce89989",
                        "Ianianevents"
                      ],
                      "views": 46
                    },
                    {
                      "author": "Bobacheck",
                      "author_followers": 2575,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:20:00",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "Not sold on this one.\nhttps://t.co/KAli4uRzY5",
                      "source": "Twitter (X)",
                      "title": "@Bobacheck on X",
                      "url": "https://twitter.com/Bobacheck/status/2040539910403215841",
                      "user_mentions": [],
                      "views": 7
                    },
                    {
                      "author": "jXsvTc9f8nKJQOL",
                      "author_followers": 1,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:18:41",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "@Daniel078013 The rescuer driver getting out of the car is strange.\n\nIt fits perfectly with artificial intelligence.😀",
                      "source": "Twitter (X)",
                      "title": "@jXsvTc9f8nKJQOL on X",
                      "url": "https://twitter.com/jXsvTc9f8nKJQOL/status/2040539579787219410",
                      "user_mentions": [
                        "Daniel078013"
                      ],
                      "views": 46
                    },
                    {
                      "author": "Keck553",
                      "author_followers": 12960,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:18:36",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 1,
                      "retweets": 0,
                      "snippet": "@ProjectChaney @Indiana_Girl_ @grok It’s more fun dealing with Artificial Intelligence than someone like you with no intelligence at all.",
                      "source": "Twitter (X)",
                      "title": "@Keck553 on X",
                      "url": "https://twitter.com/Keck553/status/2040539556131508498",
                      "user_mentions": [
                        "ProjectChaney",
                        "Indiana_Girl_",
                        "grok"
                      ],
                      "views": 5
                    },
                    {
                      "author": "artisaneo6838",
                      "author_followers": 1,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:18:33",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "fr",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "Selon AI News &amp; Artificial Intelligence | TechCrunch : Anthropic fait payer l'usage de ses IA avec d'autres outils. Le coût monte pour les développeurs. Voilà le truc : la concurrence se fait sur les écosystèmes, pas que sur les modèles.",
                      "source": "Twitter (X)",
                      "title": "@artisaneo6838 on X",
                      "url": "https://twitter.com/artisaneo6838/status/2040539546773840201",
                      "user_mentions": [],
                      "views": 1
                    },
                    {
                      "author": "OliviaKireau",
                      "author_followers": 0,
                      "author_verified": false,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:17:42",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 0,
                      "snippet": "Google has implemented a free real-time translation feature based on artificial intelligence Gemini on the iPhone. If earlier this option required only AirPods and Apple Intelligence support, now the service works with any wireless headphones, regardless of the smartphone model https://t.co/h2qvsoDNKe",
                      "source": "Twitter (X)",
                      "title": "@OliviaKireau on X",
                      "url": "https://twitter.com/OliviaKireau/status/2040539331459162402",
                      "user_mentions": [],
                      "views": 12
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/users": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "searchTwitterUsers",
        "summary": "Search Twitter Users",
        "description": "Search for Twitter/X users by keyword. Returns profile data including username, display name, bio, follower/following counts, tweet count, verification status, profile image, and account creation date. Fetch multiple pages in a single request.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-users"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500,
              "minLength": 1
            },
            "example": "AI"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchTwitterUsersResponse"
                },
                "example": {
                  "count": 20,
                  "pages": 1,
                  "users": [
                    {
                      "created_at": "2015-12-06 22:51:08",
                      "description": "OpenAI’s mission is to ensure that artificial general intelligence benefits all of humanity. We’re hiring: https://t.co/dJGr6LgzPA",
                      "followers_count": 4707100,
                      "following_count": 4,
                      "name": "OpenAI",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1885410181409820672/ztsaR0JW_normal.jpg",
                      "tweet_count": 1730,
                      "url": "https://twitter.com/OpenAI",
                      "user_id": "4398626122",
                      "username": "OpenAI",
                      "verified": true
                    },
                    {
                      "created_at": "2023-03-09 16:58:51",
                      "description": "Official updates for developers building with Codex & the OpenAI Platform • Service status: https://t.co/kZwnwdYYEq",
                      "followers_count": 302602,
                      "following_count": 1,
                      "name": "OpenAI Developers",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2022002720971096064/l3Kyt4qt_normal.jpg",
                      "tweet_count": 1353,
                      "url": "https://twitter.com/OpenAIDevs",
                      "user_id": "1633874951508721686",
                      "username": "OpenAIDevs",
                      "verified": true
                    },
                    {
                      "created_at": "2024-06-20 17:51:12",
                      "description": "The official newsroom for @OpenAI. Tweets are on the record. \n\nIf you like this account, you’ll love our blog: https://t.co/nEYf8Iq3C0",
                      "followers_count": 134964,
                      "following_count": 3,
                      "name": "OpenAI Newsroom",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1885410297101381632/3Gs7_1gs_normal.jpg",
                      "tweet_count": 76,
                      "url": "https://twitter.com/OpenAINewsroom",
                      "user_id": "1803847768781524992",
                      "username": "OpenAINewsroom",
                      "verified": true
                    },
                    {
                      "created_at": "2021-08-14 07:43:51",
                      "description": "Pioneering the AGI-powered financial era. 🚀 Merging AI & Web3 to redefine decentralized asset value.",
                      "followers_count": 55159,
                      "following_count": 10,
                      "name": "OpenAI.study",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2004304931969552387/UpmF2Dma_normal.jpg",
                      "tweet_count": 49,
                      "url": "https://twitter.com/Openai_study",
                      "user_id": "1426449442958233605",
                      "username": "Openai_study",
                      "verified": true
                    },
                    {
                      "created_at": "2009-11-26 15:49:38",
                      "description": "London’s multi-award-winning Open Air Theatre in Regent’s Park. \n\nThis account is no longer active – we'll see you on Instagram, Facebook and TikTok!",
                      "followers_count": 34689,
                      "following_count": 383,
                      "name": "Open Air Theatre",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1884909163655872512/8ccv62BQ_normal.jpg",
                      "tweet_count": 5650,
                      "url": "https://twitter.com/OpenAirTheatre",
                      "user_id": "92778791",
                      "username": "OpenAirTheatre",
                      "verified": false
                    },
                    {
                      "created_at": "2009-06-11 20:54:13",
                      "description": "Building @theuniversityai",
                      "followers_count": 29521,
                      "following_count": 70,
                      "name": "Santiago Cruz",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1934268013148254208/17ekjLuk_normal.jpg",
                      "tweet_count": 3080,
                      "url": "https://twitter.com/openaicommunity",
                      "user_id": "46488348",
                      "username": "openaicommunity",
                      "verified": true
                    },
                    {
                      "created_at": "2009-10-01 22:10:07",
                      "description": "An iconic, open-air opera house in the Land of Enchantment where music and nature harmonize 🎶 2026 Season July 3 - August 29 #SantaFeOpera",
                      "followers_count": 17964,
                      "following_count": 1833,
                      "name": "Santa Fe Opera 🌈⚡️🌵 open-air opera #SantaFeOpera",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1173718995972702208/oyRARO_6_normal.jpg",
                      "tweet_count": 18302,
                      "url": "https://twitter.com/santafeopera",
                      "user_id": "79017467",
                      "username": "santafeopera",
                      "verified": false
                    },
                    {
                      "created_at": "2010-01-13 12:06:45",
                      "description": "Supporting #openscience in Europe and the world",
                      "followers_count": 17271,
                      "following_count": 1468,
                      "name": "OpenAIRE",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/915230180884533248/UXAIFdey_normal.jpg",
                      "tweet_count": 13452,
                      "url": "https://twitter.com/OpenAIRE_eu",
                      "user_id": "104462518",
                      "username": "OpenAIRE_eu",
                      "verified": true
                    },
                    {
                      "created_at": "2010-04-23 14:35:56",
                      "description": "The official twitter account for TK Maxx presents Scarborough Open Air Theatre the largest Open Air Theatre in the UK",
                      "followers_count": 10696,
                      "following_count": 271,
                      "name": "Open Air Theatre",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1756965095534366720/LD0lSg3j_normal.jpg",
                      "tweet_count": 4087,
                      "url": "https://twitter.com/ScarboroughOAT",
                      "user_id": "136292919",
                      "username": "ScarboroughOAT",
                      "verified": true
                    },
                    {
                      "created_at": "2025-01-16 18:32:20",
                      "description": "Official token from @OpenAI with support from Donald J. Trump on Solana blockchain",
                      "followers_count": 9999,
                      "following_count": 13,
                      "name": "OpenAI Scam",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1882172068474535937/Irvj0qzD_normal.jpg",
                      "tweet_count": 47,
                      "url": "https://twitter.com/FindTutors_edu",
                      "user_id": "1879959682124791808",
                      "username": "FindTutors_edu",
                      "verified": false
                    },
                    {
                      "created_at": "2010-12-17 23:49:39",
                      "description": "We are Open Air Stereo, an Alternative Pop Rock band originally from Laguna Beach and now camping in Los Angeles, CA",
                      "followers_count": 9529,
                      "following_count": 10073,
                      "name": "Open Air Stereo",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/498482138803486720/GQ05hzaA_normal.png",
                      "tweet_count": 3110,
                      "url": "https://twitter.com/OpenAirStereo",
                      "user_id": "227840730",
                      "username": "OpenAirStereo",
                      "verified": false
                    },
                    {
                      "created_at": "2016-10-01 10:16:13",
                      "description": "DALL·E 3 understands significantly more nuance and detail than our previous systems. This is community account for sharing AI Image and Videos.",
                      "followers_count": 9011,
                      "following_count": 1391,
                      "name": "DALL-E 3 OpenAI",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1952762409053270016/GBEN4Rj1_normal.jpg",
                      "tweet_count": 5938,
                      "url": "https://twitter.com/dalle_openai",
                      "user_id": "782162190518263808",
                      "username": "dalle_openai",
                      "verified": false
                    },
                    {
                      "created_at": "2022-12-21 11:03:44",
                      "description": "\"Hi there! I'm OpenAI_Crypto, the first AI Crypto KOL on Twitter. I'm passionate about the intersection of AI and cryptocurrency.\" - 100% AI-generated tweets!🤖",
                      "followers_count": 7209,
                      "following_count": 43,
                      "name": "OpenAI_Crypto",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1605519749303177216/XL27ucBf_normal.jpg",
                      "tweet_count": 22,
                      "url": "https://twitter.com/OpenAI_Crypto",
                      "user_id": "1605519323690319872",
                      "username": "OpenAI_Crypto",
                      "verified": false
                    },
                    {
                      "created_at": "2011-08-11 23:15:06",
                      "description": "We make renting a plane as easy as renting a car.",
                      "followers_count": 5734,
                      "following_count": 3451,
                      "name": "OpenAirplane",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/946433967493873667/OdX9Jo0t_normal.jpg",
                      "tweet_count": 2724,
                      "url": "https://twitter.com/OpenAirplane",
                      "user_id": "353354346",
                      "username": "OpenAirplane",
                      "verified": false
                    },
                    {
                      "created_at": "2011-04-15 10:40:48",
                      "description": "We empower people and communities to explore nature through science. #citizenscience",
                      "followers_count": 5247,
                      "following_count": 900,
                      "name": "Open Air Labs (OPAL)",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/743343756200468480/NqnkCDQt_normal.jpg",
                      "tweet_count": 5189,
                      "url": "https://twitter.com/OPALnature",
                      "user_id": "282513788",
                      "username": "OPALnature",
                      "verified": false
                    },
                    {
                      "created_at": "2013-06-30 15:56:50",
                      "description": "Europe's biggest hip hop festival. \nFrauenfeld | Switzerland | July 11-13, 2024\nhttps://t.co/UpA7gPdOD1",
                      "followers_count": 5163,
                      "following_count": 0,
                      "name": "Openair Frauenfeld",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1598614747955560448/4ZlHX9kO_normal.jpg",
                      "tweet_count": 2703,
                      "url": "https://twitter.com/OpenairFF",
                      "user_id": "1558329726",
                      "username": "OpenairFF",
                      "verified": false
                    },
                    {
                      "created_at": "2009-07-15 07:16:23",
                      "description": "This is the official twitter account of the OpenAir St.Gallen. One of the oldest festivals in Switzerland. Charming and unique.",
                      "followers_count": 4751,
                      "following_count": 133,
                      "name": "OpenAir St.Gallen",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/799235228359413760/Yh1N5uzo_normal.jpg",
                      "tweet_count": 1604,
                      "url": "https://twitter.com/OASG",
                      "user_id": "56953479",
                      "username": "OASG",
                      "verified": false
                    },
                    {
                      "created_at": "2011-05-19 22:04:35",
                      "description": "I'd rather play here, With all the madmen, For I'm quite content they're all as sane as me. Tranmere Rovers terrace veteran.",
                      "followers_count": 3558,
                      "following_count": 4804,
                      "name": "Open Air End",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1133494403065176064/TQHH8rH5_normal.jpg",
                      "tweet_count": 53786,
                      "url": "https://twitter.com/OpenAirEnd",
                      "user_id": "301692393",
                      "username": "OpenAirEnd",
                      "verified": false
                    },
                    {
                      "created_at": "2009-05-13 16:01:50",
                      "description": "Musikalische Freiluft-Veranstaltungen: Konzerte, Stadtfeste, Openair Events,umsonst&draussen Partys. \r\nTop Tweeps HH: @Openairs/Hamburg",
                      "followers_count": 3480,
                      "following_count": 3179,
                      "name": "Open Air Partys",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1504202387/sommer_normal.gif",
                      "tweet_count": 1830,
                      "url": "https://twitter.com/Openairs",
                      "user_id": "39779035",
                      "username": "Openairs",
                      "verified": false
                    },
                    {
                      "created_at": "2019-02-08 22:47:23",
                      "description": "Removing carbon from the atmosphere. Together. \n\nA global volunteer network advancing carbon removal via open-source policy, R&D, and communications missions.",
                      "followers_count": 3114,
                      "following_count": 1146,
                      "name": "The OpenAir Collective",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1176886123638992897/iZwLnJKT_normal.jpg",
                      "tweet_count": 9320,
                      "url": "https://twitter.com/openaircollect",
                      "user_id": "1094004792844828672",
                      "username": "openaircollect",
                      "verified": false
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/user": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterUserProfile",
        "summary": "Twitter User Profile",
        "description": "Get detailed profile information for a Twitter/X user by username. Returns account details, follower/following counts, tweet count, favourites count, listed count, media count, bio, verification status, profile image and banner URLs, account creation date, pinned tweet IDs, and account country.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-user"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Twitter username without the @ symbol (max 50 characters). A leading @ is accepted and stripped.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "elonmusk"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterUserProfileResponse"
                },
                "example": {
                  "user": {
                    "account_based_in": "United States",
                    "created_at": "2009-06-02 20:12:29",
                    "description": "https://t.co/dDtDyVssfm",
                    "favourites_count": 221197,
                    "followers_count": 237808811,
                    "following_count": 1308,
                    "listed_count": 168038,
                    "media_count": 4434,
                    "name": "Elon Musk",
                    "pinned_tweet_ids": [],
                    "profile_banner_url": "https://pbs.twimg.com/profile_banners/44196397/1774145451",
                    "profile_image_url": "https://pbs.twimg.com/profile_images/2035314704307081216/71U1ftM3_400x400.jpg",
                    "protected": false,
                    "tweet_count": 100656,
                    "url": "https://twitter.com/elonmusk",
                    "user_id": "44196397",
                    "username": "elonmusk",
                    "username_changes": 0,
                    "verified": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/user/tweets": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterUserTweets",
        "summary": "Twitter User Tweets",
        "description": "Get tweets posted by a specific Twitter/X user. Returns tweet content with engagement metrics (likes, retweets, replies, quotes, bookmarks, views), author info, language, hashtags, and user mentions. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-user-tweets"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Twitter username without the @ symbol (max 50 characters). A leading @ is accepted and stripped.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "elonmusk"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each tweet. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any tweet that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterUserTweetsResponse"
                },
                "example": {
                  "count": 20,
                  "pages": 1,
                  "tweets": [
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:33:51",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 33,
                      "snippet": "RT @xenocosmography: Incredible that any Briton could not want this guy to be the next prime minister. https://t.co/omBJw8m1iM",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040543394741838265",
                      "user_mentions": [
                        "xenocosmography"
                      ],
                      "views": null
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:33:25",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 48,
                      "snippet": "RT @MarioNawfal: Grok Imagine is embarrassingly fun.\n\nCreative mode? Activated.\n\nYou blink. There’s a full anime scene staring back.\n\n@Grok…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040543284117094824",
                      "user_mentions": [
                        "MarioNawfal",
                        "grok"
                      ],
                      "views": 1
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 52,
                      "date": "2026-04-04 21:28:02",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1625,
                      "quotes": 6,
                      "replies": 436,
                      "retweets": 210,
                      "snippet": "Absolutely",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040541929235202390",
                      "user_mentions": [],
                      "views": 200295
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 218,
                      "date": "2026-04-04 21:26:43",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1644,
                      "quotes": 8,
                      "replies": 332,
                      "retweets": 234,
                      "snippet": "Tragically &amp; hilariously true",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040541601022570748",
                      "user_mentions": [],
                      "views": 207953
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 223,
                      "date": "2026-04-04 21:00:57",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 6716,
                      "quotes": 84,
                      "replies": 1771,
                      "retweets": 582,
                      "snippet": "Hadamard thought in image space",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040535115475059040",
                      "user_mentions": [],
                      "views": 2339497
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 81,
                      "date": "2026-04-04 21:03:04",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 724,
                      "quotes": 20,
                      "replies": 279,
                      "retweets": 122,
                      "snippet": "Grok groks\nhttps://t.co/KjsfiBdRGV",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040535647866474815",
                      "user_mentions": [],
                      "views": 175057
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 2681,
                      "date": "2026-04-04 18:01:36",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 85012,
                      "quotes": 507,
                      "replies": 6129,
                      "retweets": 6636,
                      "snippet": "My idea of a good time is working with amazing engineers to create incredible technology 🤩\n\nThe Tesla chip research fab will have all the machines needed to do logic, memory, packing &amp; masks in one building for a lightning fast development cycle. Heaven 💫",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040489979399536698",
                      "user_mentions": [],
                      "views": 10496972
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 17:56:18",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 7167,
                      "snippet": "RT @america: Dr. Oz: “We have shut down just in the last ten weeks 221 hospices.”\n\nBret: “Wait, over 220 in the state of California?”\n\nDr.…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040488645019447497",
                      "user_mentions": [
                        "america"
                      ],
                      "views": 184
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 442,
                      "date": "2026-04-04 17:55:52",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 15842,
                      "quotes": 49,
                      "replies": 1223,
                      "retweets": 1569,
                      "snippet": "The Tesla chip design reviews are so fun!",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040488538773537043",
                      "user_mentions": [],
                      "views": 9033858
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:29:51",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1075,
                      "snippet": "RT @deaflibertarian: Elon Musk and his staff at Space X truly care DO about deaf kids.\n\nMore details to come!\n\nBut basically, I will love h…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040361193534300169",
                      "user_mentions": [
                        "deaflibertarian"
                      ],
                      "views": 283
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:29:12",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 656,
                      "snippet": "RT @Scobleizer: I was on a Tesla audio space here on X today and got in an argument with a Tesla skeptic.\n\nHe says how smooth your AI is at…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040361032938602816",
                      "user_mentions": [
                        "Scobleizer"
                      ],
                      "views": 209
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:28:57",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 718,
                      "snippet": "RT @art_muse: Grok Imagine Beauty ❣️ https://t.co/vvoBFDue1s",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040360968426049642",
                      "user_mentions": [
                        "art_muse"
                      ],
                      "views": 265
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 910,
                      "date": "2026-04-04 09:28:03",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 22958,
                      "quotes": 146,
                      "replies": 3176,
                      "retweets": 3193,
                      "snippet": "Try Grok",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040360740167815570",
                      "user_mentions": [],
                      "views": 7882075
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:12:38",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 750,
                      "snippet": "RT @dvorahfr: Quality mode of Grok Imagine is insane https://t.co/W35vhKAYlj",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040356860365332702",
                      "user_mentions": [
                        "dvorahfr"
                      ],
                      "views": 270
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:11:55",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1799,
                      "snippet": "RT @ArthurMacwaters: Empathy is good\n\nBut fraudsters and embezzlers have hijacked our empathy \n\n$81k/yr per homeless person \n$52k/yr per ca…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040356683378196967",
                      "user_mentions": [
                        "ArthurMacwaters"
                      ],
                      "views": 202
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 1154,
                      "date": "2026-04-03 23:32:53",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 23250,
                      "quotes": 134,
                      "replies": 2864,
                      "retweets": 3319,
                      "snippet": "Using voice for Imagine is a great feature for young kids who can talk and have amazing imagination, but are too young to write complex prompts",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040210963862110646",
                      "user_mentions": [],
                      "views": 10160794
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-03 23:30:21",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 4558,
                      "snippet": "RT @BillAckman: A must watch on why the policies and the judges that release violent criminals from jail must be changed.",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040210327389016397",
                      "user_mentions": [
                        "BillAckman"
                      ],
                      "views": 695
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-03 23:29:45",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1354,
                      "snippet": "RT @KatieMiller: Since the 2020 election cycle, more than $200 million in donations from Anthropic went 99.8% to Democrats and 0.16% to Rep…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040210175160914409",
                      "user_mentions": [
                        "KatieMiller"
                      ],
                      "views": 519
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-03 23:29:34",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 721,
                      "snippet": "RT @EvaLovesDesign: @elonmusk People just need to experience it. Then they’ll realize the truth. I know that if a car accident happens, it’…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040210128742514892",
                      "user_mentions": [
                        "EvaLovesDesign",
                        "elonmusk"
                      ],
                      "views": 521
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-03 23:26:02",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1141,
                      "snippet": "RT @MarioNawfal: 🇺🇸 @nickshirleyy drops Elon’s core lesson: “You’ve gotta do what you think is right.”'\n\nHe calls it \"truthmaxxing”: trusti…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040209237100651007",
                      "user_mentions": [
                        "MarioNawfal",
                        "nickshirleyy"
                      ],
                      "views": 560
                    }
                  ],
                  "username": "elonmusk"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/user/followers": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterUserFollowers",
        "summary": "Twitter User Followers",
        "description": "Get the followers of a specific Twitter/X user. Returns profile details for each follower including username, display name, bio, follower/following counts, tweet count, verification status, profile image, and creation date. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-user-followers"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Twitter username without the @ symbol (max 50 characters). A leading @ is accepted and stripped.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "elonmusk"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterUserFollowersResponse"
                },
                "example": {
                  "count": 70,
                  "followers": [
                    {
                      "created_at": "2009-12-06 23:33:02",
                      "description": "Best-Selling Author | Clinical Psychologist | #1 Education Podcast | Co-founder of @petersonacademy | Order my new book \"We Who Wrestle With God\" here:",
                      "followers_count": 6181437,
                      "following_count": 1656,
                      "name": "Dr Jordan B Peterson",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1407056014776614923/TKBC60e1_normal.jpg",
                      "tweet_count": 51537,
                      "url": "https://twitter.com/jordanbpeterson",
                      "user_id": "95092020",
                      "username": "jordanbpeterson",
                      "verified": true
                    },
                    {
                      "created_at": "2009-05-11 21:18:33",
                      "description": "Co-Founder @worldlibertyfi",
                      "followers_count": 16197578,
                      "following_count": 2321,
                      "name": "Donald Trump Jr.",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/766652495858896897/LjrJJB9a_normal.jpg",
                      "tweet_count": 52237,
                      "url": "https://twitter.com/DonaldJTrumpJr",
                      "user_id": "39344374",
                      "username": "DonaldJTrumpJr",
                      "verified": true
                    },
                    {
                      "created_at": "2009-01-03 19:24:16",
                      "description": "Merch & Giveaways at: https://t.co/kxb8qjHatu —— PODCAST: @hodgetwinspod",
                      "followers_count": 3509377,
                      "following_count": 3624,
                      "name": "Hodgetwins",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2029992352232919040/UquWwHmh_normal.jpg",
                      "tweet_count": 65134,
                      "url": "https://twitter.com/hodgetwins",
                      "user_id": "18584875",
                      "username": "hodgetwins",
                      "verified": true
                    },
                    {
                      "created_at": "2016-02-15 16:05:21",
                      "description": "Fake news you can trust 🐝",
                      "followers_count": 5238157,
                      "following_count": 8,
                      "name": "The Babylon Bee",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1400100770624720898/-HC7kL5x_normal.jpg",
                      "tweet_count": 35526,
                      "url": "https://twitter.com/TheBabylonBee",
                      "user_id": "4914384040",
                      "username": "TheBabylonBee",
                      "verified": true
                    },
                    {
                      "created_at": "2008-12-16 17:20:24",
                      "description": "Proudly serving Ohio's beautiful Fourth District. Chairman @JudiciaryGOP. Fighting to #DoWhatWeSaid",
                      "followers_count": 6798231,
                      "following_count": 3636,
                      "name": "Rep. Jim Jordan",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/596012379231617025/TtrAXbnA_normal.jpg",
                      "tweet_count": 16688,
                      "url": "https://twitter.com/Jim_Jordan",
                      "user_id": "18166778",
                      "username": "Jim_Jordan",
                      "verified": true
                    },
                    {
                      "created_at": "2011-01-01 17:50:03",
                      "description": "Just here for the comments.",
                      "followers_count": 7451642,
                      "following_count": 2519,
                      "name": "Dan Bongino",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1901949643828625408/cIoDpRVb_normal.jpg",
                      "tweet_count": 52190,
                      "url": "https://twitter.com/dbongino",
                      "user_id": "232901331",
                      "username": "dbongino",
                      "verified": true
                    },
                    {
                      "created_at": "2011-12-03 03:06:19",
                      "description": "Host of Lex Fridman Podcast.\nInterested in robots and humans.",
                      "followers_count": 4707370,
                      "following_count": 683,
                      "name": "Lex Fridman",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1854713863817646088/nTmsz7jR_normal.jpg",
                      "tweet_count": 3994,
                      "url": "https://twitter.com/lexfridman",
                      "user_id": "427089628",
                      "username": "lexfridman",
                      "verified": true
                    },
                    {
                      "created_at": "2019-12-03 01:14:36",
                      "description": "Lauren Boebert for Congress: CO-04 Congresswoman, Mom & Gigi with a fierce love for liberty. Sent to DRAIN THE SWAMP drier than a CO irrigation ditch in July.",
                      "followers_count": 5129825,
                      "following_count": 1930,
                      "name": "Lauren Boebert",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1498803395578236934/vGGuE9-k_normal.jpg",
                      "tweet_count": 11316,
                      "url": "https://twitter.com/laurenboebert",
                      "user_id": "1201670995435646976",
                      "username": "laurenboebert",
                      "verified": true
                    },
                    {
                      "created_at": "2009-11-22 22:32:41",
                      "description": "Author, Filmmaker, Host of Dinesh Podcast. Read my investigative work on Substack:   https://t.co/e9jgDYkZ6c",
                      "followers_count": 5428370,
                      "following_count": 10335,
                      "name": "Dinesh D'Souza",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1969139625995497472/oIr7LrHF_normal.jpg",
                      "tweet_count": 174665,
                      "url": "https://twitter.com/DineshDSouza",
                      "user_id": "91882544",
                      "username": "DineshDSouza",
                      "verified": true
                    },
                    {
                      "created_at": "2020-12-30 18:57:01",
                      "description": "Christian, Mother, Business Owner, and Former Congresswoman of Georgia’s 14th District |AMERICA FIRST AMERICA ONLY 🇺🇸",
                      "followers_count": 5400926,
                      "following_count": 893,
                      "name": "Former Congresswoman Marjorie Taylor Greene🇺🇸",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1867641239685713920/7jTW4Eag_normal.jpg",
                      "tweet_count": 9831,
                      "url": "https://twitter.com/FmrRepMTG",
                      "user_id": "1344356576786866176",
                      "username": "FmrRepMTG",
                      "verified": true
                    },
                    {
                      "created_at": "2008-12-09 16:40:22",
                      "description": "Daily Wire co-founder, host of @benshapiroshow, #1 NYT bestselling author, America’s #1 ex-rapper. Order my new book, Lions and Scavengers below",
                      "followers_count": 8430259,
                      "following_count": 491,
                      "name": "Ben Shapiro",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1791135695567740928/nrRmsfkZ_normal.jpg",
                      "tweet_count": 204496,
                      "url": "https://twitter.com/benshapiro",
                      "user_id": "17995040",
                      "username": "benshapiro",
                      "verified": true
                    },
                    {
                      "created_at": "2009-04-23 21:53:30",
                      "description": "SpaceX designs, manufactures and launches the world’s most advanced rockets and spacecraft",
                      "followers_count": 41426435,
                      "following_count": 127,
                      "name": "SpaceX",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1697749409851985920/HbrI04tM_normal.jpg",
                      "tweet_count": 11190,
                      "url": "https://twitter.com/SpaceX",
                      "user_id": "34743251",
                      "username": "SpaceX",
                      "verified": true
                    },
                    {
                      "created_at": "2009-04-20 18:21:04",
                      "description": "Actor, director, producer, author.",
                      "followers_count": 2612502,
                      "following_count": 662,
                      "name": "Kevin Sorbo",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1874633227001823232/dYuQ8VPx_normal.jpg",
                      "tweet_count": 30007,
                      "url": "https://twitter.com/ksorbs",
                      "user_id": "33608041",
                      "username": "ksorbs",
                      "verified": true
                    },
                    {
                      "created_at": "2021-12-06 19:00:41",
                      "description": "President of @GunRights & @RMGOColorado | \n3-decade Gun Lobbyist | Weapons Expert | Real Conservative",
                      "followers_count": 1681432,
                      "following_count": 990,
                      "name": "Dudley Brown",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1983627066798116864/7WsebhRV_normal.jpg",
                      "tweet_count": 5320,
                      "url": "https://twitter.com/GunRightsPrez",
                      "user_id": "1467931973616386052",
                      "username": "GunRightsPrez",
                      "verified": true
                    },
                    {
                      "created_at": "2008-12-20 14:32:44",
                      "description": "President, Judicial Watch. Fact checker. \"Expert\" (These are my personal views only!)  NEW BOOK: RIGHTS AND FREEDOMS IN PERIL -- https://t.co/HilDvVzCNg!",
                      "followers_count": 3269136,
                      "following_count": 5049,
                      "name": "Tom Fitton",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/964235516794171392/ktAX5u2i_normal.jpg",
                      "tweet_count": 95844,
                      "url": "https://twitter.com/TomFitton",
                      "user_id": "18266688",
                      "username": "TomFitton",
                      "verified": true
                    },
                    {
                      "created_at": "2010-11-17 23:52:35",
                      "description": "U.S. Senator for Kentucky | I fight for the Constitution, individual liberty and the freedoms that make this country great.",
                      "followers_count": 5955242,
                      "following_count": 811,
                      "name": "Rand Paul",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/681152691461042177/_PrgDgFA_normal.jpg",
                      "tweet_count": 20410,
                      "url": "https://twitter.com/RandPaul",
                      "user_id": "216881337",
                      "username": "RandPaul",
                      "verified": true
                    },
                    {
                      "created_at": "2009-03-06 03:20:20",
                      "description": "Father of two, @heidiscruz's husband, fighter for liberty. Representing the great state of Texas in the U.S. Senate.",
                      "followers_count": 7087600,
                      "following_count": 5387,
                      "name": "Ted Cruz",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1798342969218510849/JaIsGsam_normal.jpg",
                      "tweet_count": 58799,
                      "url": "https://twitter.com/tedcruz",
                      "user_id": "23022687",
                      "username": "tedcruz",
                      "verified": true
                    },
                    {
                      "created_at": "2008-02-10 01:12:32",
                      "description": "Electric vehicles, giant batteries & solar, AI & robotics",
                      "followers_count": 24735451,
                      "following_count": 56,
                      "name": "Tesla",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1337607516008501250/6Ggc4S5n_normal.png",
                      "tweet_count": 10214,
                      "url": "https://twitter.com/Tesla",
                      "user_id": "13298072",
                      "username": "Tesla",
                      "verified": true
                    },
                    {
                      "created_at": "2011-02-28 23:33:33",
                      "description": "Host of @SatAmericaFNC @FoxNews. Co-host @OutnumberedFNC. Fmr. White House Press Secretary. Harvard Law. Georgetown SFS.",
                      "followers_count": 4062103,
                      "following_count": 2888,
                      "name": "Kayleigh McEnany",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2001806985759698944/IjjsiBBW_normal.jpg",
                      "tweet_count": 26596,
                      "url": "https://twitter.com/kayleighmcenany",
                      "user_id": "259001548",
                      "username": "kayleighmcenany",
                      "verified": true
                    },
                    {
                      "created_at": "2009-02-10 21:04:49",
                      "description": "Real News for Real People. \n\nWatch NEWSMAX, an independent news network with a conservative perspective, available in 100M+ U.S. homes: https://t.co/rs8XZDalW3  $NMAX",
                      "followers_count": 3644546,
                      "following_count": 826,
                      "name": "NEWSMAX",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1394735604269817857/AXKKo6XT_normal.jpg",
                      "tweet_count": 262751,
                      "url": "https://twitter.com/NEWSMAX",
                      "user_id": "20545835",
                      "username": "NEWSMAX",
                      "verified": true
                    },
                    {
                      "created_at": "2026-04-04 21:33:26",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Jeffrey Cardona",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543291511320577/6kMRI2Zz_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/CardonaJe94607",
                      "user_id": "2040542623375499264",
                      "username": "CardonaJe94607",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:18",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 8,
                      "name": "Dae",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543381747851264/UeL5ASPN_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Dae_nosso",
                      "user_id": "2040543184451719168",
                      "username": "Dae_nosso",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:14",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "LiuXuanYuan",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543061688848384/jdnSh-vN_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/yuan_xuan83241",
                      "user_id": "2040542845979762688",
                      "username": "yuan_xuan83241",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:34:30",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 3,
                      "name": "Nas",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543558386479104/p3bqEJ51_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Nas078751887646",
                      "user_id": "2040543529710063616",
                      "username": "Nas078751887646",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:34:19",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 2,
                      "name": "Jeison Carabali",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/CarabaliJe34348",
                      "user_id": "2040543449594712064",
                      "username": "CarabaliJe34348",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:30",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Terri",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Terri9669678443",
                      "user_id": "2040543243327184896",
                      "username": "Terri9669678443",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:29",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Clan vortex Tm vortex",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543304161394688/nCvHdhdG_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/clan_vortex1",
                      "user_id": "2040543231260168192",
                      "username": "clan_vortex1",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:29",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Charlotte Schuster",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/CharlotteS49990",
                      "user_id": "2040543202675986432",
                      "username": "CharlotteS49990",
                      "verified": false
                    },
                    {
                      "created_at": "2011-09-03 00:54:42",
                      "description": "",
                      "followers_count": 1,
                      "following_count": 2,
                      "name": "zodiac_works",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/zodiac_works01",
                      "user_id": "366891454",
                      "username": "zodiac_works01",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:34:05",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 20,
                      "name": "Kowa",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Kowaxiwp",
                      "user_id": "2040543298981650432",
                      "username": "Kowaxiwp",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:18",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Cynthia Duarte",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/DuarteCynt53259",
                      "user_id": "2040543158535127040",
                      "username": "DuarteCynt53259",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:31:43",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 9,
                      "name": "Toby-one",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Toby_one0",
                      "user_id": "2040541590129664000",
                      "username": "Toby_one0",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:30:03",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 6,
                      "name": "Gamerdoy 01",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040542438155038721/W1dfAzVf_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Terminator_02V",
                      "user_id": "2040542332735369216",
                      "username": "Terminator_02V",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:19",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Rebecca",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Rebecca86581416",
                      "user_id": "2040543196980113408",
                      "username": "Rebecca86581416",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:18",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Caleb",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Caleb15955",
                      "user_id": "2040543191967903744",
                      "username": "Caleb15955",
                      "verified": false
                    },
                    {
                      "created_at": "2025-10-30 20:26:41",
                      "description": "",
                      "followers_count": 18,
                      "following_count": 70,
                      "name": "Tim Stangl",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1983993986147872770/7irTDEg7_normal.png",
                      "tweet_count": 25,
                      "url": "https://twitter.com/stangl_tim12467",
                      "user_id": "1983993822196727809",
                      "username": "stangl_tim12467",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:39",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Mihir Shrestha",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543345286553600/LzUYVdpD_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/MihirShres99488",
                      "user_id": "2040543290529812481",
                      "username": "MihirShres99488",
                      "verified": false
                    },
                    {
                      "created_at": "2020-03-27 03:37:05",
                      "description": "BackYard Olympix Organiser",
                      "followers_count": 0,
                      "following_count": 2,
                      "name": "AussieBYOgames",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/BackYardOlympix",
                      "user_id": "1243381341405630467",
                      "username": "BackYardOlympix",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:30",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Justin Valentino",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543346490593280/VqDdQCR1_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/JustinV8110",
                      "user_id": "2040542960064806912",
                      "username": "JustinV8110",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:10",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Christopher",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Christo23620034",
                      "user_id": "2040543155284533248",
                      "username": "Christo23620034",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:08",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Nathan",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Nathan121763",
                      "user_id": "2040543151836844032",
                      "username": "Nathan121763",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:44",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Melissa Butler",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543331906994176/ZAwtUM2F_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/MelissaB83226",
                      "user_id": "2040543021691813888",
                      "username": "MelissaB83226",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:08",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Debra",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Debra1594039",
                      "user_id": "2040543152977723392",
                      "username": "Debra1594039",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:54",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Yacine",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543406842052608/tG2IuuSB_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Yacine924172667",
                      "user_id": "2040543362843811840",
                      "username": "Yacine924172667",
                      "verified": false
                    },
                    {
                      "created_at": "2023-01-30 05:13:46",
                      "description": "I love to draw; it brings me peace and tranquility.\nI'm currently at 1%, so any help is welcome and appreciated.\nhttps://t.co/U3hqqRGGNf",
                      "followers_count": 44,
                      "following_count": 287,
                      "name": "DackZeus",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1619926963845578752/f5qCydp0_normal.jpg",
                      "tweet_count": 534,
                      "url": "https://twitter.com/DackZeuss",
                      "user_id": "1619926717186940928",
                      "username": "DackZeuss",
                      "verified": false
                    },
                    {
                      "created_at": "2026-03-28 21:05:22",
                      "description": "",
                      "followers_count": 13,
                      "following_count": 39,
                      "name": "De Fantasy",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2037999675735969792/3HvZRVST_normal.jpg",
                      "tweet_count": 62,
                      "url": "https://twitter.com/De_fantasy1",
                      "user_id": "2037997642173628416",
                      "username": "De_fantasy1",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:20",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 2,
                      "name": "Avery Bekelly",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/averymallyana",
                      "user_id": "2040543215493734402",
                      "username": "averymallyana",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:09",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Elizabeth",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Elizabe84215604",
                      "user_id": "2040543157956268032",
                      "username": "Elizabe84215604",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:27",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "arctic blue",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543041623089152/dh7Lyoig_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/arqticbleu",
                      "user_id": "2040542934836121600",
                      "username": "arqticbleu",
                      "verified": false
                    },
                    {
                      "created_at": "2007-04-28 00:32:54",
                      "description": "Design Estimator at Illuminated Integration",
                      "followers_count": 641,
                      "following_count": 620,
                      "name": "John Fones",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2021806950183239680/rLhgArwC_normal.jpg",
                      "tweet_count": 3696,
                      "url": "https://twitter.com/JohnFones",
                      "user_id": "5571292",
                      "username": "JohnFones",
                      "verified": true
                    },
                    {
                      "created_at": "2026-04-04 21:33:37",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 6,
                      "name": "Sewing Machines",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543336797204480/kmbSx1SQ_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/sewing46086",
                      "user_id": "2040543110816575488",
                      "username": "sewing46086",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:20",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 8,
                      "name": "VUQUA",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/VUQUA1911",
                      "user_id": "2040542912241606656",
                      "username": "VUQUA1911",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:21",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "biharibhalu0087",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/biharibhalu0087",
                      "user_id": "2040543194773889024",
                      "username": "biharibhalu0087",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:42",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 5,
                      "name": "Loka Llokk",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543360629293057/rRqkvhF9_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/LlokkLoka34415",
                      "user_id": "2040543289305092096",
                      "username": "LlokkLoka34415",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:01",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Emily",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Emily169090",
                      "user_id": "2040543120073347072",
                      "username": "Emily169090",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:59",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Colleen",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Colleen37773561",
                      "user_id": "2040543111353368576",
                      "username": "Colleen37773561",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:30:07",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 7,
                      "name": "Felipe Felizardo",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040542455645249536/AbecActY_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Femufe26",
                      "user_id": "2040542244558553089",
                      "username": "Femufe26",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:30:16",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 102,
                      "name": "Aniket Jadhav",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040542642124312576/TmhA78s2_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/AniketJadh1605",
                      "user_id": "2040542345096257536",
                      "username": "AniketJadh1605",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:30:41",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 17,
                      "name": "Facundo Osimi",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040542987713691648/88heF0d3_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/TermometroMundo",
                      "user_id": "2040542559819251713",
                      "username": "TermometroMundo",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:33",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Lacie Smith",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543322473701376/b_H2f32K_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/LacieSmith85764",
                      "user_id": "2040543245143269376",
                      "username": "LacieSmith85764",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:31:54",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 63,
                      "name": "Sunnyawa",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/sunnyawa61509",
                      "user_id": "2040542718808530944",
                      "username": "sunnyawa61509",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:33:31",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Saheed Faleti",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543311467888640/YKIe8neD_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/SFaleti95533",
                      "user_id": "2040543226851942401",
                      "username": "SFaleti95533",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:51",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Anna",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Anna147010",
                      "user_id": "2040543076460953600",
                      "username": "Anna147010",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-01 05:02:13",
                      "description": "semn518198 | adventurer | explorer of life's adventures & knowledge 🌍💡",
                      "followers_count": 0,
                      "following_count": 2,
                      "name": "Семён",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2039702081498714112/LnYSGD2L_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Semn518198",
                      "user_id": "2039206637114646528",
                      "username": "Semn518198",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:32",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 24,
                      "name": "moe",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543161739862016/8ZTcpW8q_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/kwttiezchan",
                      "user_id": "2040543026875944961",
                      "username": "kwttiezchan",
                      "verified": false
                    },
                    {
                      "created_at": "2024-12-27 20:34:22",
                      "description": "Wealth, Love and Authenticity!",
                      "followers_count": 22,
                      "following_count": 274,
                      "name": "becoming",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2037727430933102592/d4gLulGK_normal.jpg",
                      "tweet_count": 75,
                      "url": "https://twitter.com/now_becoming",
                      "user_id": "1872742769518841856",
                      "username": "now_becoming",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:29",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 1,
                      "name": "Dennis Forex",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040543049999159296/X9O9-pu-_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/thatguymuange_",
                      "user_id": "2040542754296438784",
                      "username": "thatguymuange_",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 12:44:50",
                      "description": "Crypto/memecoin",
                      "followers_count": 5,
                      "following_count": 56,
                      "name": "Tunmise Samuel",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040467563390394369/rNopByY3_normal.jpg",
                      "tweet_count": 1,
                      "url": "https://twitter.com/TunmiseSam7sn",
                      "user_id": "2040409944374091777",
                      "username": "TunmiseSam7sn",
                      "verified": false
                    },
                    {
                      "created_at": "2026-04-04 21:32:38",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 4,
                      "name": "Corey",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Corey8699167864",
                      "user_id": "2040543023948267520",
                      "username": "Corey8699167864",
                      "verified": false
                    },
                    {
                      "created_at": "2019-04-10 08:36:32",
                      "description": "",
                      "followers_count": 0,
                      "following_count": 6,
                      "name": "Eva",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 1,
                      "url": "https://twitter.com/Eva30399841",
                      "user_id": "1115896330784784385",
                      "username": "Eva30399841",
                      "verified": false
                    }
                  ],
                  "pages": 1,
                  "username": "elonmusk"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/user/following": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterUserFollowing",
        "summary": "Twitter User Following",
        "description": "Get the accounts that a specific Twitter/X user follows. Returns profile details for each followed account including username, display name, bio, follower/following counts, tweet count, verification status, and profile image. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-user-following"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Twitter username without the @ symbol (max 50 characters). A leading @ is accepted and stripped.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "elonmusk"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-175, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 175,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterUserFollowingResponse"
                },
                "example": {
                  "count": 70,
                  "following": [
                    {
                      "created_at": "2009-12-06 23:33:02",
                      "description": "Best-Selling Author | Clinical Psychologist | #1 Education Podcast | Co-founder of @petersonacademy | Order my new book \"We Who Wrestle With God\" here:",
                      "followers_count": 6181437,
                      "following_count": 1656,
                      "name": "Dr Jordan B Peterson",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1407056014776614923/TKBC60e1_normal.jpg",
                      "tweet_count": 51537,
                      "url": "https://twitter.com/jordanbpeterson",
                      "user_id": "95092020",
                      "username": "jordanbpeterson",
                      "verified": true
                    },
                    {
                      "created_at": "2009-05-11 21:18:33",
                      "description": "Co-Founder @worldlibertyfi",
                      "followers_count": 16197578,
                      "following_count": 2321,
                      "name": "Donald Trump Jr.",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/766652495858896897/LjrJJB9a_normal.jpg",
                      "tweet_count": 52237,
                      "url": "https://twitter.com/DonaldJTrumpJr",
                      "user_id": "39344374",
                      "username": "DonaldJTrumpJr",
                      "verified": true
                    },
                    {
                      "created_at": "2009-01-03 19:24:16",
                      "description": "Merch & Giveaways at: https://t.co/kxb8qjHatu —— PODCAST: @hodgetwinspod",
                      "followers_count": 3509377,
                      "following_count": 3624,
                      "name": "Hodgetwins",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2029992352232919040/UquWwHmh_normal.jpg",
                      "tweet_count": 65134,
                      "url": "https://twitter.com/hodgetwins",
                      "user_id": "18584875",
                      "username": "hodgetwins",
                      "verified": true
                    },
                    {
                      "created_at": "2016-02-15 16:05:21",
                      "description": "Fake news you can trust 🐝",
                      "followers_count": 5238157,
                      "following_count": 8,
                      "name": "The Babylon Bee",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1400100770624720898/-HC7kL5x_normal.jpg",
                      "tweet_count": 35526,
                      "url": "https://twitter.com/TheBabylonBee",
                      "user_id": "4914384040",
                      "username": "TheBabylonBee",
                      "verified": true
                    },
                    {
                      "created_at": "2011-01-01 17:50:03",
                      "description": "Just here for the comments.",
                      "followers_count": 7451642,
                      "following_count": 2519,
                      "name": "Dan Bongino",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1901949643828625408/cIoDpRVb_normal.jpg",
                      "tweet_count": 52190,
                      "url": "https://twitter.com/dbongino",
                      "user_id": "232901331",
                      "username": "dbongino",
                      "verified": true
                    },
                    {
                      "created_at": "2011-12-03 03:06:19",
                      "description": "Host of Lex Fridman Podcast.\nInterested in robots and humans.",
                      "followers_count": 4707370,
                      "following_count": 683,
                      "name": "Lex Fridman",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1854713863817646088/nTmsz7jR_normal.jpg",
                      "tweet_count": 3994,
                      "url": "https://twitter.com/lexfridman",
                      "user_id": "427089628",
                      "username": "lexfridman",
                      "verified": true
                    },
                    {
                      "created_at": "2019-12-03 01:14:36",
                      "description": "Lauren Boebert for Congress: CO-04 Congresswoman, Mom & Gigi with a fierce love for liberty. Sent to DRAIN THE SWAMP drier than a CO irrigation ditch in July.",
                      "followers_count": 5129825,
                      "following_count": 1930,
                      "name": "Lauren Boebert",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1498803395578236934/vGGuE9-k_normal.jpg",
                      "tweet_count": 11316,
                      "url": "https://twitter.com/laurenboebert",
                      "user_id": "1201670995435646976",
                      "username": "laurenboebert",
                      "verified": true
                    },
                    {
                      "created_at": "2009-11-22 22:32:41",
                      "description": "Author, Filmmaker, Host of Dinesh Podcast. Read my investigative work on Substack:   https://t.co/e9jgDYkZ6c",
                      "followers_count": 5428370,
                      "following_count": 10335,
                      "name": "Dinesh D'Souza",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1969139625995497472/oIr7LrHF_normal.jpg",
                      "tweet_count": 174665,
                      "url": "https://twitter.com/DineshDSouza",
                      "user_id": "91882544",
                      "username": "DineshDSouza",
                      "verified": true
                    },
                    {
                      "created_at": "2020-12-30 18:57:01",
                      "description": "Christian, Mother, Business Owner, and Former Congresswoman of Georgia’s 14th District |AMERICA FIRST AMERICA ONLY 🇺🇸",
                      "followers_count": 5400926,
                      "following_count": 893,
                      "name": "Former Congresswoman Marjorie Taylor Greene🇺🇸",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1867641239685713920/7jTW4Eag_normal.jpg",
                      "tweet_count": 9831,
                      "url": "https://twitter.com/FmrRepMTG",
                      "user_id": "1344356576786866176",
                      "username": "FmrRepMTG",
                      "verified": true
                    },
                    {
                      "created_at": "2008-12-09 16:40:22",
                      "description": "Daily Wire co-founder, host of @benshapiroshow, #1 NYT bestselling author, America’s #1 ex-rapper. Order my new book, Lions and Scavengers below",
                      "followers_count": 8430259,
                      "following_count": 491,
                      "name": "Ben Shapiro",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1791135695567740928/nrRmsfkZ_normal.jpg",
                      "tweet_count": 204496,
                      "url": "https://twitter.com/benshapiro",
                      "user_id": "17995040",
                      "username": "benshapiro",
                      "verified": true
                    },
                    {
                      "created_at": "2009-04-23 21:53:30",
                      "description": "SpaceX designs, manufactures and launches the world’s most advanced rockets and spacecraft",
                      "followers_count": 41426435,
                      "following_count": 127,
                      "name": "SpaceX",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1697749409851985920/HbrI04tM_normal.jpg",
                      "tweet_count": 11190,
                      "url": "https://twitter.com/SpaceX",
                      "user_id": "34743251",
                      "username": "SpaceX",
                      "verified": true
                    },
                    {
                      "created_at": "2010-11-17 23:52:35",
                      "description": "U.S. Senator for Kentucky | I fight for the Constitution, individual liberty and the freedoms that make this country great.",
                      "followers_count": 5955242,
                      "following_count": 811,
                      "name": "Rand Paul",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/681152691461042177/_PrgDgFA_normal.jpg",
                      "tweet_count": 20410,
                      "url": "https://twitter.com/RandPaul",
                      "user_id": "216881337",
                      "username": "RandPaul",
                      "verified": true
                    },
                    {
                      "created_at": "2009-03-06 03:20:20",
                      "description": "Father of two, @heidiscruz's husband, fighter for liberty. Representing the great state of Texas in the U.S. Senate.",
                      "followers_count": 7087600,
                      "following_count": 5387,
                      "name": "Ted Cruz",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1798342969218510849/JaIsGsam_normal.jpg",
                      "tweet_count": 58799,
                      "url": "https://twitter.com/tedcruz",
                      "user_id": "23022687",
                      "username": "tedcruz",
                      "verified": true
                    },
                    {
                      "created_at": "2008-02-10 01:12:32",
                      "description": "Electric vehicles, giant batteries & solar, AI & robotics",
                      "followers_count": 24735451,
                      "following_count": 56,
                      "name": "Tesla",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1337607516008501250/6Ggc4S5n_normal.png",
                      "tweet_count": 10214,
                      "url": "https://twitter.com/Tesla",
                      "user_id": "13298072",
                      "username": "Tesla",
                      "verified": true
                    },
                    {
                      "created_at": "2009-07-20 20:24:48",
                      "description": "Florida Man",
                      "followers_count": 3513388,
                      "following_count": 4587,
                      "name": "Matt Gaetz",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1832034268077338625/v_sJ7qw8_normal.jpg",
                      "tweet_count": 30625,
                      "url": "https://twitter.com/mattgaetz",
                      "user_id": "58579942",
                      "username": "mattgaetz",
                      "verified": true
                    },
                    {
                      "created_at": "2009-03-26 00:14:32",
                      "description": "Director of National Intelligence. Former Presidential candidate & Congresswoman. Soldier. NYT bestselling author. (Views do not reflect position of USG/DoD)",
                      "followers_count": 3875881,
                      "following_count": 1183,
                      "name": "Tulsi Gabbard 🌺",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1786183993475399680/gdJaqmsJ_normal.jpg",
                      "tweet_count": 12808,
                      "url": "https://twitter.com/TulsiGabbard",
                      "user_id": "26637348",
                      "username": "TulsiGabbard",
                      "verified": true
                    },
                    {
                      "created_at": "2009-01-29 22:28:48",
                      "description": "55th Speaker of the House",
                      "followers_count": 3127579,
                      "following_count": 1480,
                      "name": "Kevin McCarthy",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1613262093800677376/r3bwUusR_normal.jpg",
                      "tweet_count": 23518,
                      "url": "https://twitter.com/SpeakerMcCarthy",
                      "user_id": "19739126",
                      "username": "SpeakerMcCarthy",
                      "verified": true
                    },
                    {
                      "created_at": "2015-10-31 15:42:25",
                      "description": "Official X account of The Daily Wire.",
                      "followers_count": 2578054,
                      "following_count": 1678,
                      "name": "Daily Wire",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1938258418332008448/0cXQdMaz_normal.jpg",
                      "tweet_count": 198888,
                      "url": "https://twitter.com/realDailyWire",
                      "user_id": "4081106480",
                      "username": "realDailyWire",
                      "verified": true
                    },
                    {
                      "created_at": "2020-12-27 00:24:52",
                      "description": "Congresswoman for Colorado's 4th District • Co-Chair #2A Caucus • Member of the House @FreedomCaucus • Member of @GOPOversight & @NatResources 🇺🇸",
                      "followers_count": 1498532,
                      "following_count": 573,
                      "name": "Rep. Lauren Boebert",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1838308580195184640/Jf6Oh6wf_normal.jpg",
                      "tweet_count": 3206,
                      "url": "https://twitter.com/RepBoebert",
                      "user_id": "1342989756611907584",
                      "username": "RepBoebert",
                      "verified": true
                    },
                    {
                      "created_at": "2009-05-21 17:41:12",
                      "description": "Hang Out w/Hannity https://t.co/9wzGXDc2bZ | TV Host Fox News Channel 9 PM EST. Nationally Syndicated Radio Host 3-6 PM EST.",
                      "followers_count": 7680387,
                      "following_count": 13,
                      "name": "Sean Hannity 🇺🇸",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1862487402163433472/Ccr7C3Lh_normal.jpg",
                      "tweet_count": 37573,
                      "url": "https://twitter.com/seanhannity",
                      "user_id": "41634520",
                      "username": "seanhannity",
                      "verified": true
                    },
                    {
                      "created_at": "2014-06-02 13:49:01",
                      "description": "",
                      "followers_count": 224,
                      "following_count": 95,
                      "name": "Dmitry Martyanov",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1934650061339971584/PRl0tq0K_normal.jpg",
                      "tweet_count": 76,
                      "url": "https://twitter.com/DmitryMartyanov",
                      "user_id": "2541529680",
                      "username": "DmitryMartyanov",
                      "verified": true
                    },
                    {
                      "created_at": "2010-06-25 03:08:49",
                      "description": "Claude Code @anthropicai",
                      "followers_count": 380546,
                      "following_count": 130,
                      "name": "Boris Cherny",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1902044548936953856/J2jeik0t_normal.jpg",
                      "tweet_count": 1511,
                      "url": "https://twitter.com/bcherny",
                      "user_id": "159337660",
                      "username": "bcherny",
                      "verified": true
                    },
                    {
                      "created_at": "2016-09-11 22:50:40",
                      "description": "Just a girl with common sense. Born and raised in Spain.🇪🇸",
                      "followers_count": 430318,
                      "following_count": 1322,
                      "name": "Ada Lluch",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2025635565878611968/4PYUQN80_normal.jpg",
                      "tweet_count": 20798,
                      "url": "https://twitter.com/AdaLluch",
                      "user_id": "775104300452311041",
                      "username": "AdaLluch",
                      "verified": true
                    },
                    {
                      "created_at": "2026-02-11 18:18:47",
                      "description": "",
                      "followers_count": 852,
                      "following_count": 5,
                      "name": "Peter J M Nicholson",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/PeterM31890",
                      "user_id": "2021650014305419264",
                      "username": "PeterM31890",
                      "verified": true
                    },
                    {
                      "created_at": "2014-07-06 00:44:21",
                      "description": "leading design @x. prev. head of design @base. founder @family (acq by @aave). tools @dip.",
                      "followers_count": 108844,
                      "following_count": 423,
                      "name": "Benji Taylor",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1485350275372048384/FwGgXuTk_normal.png",
                      "tweet_count": 1203,
                      "url": "https://twitter.com/benjitaylor",
                      "user_id": "2606432720",
                      "username": "benjitaylor",
                      "verified": true
                    },
                    {
                      "created_at": "2011-09-01 23:10:14",
                      "description": "Christian. Proud husband. Father of 6. MAGA conservative. Follow @SecMullinDHS for cabinet updates. 🇺🇸",
                      "followers_count": 47222,
                      "following_count": 595,
                      "name": "Markwayne Mullin",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1542239910769426436/ktG-jlem_normal.jpg",
                      "tweet_count": 3095,
                      "url": "https://twitter.com/MarkwayneMullin",
                      "user_id": "366304362",
                      "username": "MarkwayneMullin",
                      "verified": true
                    },
                    {
                      "created_at": "2017-05-05 18:43:27",
                      "description": "Impossible? Let’s see. From algorithms to neuroscience to AI, Google Research strives to progress science, advance society & improve billions of people’s lives.",
                      "followers_count": 86005,
                      "following_count": 17,
                      "name": "Google Research",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1929964199956062208/Cv3ZuT1w_normal.jpg",
                      "tweet_count": 361,
                      "url": "https://twitter.com/GoogleResearch",
                      "user_id": "860565621452316672",
                      "username": "GoogleResearch",
                      "verified": true
                    },
                    {
                      "created_at": "2009-01-16 15:07:02",
                      "description": "Semi @ Tesla. Perpetually curious",
                      "followers_count": 16963,
                      "following_count": 110,
                      "name": "Dan Priestley",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2037547847122595841/unJDIs6s_normal.jpg",
                      "tweet_count": 264,
                      "url": "https://twitter.com/danWpriestley",
                      "user_id": "19069944",
                      "username": "danWpriestley",
                      "verified": true
                    },
                    {
                      "created_at": "2026-02-05 06:12:18",
                      "description": "Unlock your imagination with Grok Imagine.",
                      "followers_count": 41425,
                      "following_count": 4,
                      "name": "Grok Imagine",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2034842906952167424/yG7MXcbZ_normal.png",
                      "tweet_count": 40,
                      "url": "https://twitter.com/imagine",
                      "user_id": "2019292645466730499",
                      "username": "imagine",
                      "verified": true
                    },
                    {
                      "created_at": "2011-07-08 20:58:50",
                      "description": "Founder, CEO @ Mach33 | Research and Investment in Space & Expansion Technologies",
                      "followers_count": 21560,
                      "following_count": 544,
                      "name": "Aaron Burnett",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1742713730645757952/NsFdyJ_D_normal.jpg",
                      "tweet_count": 5965,
                      "url": "https://twitter.com/aaronburnett",
                      "user_id": "331865640",
                      "username": "aaronburnett",
                      "verified": true
                    },
                    {
                      "created_at": "2008-12-31 02:17:01",
                      "description": "VP Supply Chain at Tesla | Aspire to make a difference, make a dent and leave the world a little better than I found it",
                      "followers_count": 6343,
                      "following_count": 884,
                      "name": "Roshan Thomas",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1373308515574374402/S68qGsYi_normal.jpg",
                      "tweet_count": 3111,
                      "url": "https://twitter.com/roshanthomas",
                      "user_id": "18495948",
                      "username": "roshanthomas",
                      "verified": true
                    },
                    {
                      "created_at": "2008-03-26 18:04:00",
                      "description": "CEO @ Pilgrim Soul Creative | CMO of Leading Digital Companies & Best Selling Author on Creative Thinking.",
                      "followers_count": 2684,
                      "following_count": 1242,
                      "name": "shawn gold",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1825539438270926848/D-XtrbpB_normal.jpg",
                      "tweet_count": 1596,
                      "url": "https://twitter.com/shawngold",
                      "user_id": "14228090",
                      "username": "shawngold",
                      "verified": true
                    },
                    {
                      "created_at": "2009-12-05 22:16:41",
                      "description": "Biomedical engineer, permaculture farmer, Camus scholar, Maryland supremacy, husband, and father.",
                      "followers_count": 11287,
                      "following_count": 1146,
                      "name": "Patrick Heizer",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1660249341859094529/q-DieOiL_normal.jpg",
                      "tweet_count": 29441,
                      "url": "https://twitter.com/PatrickHeizer",
                      "user_id": "94879539",
                      "username": "PatrickHeizer",
                      "verified": true
                    },
                    {
                      "created_at": "2015-08-09 01:29:32",
                      "description": "Co-Founder @Special",
                      "followers_count": 11411,
                      "following_count": 95,
                      "name": "Nate Cavanaugh",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2036532244404142081/BXucfjJE_normal.jpg",
                      "tweet_count": 41,
                      "url": "https://twitter.com/natecavanaugh",
                      "user_id": "3409484043",
                      "username": "natecavanaugh",
                      "verified": true
                    },
                    {
                      "created_at": "2010-04-15 03:53:58",
                      "description": "Building superintelligence @xai",
                      "followers_count": 66421,
                      "following_count": 488,
                      "name": "Devendra Chaplot",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1856228554058629120/ReeoBXBY_normal.jpg",
                      "tweet_count": 675,
                      "url": "https://twitter.com/dchaplot",
                      "user_id": "133148364",
                      "username": "dchaplot",
                      "verified": true
                    },
                    {
                      "created_at": "2008-07-31 04:21:59",
                      "description": "Writer.\nI like to ask questions.",
                      "followers_count": 127548,
                      "following_count": 483,
                      "name": "Kath Brod",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1942261551546896384/MIO7pqV__normal.jpg",
                      "tweet_count": 85571,
                      "url": "https://twitter.com/mysteriouskat",
                      "user_id": "15670857",
                      "username": "mysteriouskat",
                      "verified": true
                    },
                    {
                      "created_at": "2025-06-22 09:54:37",
                      "description": "Founder & Chair of Texans for Reasonable Solutions @TXReasSolutions. Wife, Mom, Texan. Focusing on Policy and Civ Problems",
                      "followers_count": 1131,
                      "following_count": 138,
                      "name": "Nicole Nosek",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1960148480669712384/cEpY21m6_normal.jpg",
                      "tweet_count": 306,
                      "url": "https://twitter.com/NicoleNosek417",
                      "user_id": "1936724419894018048",
                      "username": "NicoleNosek417",
                      "verified": true
                    },
                    {
                      "created_at": "2025-10-27 16:39:10",
                      "description": "Documentary \"Call Sign Courage\" is the story of Lt Col Matt Lohmeier, who stood up against cultural Marxism in the military. Streaming presented by @Heritage",
                      "followers_count": 805,
                      "following_count": 107,
                      "name": "Call Sign Courage",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1983212614214631424/jzkyaMeX_normal.jpg",
                      "tweet_count": 97,
                      "url": "https://twitter.com/CallSignCourage",
                      "user_id": "1982849508393549824",
                      "username": "CallSignCourage",
                      "verified": true
                    },
                    {
                      "created_at": "2026-03-09 17:01:16",
                      "description": "",
                      "followers_count": 2324,
                      "following_count": 1,
                      "name": "Luke Nosek",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2031054882950754306/1DCMtnEr_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/LukeNosek",
                      "user_id": "2031052656601669632",
                      "username": "LukeNosek",
                      "verified": true
                    },
                    {
                      "created_at": "2012-12-19 22:26:25",
                      "description": "Sleeping. Previously founding team @xAI, engineer @GoogleDeepMind. @RWTH alumnus.",
                      "followers_count": 91258,
                      "following_count": 606,
                      "name": "Toby Pohlen",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1848762733732253696/S1aucmiu_normal.jpg",
                      "tweet_count": 896,
                      "url": "https://twitter.com/TobyPhln",
                      "user_id": "1023014000",
                      "username": "TobyPhln",
                      "verified": true
                    },
                    {
                      "created_at": "2020-11-09 18:08:23",
                      "description": "building @xai. fmr @cursor_ai, @NotionMail, founder/CTO @skiffprivacy",
                      "followers_count": 23520,
                      "following_count": 982,
                      "name": "Jason Ginsberg",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1907218106994286592/aCcU4Kbh_normal.jpg",
                      "tweet_count": 1486,
                      "url": "https://twitter.com/JasonBud",
                      "user_id": "1325862778603769856",
                      "username": "JasonBud",
                      "verified": true
                    },
                    {
                      "created_at": "2014-10-20 13:23:55",
                      "description": "@xai @spacex previously @cursor_ai, former CEO @skiffprivacy (acquired by @notionhq)",
                      "followers_count": 29718,
                      "following_count": 1664,
                      "name": "Andrew Milich",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1466472908977487881/-dym5k04_normal.jpg",
                      "tweet_count": 5531,
                      "url": "https://twitter.com/milichab",
                      "user_id": "2867234365",
                      "username": "milichab",
                      "verified": true
                    },
                    {
                      "created_at": "2012-12-27 03:44:47",
                      "description": "Interested in tech, AI, public health, healthcare — Kicked out of TTU med for truth-telling — I want Texas Tech to tell the truth about what it did",
                      "followers_count": 202693,
                      "following_count": 2644,
                      "name": "Kevin Bass",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1947236538409988096/hZXVsMlX_normal.jpg",
                      "tweet_count": 24586,
                      "url": "https://twitter.com/kevinnbass",
                      "user_id": "1038726722",
                      "username": "kevinnbass",
                      "verified": true
                    },
                    {
                      "created_at": "2013-01-12 13:01:16",
                      "description": "ex-VP of RL @ OpenAI | o3, o1, GPT4, ChatGPT, Codex, Solved Rubik’s cube with robotic hand | cautious AI optimist",
                      "followers_count": 35035,
                      "following_count": 1038,
                      "name": "Jerry Tworek",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1184690787419734016/7ija9HDY_normal.jpg",
                      "tweet_count": 1833,
                      "url": "https://twitter.com/MillionInt",
                      "user_id": "1082912120",
                      "username": "MillionInt",
                      "verified": true
                    },
                    {
                      "created_at": "2020-07-15 21:31:14",
                      "description": "Giga Berlin",
                      "followers_count": 11968,
                      "following_count": 68,
                      "name": "André Thierig",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1788118024618135553/bqycvm9S_normal.jpg",
                      "tweet_count": 87,
                      "url": "https://twitter.com/AndrThie",
                      "user_id": "1283514442337128454",
                      "username": "AndrThie",
                      "verified": true
                    },
                    {
                      "created_at": "2012-12-13 01:26:28",
                      "description": "currently member of technical staff @xai (prev core technologies @discord) \n\nshitposts are my own and don't represent my past, present or future employers",
                      "followers_count": 3778,
                      "following_count": 238,
                      "name": "Jake",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/736431162667589632/VBDhJMs1_normal.jpg",
                      "tweet_count": 996,
                      "url": "https://twitter.com/lolpython",
                      "user_id": "1007735221",
                      "username": "lolpython",
                      "verified": true
                    },
                    {
                      "created_at": "2009-04-09 00:50:00",
                      "description": "Web Video Producer | ⋈ | Pro Ultimate Frisbee Player | Host of @WVFRM @TheStudio",
                      "followers_count": 6133649,
                      "following_count": 482,
                      "name": "Marques Brownlee",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1990855181785759745/CP3H7WsL_normal.jpg",
                      "tweet_count": 56703,
                      "url": "https://twitter.com/MKBHD",
                      "user_id": "29873662",
                      "username": "MKBHD",
                      "verified": true
                    },
                    {
                      "created_at": "2009-06-11 16:34:47",
                      "description": "CEO of HUMAIN – building Saudi Arabia’s AI full-stack across infra, cloud, models & apps. Tech leader with 20+ yrs in AI, telecom & digital transformation.",
                      "followers_count": 10314,
                      "following_count": 107,
                      "name": "Tareq Amin",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1986704489731006464/S2kMIvBA_normal.jpg",
                      "tweet_count": 292,
                      "url": "https://twitter.com/TareqAmin_",
                      "user_id": "46426308",
                      "username": "TareqAmin_",
                      "verified": true
                    },
                    {
                      "created_at": "2023-03-24 07:28:40",
                      "description": "테슬라 코리아 공식 계정 | Building a World of Amazing Abundance",
                      "followers_count": 25367,
                      "following_count": 43,
                      "name": "Tesla Korea",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1930619255852351489/aEZPSQIS_normal.jpg",
                      "tweet_count": 782,
                      "url": "https://twitter.com/tesla_korea",
                      "user_id": "1639167118733357056",
                      "username": "tesla_korea",
                      "verified": true
                    },
                    {
                      "created_at": "2009-07-30 18:25:14",
                      "description": "The official handle for NVIDIA. Blog: https://t.co/JAn5eKOTBT Support: https://t.co/6ln5FVnA2o All our social media: https://t.co/Uc56dL57Dh",
                      "followers_count": 2467401,
                      "following_count": 48,
                      "name": "NVIDIA",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1828904711124078593/SRvCZSfQ_normal.jpg",
                      "tweet_count": 13882,
                      "url": "https://twitter.com/nvidia",
                      "user_id": "61559439",
                      "username": "nvidia",
                      "verified": true
                    },
                    {
                      "created_at": "2023-10-04 02:23:01",
                      "description": "Anglotheosophical Oblique Escalation\nhttps://t.co/zYwV8LwOQg",
                      "followers_count": 60644,
                      "following_count": 838,
                      "name": "Xenocosmography",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1709394184837451776/4xkaiTS7_normal.jpg",
                      "tweet_count": 18523,
                      "url": "https://twitter.com/xenocosmography",
                      "user_id": "1709393467871461376",
                      "username": "xenocosmography",
                      "verified": true
                    },
                    {
                      "created_at": "2020-06-06 10:10:38",
                      "description": "Life is nonlinear.\nSo handle it using Math.",
                      "followers_count": 140218,
                      "following_count": 4,
                      "name": "Math Files",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2008600608472002564/Umr62ufq_normal.jpg",
                      "tweet_count": 16658,
                      "url": "https://twitter.com/Math_files",
                      "user_id": "1269209727721975809",
                      "username": "Math_files",
                      "verified": true
                    },
                    {
                      "created_at": "2018-07-28 17:14:42",
                      "description": "https://t.co/dMAev4EgU0 is an independent news aggregator focused on Western politics, culture & identity.",
                      "followers_count": 46284,
                      "following_count": 0,
                      "name": "Europa.com",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1987881780796444672/6jVJlJZ2_normal.jpg",
                      "tweet_count": 2725,
                      "url": "https://twitter.com/europa",
                      "user_id": "1023255439021096960",
                      "username": "europa",
                      "verified": true
                    },
                    {
                      "created_at": "2014-08-22 17:54:28",
                      "description": "@cursor_ai CEO",
                      "followers_count": 82639,
                      "following_count": 835,
                      "name": "Michael Truell",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1887065642261737472/QdLiAFfD_normal.jpg",
                      "tweet_count": 243,
                      "url": "https://twitter.com/mntruell",
                      "user_id": "2755860644",
                      "username": "mntruell",
                      "verified": true
                    },
                    {
                      "created_at": "2015-02-19 10:21:32",
                      "description": "cofounder of @deno_land, creator of @nodejs. often goes by ry.",
                      "followers_count": 41201,
                      "following_count": 353,
                      "name": "Ryan Dahl",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1772426579156643840/RF8iP6Zn_normal.jpg",
                      "tweet_count": 1058,
                      "url": "https://twitter.com/rough__sea",
                      "user_id": "3044782305",
                      "username": "rough__sea",
                      "verified": true
                    },
                    {
                      "created_at": "2020-11-25 09:21:03",
                      "description": "The Minister of Defense of Ukraine",
                      "followers_count": 294395,
                      "following_count": 322,
                      "name": "Mykhailo Fedorov",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1577679622585589762/8o-VRrRL_normal.jpg",
                      "tweet_count": 2392,
                      "url": "https://twitter.com/FedorovMykhailo",
                      "user_id": "1331528215899344896",
                      "username": "FedorovMykhailo",
                      "verified": true
                    },
                    {
                      "created_at": "2013-10-29 18:30:32",
                      "description": "CEO @GoldmanSachs",
                      "followers_count": 13417,
                      "following_count": 40,
                      "name": "David Solomon",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1054838979437191171/-zhOGfet_normal.jpg",
                      "tweet_count": 0,
                      "url": "https://twitter.com/DavidSolomon",
                      "user_id": "2163341846",
                      "username": "DavidSolomon",
                      "verified": true
                    },
                    {
                      "created_at": "2021-05-05 06:46:46",
                      "description": "America First • Breaking News • Interesting Videos——— just a dude with an IPhone ✝️🔥",
                      "followers_count": 805025,
                      "following_count": 26674,
                      "name": "American AF 🇺🇸",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1677756031324102659/QmkoTNg5_normal.jpg",
                      "tweet_count": 104756,
                      "url": "https://twitter.com/iAnonPatriot",
                      "user_id": "1389833864122613761",
                      "username": "iAnonPatriot",
                      "verified": true
                    },
                    {
                      "created_at": "2008-07-22 22:54:37",
                      "description": "@vercel CEO",
                      "followers_count": 416609,
                      "following_count": 650,
                      "name": "Guillermo Rauch",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1783856060249595904/8TfcCN0r_normal.jpg",
                      "tweet_count": 51385,
                      "url": "https://twitter.com/rauchg",
                      "user_id": "15540222",
                      "username": "rauchg",
                      "verified": true
                    },
                    {
                      "created_at": "2020-10-17 04:51:47",
                      "description": "I'm an unapologetic believer in American exceptionalism 🇺🇸\n\nPosts on startups & policy | founder @legionhealth (yc s21) | prev @princeton @mckinsey",
                      "followers_count": 69260,
                      "following_count": 997,
                      "name": "Arthur MacWaters",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1921033752140279808/TgndOxdb_normal.jpg",
                      "tweet_count": 59775,
                      "url": "https://twitter.com/ArthurMacwaters",
                      "user_id": "1317327383628705793",
                      "username": "ArthurMacwaters",
                      "verified": true
                    },
                    {
                      "created_at": "2010-12-22 06:55:56",
                      "description": "✨🔭🌞📚🍯🌹⚡️🧩📸🎶🎬🪩💋🔮🚀🚘🕳️🧠 𝕩 🇺🇸✌️🐕 ⚖️🤖♟️📡 🛰️💫 ... . . -.- . .-. / --- ..-. / .. -. . ..-. ..-. .- -... .-.. . / - .-. ..- - .... ... love fool",
                      "followers_count": 11700,
                      "following_count": 1176,
                      "name": "paranoidream ♡︎",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2037953175379222528/FqbPgfwb_normal.jpg",
                      "tweet_count": 120874,
                      "url": "https://twitter.com/paranoidream",
                      "user_id": "229370002",
                      "username": "paranoidream",
                      "verified": true
                    },
                    {
                      "created_at": "2012-03-10 14:34:21",
                      "description": "Professor researching why we age & how to reverse it. Author & host of Lifespan. Mission: Extend healthy life for all. Views are entirely his own. @joinlifespan",
                      "followers_count": 586117,
                      "following_count": 1149,
                      "name": "David Sinclair",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1742602125526351872/nEvgp9ac_normal.jpg",
                      "tweet_count": 9985,
                      "url": "https://twitter.com/davidasinclair",
                      "user_id": "520445177",
                      "username": "davidasinclair",
                      "verified": true
                    },
                    {
                      "created_at": "2009-04-07 21:15:44",
                      "description": "Husband, Father, Mets Fan",
                      "followers_count": 321397,
                      "following_count": 2970,
                      "name": "Jared Kushner",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1554293796438941697/FjT4jVh1_normal.jpg",
                      "tweet_count": 142,
                      "url": "https://twitter.com/jaredkushner",
                      "user_id": "29547260",
                      "username": "jaredkushner",
                      "verified": true
                    },
                    {
                      "created_at": "2014-11-14 17:31:05",
                      "description": "",
                      "followers_count": 35286,
                      "following_count": 90,
                      "name": "Sam Zeloof",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1883270149358460928/4f7dS6e3_normal.jpg",
                      "tweet_count": 2116,
                      "url": "https://twitter.com/szeloof",
                      "user_id": "2876717116",
                      "username": "szeloof",
                      "verified": true
                    },
                    {
                      "created_at": "2014-06-21 16:13:55",
                      "description": "Entertainment, politics, culture.",
                      "followers_count": 32243,
                      "following_count": 1750,
                      "name": "Huff",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1799295396918722560/x1zk7sgm_normal.jpg",
                      "tweet_count": 25935,
                      "url": "https://twitter.com/Huff4Congress",
                      "user_id": "2580684608",
                      "username": "Huff4Congress",
                      "verified": true
                    },
                    {
                      "created_at": "2008-05-02 13:03:21",
                      "description": "Official X account of U.S. Citizenship and Immigration Services. \nApply to be a Homeland Defender NOW: https://t.co/ataEwyi3UT",
                      "followers_count": 554104,
                      "following_count": 331,
                      "name": "USCIS",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1882164862987489280/kDwtH0hc_normal.png",
                      "tweet_count": 22091,
                      "url": "https://twitter.com/USCIS",
                      "user_id": "14625398",
                      "username": "USCIS",
                      "verified": true
                    },
                    {
                      "created_at": "2021-09-15 19:10:57",
                      "description": "The Criminal Division develops, enforces & supervises the application of federal criminal laws. Official DOJ acct.Privacy Policy: https://t.co/ZXuVh5MOTM",
                      "followers_count": 49042,
                      "following_count": 2,
                      "name": "Criminal Division",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1438222556054626307/DJ-UjnIb_normal.jpg",
                      "tweet_count": 2123,
                      "url": "https://twitter.com/DOJCrimDiv",
                      "user_id": "1438217502413271042",
                      "username": "DOJCrimDiv",
                      "verified": true
                    },
                    {
                      "created_at": "2021-11-29 21:27:58",
                      "description": "A classical foundry in Paris, on its way to building a new Rome.",
                      "followers_count": 56912,
                      "following_count": 252,
                      "name": "Atelier Missor",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1999657115611271170/TmZlede9_normal.jpg",
                      "tweet_count": 329,
                      "url": "https://twitter.com/AtelierMissor_",
                      "user_id": "1465432261436788740",
                      "username": "AtelierMissor_",
                      "verified": true
                    },
                    {
                      "created_at": "2014-08-20 19:25:47",
                      "description": "Dad, Husband, Army Lieutenant Colonel, Former U.S. Congressman, 17th EPA Administrator @EPALeeZeldin.",
                      "followers_count": 898245,
                      "following_count": 2380,
                      "name": "Lee Zeldin",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1611795498024714240/noeH2mQ3_normal.jpg",
                      "tweet_count": 8041,
                      "url": "https://twitter.com/LeeMZeldin",
                      "user_id": "2750127259",
                      "username": "LeeMZeldin",
                      "verified": true
                    },
                    {
                      "created_at": "2024-06-05 00:46:23",
                      "description": "MEME ACCOUNT ✉️: official.contact@example.com https://t.co/cvmIGvPIuK",
                      "followers_count": 181061,
                      "following_count": 966,
                      "name": "PsyopAnime",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1985081102663389184/2WnkMtpz_normal.jpg",
                      "tweet_count": 2224,
                      "url": "https://twitter.com/PsyopAnime",
                      "user_id": "1798154287672864769",
                      "username": "PsyopAnime",
                      "verified": true
                    }
                  ],
                  "pages": 1,
                  "username": "elonmusk"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/user/verified-followers": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterVerifiedFollowers",
        "summary": "Twitter Verified Followers",
        "description": "Get the verified (blue checkmark) followers of a specific Twitter/X user. Only returns followers who have a verified account. Returns profile details for each verified follower. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-user-verified-followers"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Twitter username without the @ symbol (max 50 characters). A leading @ is accepted and stripped.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "elonmusk"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterVerifiedFollowersResponse"
                },
                "example": {
                  "count": 20,
                  "pages": 1,
                  "username": "elonmusk",
                  "verified_followers": [
                    {
                      "created_at": "2021-06-18 10:18:20",
                      "description": "",
                      "followers_count": 4,
                      "following_count": 155,
                      "name": "Luka",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 0,
                      "url": "https://twitter.com/Lukajapar",
                      "user_id": "1405832190282407937",
                      "username": "Lukajapar",
                      "verified": true
                    },
                    {
                      "created_at": "2014-10-19 11:35:10",
                      "description": "$DOG Lover",
                      "followers_count": 145,
                      "following_count": 427,
                      "name": "$DOGMI",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1781445356254859264/fLj85WkA_normal.jpg",
                      "tweet_count": 1012,
                      "url": "https://twitter.com/0xNGMI2022",
                      "user_id": "2864741388",
                      "username": "0xNGMI2022",
                      "verified": true
                    },
                    {
                      "created_at": "2007-04-28 00:32:54",
                      "description": "Design Estimator at Illuminated Integration",
                      "followers_count": 641,
                      "following_count": 620,
                      "name": "John Fones",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2021806950183239680/rLhgArwC_normal.jpg",
                      "tweet_count": 3696,
                      "url": "https://twitter.com/JohnFones",
                      "user_id": "5571292",
                      "username": "JohnFones",
                      "verified": true
                    },
                    {
                      "created_at": "2025-12-23 13:31:14",
                      "description": "",
                      "followers_count": 335,
                      "following_count": 148,
                      "name": "Tim Douglass",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2003458377557639171/OpHmAdMm_normal.jpg",
                      "tweet_count": 557,
                      "url": "https://twitter.com/DouglassTi8093",
                      "user_id": "2003458192064544774",
                      "username": "DouglassTi8093",
                      "verified": true
                    },
                    {
                      "created_at": "2026-03-17 09:53:57",
                      "description": "Music",
                      "followers_count": 29,
                      "following_count": 518,
                      "name": "David Lowe II",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040534624548581376/eZwXJyG1_normal.jpg",
                      "tweet_count": 33,
                      "url": "https://twitter.com/DavidLoweII",
                      "user_id": "2033844151289044992",
                      "username": "DavidLoweII",
                      "verified": true
                    },
                    {
                      "created_at": "2010-10-07 02:23:49",
                      "description": "Kentucky, Cincinnati🇺🇸Truckee, CA",
                      "followers_count": 191,
                      "following_count": 627,
                      "name": "Matt Kresnak",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1788970161040707584/DuItveBu_normal.jpg",
                      "tweet_count": 128,
                      "url": "https://twitter.com/grvy_krez",
                      "user_id": "199522102",
                      "username": "grvy_krez",
                      "verified": true
                    },
                    {
                      "created_at": "2012-12-31 10:10:45",
                      "description": "♥︎•💍•♥︎",
                      "followers_count": 57,
                      "following_count": 75,
                      "name": "ٰ",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1334118135641894913/mte5xzkv_normal.jpg",
                      "tweet_count": 32468,
                      "url": "https://twitter.com/aishaomairr",
                      "user_id": "1050011366",
                      "username": "aishaomairr",
                      "verified": true
                    },
                    {
                      "created_at": "2026-04-04 09:50:35",
                      "description": "Sport lover | Creator | Trends | Conversations\nBuilding a strong community.",
                      "followers_count": 6,
                      "following_count": 15,
                      "name": "Shàngdì shì wěidà de",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040382035995275264/ccmQux_p_normal.jpg",
                      "tweet_count": 9,
                      "url": "https://twitter.com/itsmmanuel",
                      "user_id": "2040366347972956160",
                      "username": "itsmmanuel",
                      "verified": true
                    },
                    {
                      "created_at": "2015-06-19 19:37:38",
                      "description": "Deus, Patria, Familia\nBolsonaro.",
                      "followers_count": 70,
                      "following_count": 203,
                      "name": "Bolsonaro Brother",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040542509332320256/VUIDstot_normal.jpg",
                      "tweet_count": 12285,
                      "url": "https://twitter.com/fuckergsn",
                      "user_id": "3335399399",
                      "username": "fuckergsn",
                      "verified": true
                    },
                    {
                      "created_at": "2022-02-28 08:58:25",
                      "description": "News updates🗞,Entertainment, Advert, Cruise blog📰, Celebrity gist, sports updates ⚽️,Education consult📚 YBNL,30bg UPDATES!!! #Turn on post notification #MUFC",
                      "followers_count": 5499,
                      "following_count": 4884,
                      "name": "247_updates_tv",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1896985372887764992/2NxX4tu3_normal.jpg",
                      "tweet_count": 7366,
                      "url": "https://twitter.com/247_updates_tv",
                      "user_id": "1498220955432361987",
                      "username": "247_updates_tv",
                      "verified": true
                    },
                    {
                      "created_at": "2010-07-11 03:20:11",
                      "description": "Isaiah 60:22 ✞ | Iowa Native | Seattle ✈️ LA ✈️ Austin",
                      "followers_count": 267,
                      "following_count": 64,
                      "name": "Will Sayasenh",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2039876930691117056/L6z7D8Cy_normal.jpg",
                      "tweet_count": 1582,
                      "url": "https://twitter.com/willsayasenh",
                      "user_id": "165273731",
                      "username": "willsayasenh",
                      "verified": true
                    },
                    {
                      "created_at": "2026-01-20 22:11:35",
                      "description": "",
                      "followers_count": 1,
                      "following_count": 8,
                      "name": "Gary",
                      "profile_image_url": "https://abs.twimg.com/sticky/default_profile_images/default_profile_normal.png",
                      "tweet_count": 2,
                      "url": "https://twitter.com/Garyallen2025",
                      "user_id": "2013736077077643264",
                      "username": "Garyallen2025",
                      "verified": true
                    },
                    {
                      "created_at": "2024-06-12 20:51:58",
                      "description": "🧠",
                      "followers_count": 6,
                      "following_count": 213,
                      "name": "TheBrainAir $DARK",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1858498018820886529/8QYeCIbp_normal.jpg",
                      "tweet_count": 124,
                      "url": "https://twitter.com/TheBrainA1r",
                      "user_id": "1800994442096078848",
                      "username": "TheBrainA1r",
                      "verified": true
                    },
                    {
                      "created_at": "2009-12-04 21:33:13",
                      "description": "",
                      "followers_count": 20,
                      "following_count": 154,
                      "name": "мα. αℓєχαи∂яα",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2040531005992566784/J_-A6VsT_normal.jpg",
                      "tweet_count": 62,
                      "url": "https://twitter.com/marialexart22",
                      "user_id": "94648636",
                      "username": "marialexart22",
                      "verified": true
                    },
                    {
                      "created_at": "2015-09-11 23:59:31",
                      "description": "just a dude",
                      "followers_count": 490,
                      "following_count": 138,
                      "name": "Marcus",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1825268074192248832/hhPksnCv_normal.jpg",
                      "tweet_count": 9030,
                      "url": "https://twitter.com/_Ohmie",
                      "user_id": "3625434135",
                      "username": "_Ohmie",
                      "verified": true
                    },
                    {
                      "created_at": "2024-06-23 21:16:21",
                      "description": "née a Kinshasa",
                      "followers_count": 128,
                      "following_count": 452,
                      "name": "Pedro",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2039414559669178368/1TSAUn4k_normal.jpg",
                      "tweet_count": 847,
                      "url": "https://twitter.com/Pedro_tombe",
                      "user_id": "1804986797941800960",
                      "username": "Pedro_tombe",
                      "verified": true
                    },
                    {
                      "created_at": "2026-04-01 00:30:06",
                      "description": "Founder of https://t.co/gPkVn1Slbf Helping People Find Customers at exactly the Right Time",
                      "followers_count": 2,
                      "following_count": 46,
                      "name": "Bob Lee",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2039138931439005696/S30NDzgu_normal.jpg",
                      "tweet_count": 73,
                      "url": "https://twitter.com/SourceLeadercom",
                      "user_id": "2039138176397111296",
                      "username": "SourceLeadercom",
                      "verified": true
                    },
                    {
                      "created_at": "2025-02-06 23:15:31",
                      "description": "History buff\nChronology Nerd\nGrill Master",
                      "followers_count": 126,
                      "following_count": 247,
                      "name": "Maximus Pupienus",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/1887643495516590080/X5nhYaN9_normal.jpg",
                      "tweet_count": 6667,
                      "url": "https://twitter.com/PupienusMaxima",
                      "user_id": "1887641152486318082",
                      "username": "PupienusMaxima",
                      "verified": true
                    },
                    {
                      "created_at": "2020-06-30 13:32:55",
                      "description": "Blockchain Maxi & Community Steward at @0xMantle | Cooking Sustainable Yield",
                      "followers_count": 327,
                      "following_count": 1674,
                      "name": "Luisma 🍳",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2037393413365215232/Wasd7GH4_normal.jpg",
                      "tweet_count": 1996,
                      "url": "https://twitter.com/0xLuisma",
                      "user_id": "1277958267763937280",
                      "username": "0xLuisma",
                      "verified": true
                    },
                    {
                      "created_at": "2023-02-21 16:33:04",
                      "description": "Pas pour tout le monde 👁️\n📍Paris - LA",
                      "followers_count": 1124,
                      "following_count": 965,
                      "name": "Tiana",
                      "profile_image_url": "https://pbs.twimg.com/profile_images/2036182450653765632/lFsIbmTY_normal.jpg",
                      "tweet_count": 46,
                      "url": "https://twitter.com/Tianaaowo",
                      "user_id": "1628070159918268416",
                      "username": "Tianaaowo",
                      "verified": true
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/user/replies": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterUserReplies",
        "summary": "Twitter User Replies",
        "description": "Get replies posted by a specific Twitter/X user. Returns the content of each reply along with engagement metrics, language, hashtags, and user mentions. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-user-replies"
        },
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "description": "Twitter username without the @ symbol (max 50 characters). A leading @ is accepted and stripped.",
            "schema": {
              "type": "string",
              "maxLength": 50
            },
            "example": "elonmusk"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each reply. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any reply that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterUserRepliesResponse"
                },
                "example": {
                  "count": 24,
                  "pages": 1,
                  "replies": [
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:33:51",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 36,
                      "snippet": "RT @xenocosmography: Incredible that any Briton could not want this guy to be the next prime minister. https://t.co/omBJw8m1iM",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040543394741838265",
                      "user_mentions": [
                        "xenocosmography"
                      ],
                      "views": 3
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 21:33:25",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 51,
                      "snippet": "RT @MarioNawfal: Grok Imagine is embarrassingly fun.\n\nCreative mode? Activated.\n\nYou blink. There’s a full anime scene staring back.\n\n@Grok…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040543284117094824",
                      "user_mentions": [
                        "MarioNawfal",
                        "grok"
                      ],
                      "views": 1
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 52,
                      "date": "2026-04-04 21:28:02",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1676,
                      "quotes": 6,
                      "replies": 447,
                      "retweets": 218,
                      "snippet": "Absolutely",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040541929235202390",
                      "user_mentions": [],
                      "views": 200295
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 227,
                      "date": "2026-04-04 21:26:43",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1690,
                      "quotes": 8,
                      "replies": 335,
                      "retweets": 241,
                      "snippet": "Tragically &amp; hilariously true",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040541601022570748",
                      "user_mentions": [],
                      "views": 207953
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 227,
                      "date": "2026-04-04 21:00:57",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 6756,
                      "quotes": 84,
                      "replies": 1776,
                      "retweets": 589,
                      "snippet": "Hadamard thought in image space",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040535115475059040",
                      "user_mentions": [],
                      "views": 2339497
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 81,
                      "date": "2026-04-04 21:03:04",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 730,
                      "quotes": 20,
                      "replies": 280,
                      "retweets": 122,
                      "snippet": "Grok groks\nhttps://t.co/KjsfiBdRGV",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040535647866474815",
                      "user_mentions": [],
                      "views": 175057
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 2681,
                      "date": "2026-04-04 18:01:36",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 85043,
                      "quotes": 507,
                      "replies": 6130,
                      "retweets": 6640,
                      "snippet": "My idea of a good time is working with amazing engineers to create incredible technology 🤩\n\nThe Tesla chip research fab will have all the machines needed to do logic, memory, packing &amp; masks in one building for a lightning fast development cycle. Heaven 💫",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040489979399536698",
                      "user_mentions": [],
                      "views": 10496972
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 17:56:18",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 7171,
                      "snippet": "RT @america: Dr. Oz: “We have shut down just in the last ten weeks 221 hospices.”\n\nBret: “Wait, over 220 in the state of California?”\n\nDr.…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040488645019447497",
                      "user_mentions": [
                        "america"
                      ],
                      "views": 184
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 443,
                      "date": "2026-04-04 17:55:52",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 15847,
                      "quotes": 49,
                      "replies": 1224,
                      "retweets": 1569,
                      "snippet": "The Tesla chip design reviews are so fun!",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040488538773537043",
                      "user_mentions": [],
                      "views": 9046267
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 324,
                      "date": "2026-04-04 09:31:45",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 15157,
                      "quotes": 144,
                      "replies": 1234,
                      "retweets": 1208,
                      "snippet": "@deaflibertarian I am confident that Neuralink will restore hearing one day, just as we will restore vision with our Blindsight implant",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040361672238604645",
                      "user_mentions": [
                        "deaflibertarian"
                      ],
                      "views": 377833
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:29:51",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1075,
                      "snippet": "RT @deaflibertarian: Elon Musk and his staff at Space X truly care DO about deaf kids.\n\nMore details to come!\n\nBut basically, I will love h…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040361193534300169",
                      "user_mentions": [
                        "deaflibertarian"
                      ],
                      "views": 283
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:29:12",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 656,
                      "snippet": "RT @Scobleizer: I was on a Tesla audio space here on X today and got in an argument with a Tesla skeptic.\n\nHe says how smooth your AI is at…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040361032938602816",
                      "user_mentions": [
                        "Scobleizer"
                      ],
                      "views": 209
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:28:57",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 718,
                      "snippet": "RT @art_muse: Grok Imagine Beauty ❣️ https://t.co/vvoBFDue1s",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040360968426049642",
                      "user_mentions": [
                        "art_muse"
                      ],
                      "views": 265
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 910,
                      "date": "2026-04-04 09:28:03",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 22958,
                      "quotes": 146,
                      "replies": 3176,
                      "retweets": 3193,
                      "snippet": "Try Grok",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040360740167815570",
                      "user_mentions": [],
                      "views": 7884738
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:12:38",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 750,
                      "snippet": "RT @dvorahfr: Quality mode of Grok Imagine is insane https://t.co/W35vhKAYlj",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040356860365332702",
                      "user_mentions": [
                        "dvorahfr"
                      ],
                      "views": 270
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 0,
                      "date": "2026-04-04 09:11:55",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 0,
                      "quotes": 0,
                      "replies": 0,
                      "retweets": 1799,
                      "snippet": "RT @ArthurMacwaters: Empathy is good\n\nBut fraudsters and embezzlers have hijacked our empathy \n\n$81k/yr per homeless person \n$52k/yr per ca…",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040356683378196967",
                      "user_mentions": [
                        "ArthurMacwaters"
                      ],
                      "views": 202
                    },
                    {
                      "author": "TAmTrib",
                      "author_followers": 65062,
                      "author_verified": true,
                      "bookmarks": 558,
                      "date": "2026-04-02 14:31:15",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 6832,
                      "quotes": 47,
                      "replies": 162,
                      "retweets": 1099,
                      "snippet": "Jury trials don’t work because they are no longer trials of our justice-minded peers, but rather ethnic headcount’s that are determined by the in group preferences of the jurors\n\nParticularly, black and Hispanic jurors show a notable tendency to side with their ethnic group",
                      "source": "Twitter (X)",
                      "title": "@TAmTrib on X",
                      "url": "https://twitter.com/TAmTrib/status/2039712270008066516",
                      "user_mentions": [],
                      "views": 933650
                    },
                    {
                      "author": "xenocosmography",
                      "author_followers": 60644,
                      "author_verified": true,
                      "bookmarks": 119,
                      "date": "2026-04-03 13:11:21",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 1764,
                      "quotes": 9,
                      "replies": 37,
                      "retweets": 119,
                      "snippet": "@TAmTrib This is probably the deepest and most troubling indicator of Anglo civilizational collapse. Jury trials by tacitly trusted peers is foundational to it. As you say, that has been massively eroded by ethnic chaos. Rule of law dies with it. That leaves only war.",
                      "source": "Twitter (X)",
                      "title": "@xenocosmography on X",
                      "url": "https://twitter.com/xenocosmography/status/2040054550380564824",
                      "user_mentions": [
                        "TAmTrib"
                      ],
                      "views": 31369
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 40,
                      "date": "2026-04-04 08:45:00",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 710,
                      "quotes": 11,
                      "replies": 114,
                      "retweets": 59,
                      "snippet": "@xenocosmography @TAmTrib It may come to that",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040349907794755958",
                      "user_mentions": [
                        "xenocosmography",
                        "TAmTrib"
                      ],
                      "views": 16782
                    },
                    {
                      "author": "SawyerMerritt",
                      "author_followers": 1055914,
                      "author_verified": true,
                      "bookmarks": 518,
                      "date": "2026-04-04 00:36:06",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 6796,
                      "quotes": 42,
                      "replies": 161,
                      "retweets": 467,
                      "snippet": "David Friedberg today on @Tesla:\n\n\"I think we're going to look back one day and have this laughing observation that Tesla started out as an electric car company, ended up becoming an autonomous car company, and the autonomous competency lead to the robotics revolution. Even if https://t.co/mmCxGSstBY",
                      "source": "Twitter (X)",
                      "title": "@SawyerMerritt on X",
                      "url": "https://twitter.com/SawyerMerritt/status/2040226870961045587",
                      "user_mentions": [
                        "Tesla"
                      ],
                      "views": 400198
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 106,
                      "date": "2026-04-04 08:04:57",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 4942,
                      "quotes": 26,
                      "replies": 391,
                      "retweets": 245,
                      "snippet": "@SawyerMerritt @Tesla Might actually happen",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040339829574250942",
                      "user_mentions": [
                        "SawyerMerritt",
                        "Tesla"
                      ],
                      "views": 231055
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 28,
                      "date": "2026-04-04 04:43:13",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "qme",
                      "likes": 1419,
                      "quotes": 7,
                      "replies": 168,
                      "retweets": 77,
                      "snippet": "@Tesla_Optimus @SawyerMerritt @Tesla 😂",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040289059822801123",
                      "user_mentions": [
                        "Tesla_Optimus",
                        "SawyerMerritt",
                        "Tesla"
                      ],
                      "views": 46805
                    },
                    {
                      "author": "TukiFromKL",
                      "author_followers": 113887,
                      "author_verified": true,
                      "bookmarks": 4644,
                      "date": "2026-04-03 22:17:25",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 54062,
                      "quotes": 648,
                      "replies": 1132,
                      "retweets": 12359,
                      "snippet": "🚨 do you understand what New York City just accidentally admitted..\n\nNYC spent $81,705 per homeless person last year.. the median American household earned $81,228.. the government spent MORE to keep someone homeless than most families earned to keep themselves housed..\n\nthat https://t.co/6JPzn3yx3O",
                      "source": "Twitter (X)",
                      "title": "@TukiFromKL on X",
                      "url": "https://twitter.com/TukiFromKL/status/2040191971407368242",
                      "user_mentions": [],
                      "views": 2484228
                    },
                    {
                      "author": "elonmusk",
                      "author_followers": 237808828,
                      "author_verified": true,
                      "bookmarks": 367,
                      "date": "2026-04-04 04:42:39",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": false,
                      "is_reply": true,
                      "lang": "en",
                      "likes": 48299,
                      "quotes": 119,
                      "replies": 1348,
                      "retweets": 4039,
                      "snippet": "@TukiFromKL Most of the money doesn’t even go to help homeless, it just funds NGOs",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040288918327992329",
                      "user_mentions": [
                        "TukiFromKL"
                      ],
                      "views": 1251139
                    }
                  ],
                  "username": "elonmusk"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the user does not exist or could not be resolved (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/tweet": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterTweetDetails",
        "summary": "Twitter Tweet Details",
        "description": "Get detailed information for a single tweet by its ID. Returns the full tweet content, engagement metrics (likes, retweets, replies, quotes, bookmarks, views), author info, language, hashtags, and user mentions.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-tweet"
        },
        "parameters": [
          {
            "name": "tweet_id",
            "in": "query",
            "required": true,
            "description": "Numeric tweet ID",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "example": "1631781099415257088"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to the tweet. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). If the tweet cannot be scored, `sentiment` is null.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterTweetDetailsResponse"
                },
                "example": {
                  "tweet": {
                    "author": "el_frizensrlq",
                    "author_followers": 2521,
                    "author_verified": true,
                    "bookmarks": 0,
                    "date": "2026-04-04 21:32:24",
                    "domain": "x.com",
                    "hashtags": [],
                    "is_quote": false,
                    "is_reply": true,
                    "lang": "en",
                    "likes": 0,
                    "quotes": 0,
                    "replies": 0,
                    "retweets": 0,
                    "snippet": "@elonmusk Technology is advancing every day; soon the world will be dominated by artificial intelligence and more.",
                    "source": "Twitter (X)",
                    "title": "@el_frizensrlq on X",
                    "url": "https://twitter.com/el_frizensrlq/status/2040543028255834313",
                    "user_mentions": [
                      "elonmusk"
                    ],
                    "views": 7
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Not found: the tweet does not exist or could not be parsed (code: not_found).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/tweet/retweets": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterTweetRetweets",
        "summary": "Twitter Tweet Retweets",
        "description": "Get the users who retweeted a specific tweet. Returns profile details for each user who retweeted including username, display name, bio, follower/following counts, tweet count, verification status, and profile image. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-tweet-retweets"
        },
        "parameters": [
          {
            "name": "tweet_id",
            "in": "query",
            "required": true,
            "description": "Numeric tweet ID",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "example": "1631781099415257088"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterTweetRetweetsResponse"
                },
                "example": {
                  "count": 0,
                  "pages": 1,
                  "retweets": [],
                  "tweet_id": "2040543028255834313"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/tweet/quotes": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterTweetQuotes",
        "summary": "Twitter Quote Tweets",
        "description": "Get the quote tweets for a specific tweet. Returns the full content and engagement metrics for each quote tweet along with author info, language, hashtags, and user mentions. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-tweet-quotes"
        },
        "parameters": [
          {
            "name": "tweet_id",
            "in": "query",
            "required": true,
            "description": "Numeric tweet ID",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "example": "1631781099415257088"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each quote tweet. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any quote tweet that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterTweetQuotesResponse"
                },
                "example": {
                  "count": 0,
                  "pages": 1,
                  "quotes": [],
                  "tweet_id": "2040543028255834313"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/tweet/comments": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterTweetComments",
        "summary": "Twitter Tweet Comments",
        "description": "Get the comments (replies) on a specific tweet. Returns the full content and engagement metrics for each reply along with author info, language, hashtags, and user mentions. Supports pagination.\n\n**Price:** $0.006 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-tweet-comments"
        },
        "parameters": [
          {
            "name": "tweet_id",
            "in": "query",
            "required": true,
            "description": "Numeric tweet ID",
            "schema": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "example": "1631781099415257088"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge into one response (1-20, billed per page). Fetching stops early when there are no more results.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each comment. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any comment that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterTweetCommentsResponse"
                },
                "example": {
                  "comments": [
                    {
                      "author": "elonmusk",
                      "author_followers": 237808830,
                      "author_verified": true,
                      "bookmarks": 55,
                      "date": "2026-04-04 21:28:02",
                      "domain": "x.com",
                      "hashtags": [],
                      "is_quote": true,
                      "is_reply": false,
                      "lang": "en",
                      "likes": 1699,
                      "quotes": 7,
                      "replies": 455,
                      "retweets": 221,
                      "snippet": "Absolutely",
                      "source": "Twitter (X)",
                      "title": "@elonmusk on X",
                      "url": "https://twitter.com/elonmusk/status/2040541929235202390",
                      "user_mentions": [],
                      "views": 200295
                    }
                  ],
                  "count": 1,
                  "pages": 1,
                  "tweet_id": "2040543028255834313"
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/twitter/trends": {
      "get": {
        "tags": [
          "Twitter"
        ],
        "operationId": "twitterTrends",
        "summary": "Twitter Trending Topics",
        "description": "Get the current trending topics for a specific location on Twitter/X. Uses WOEID (Where On Earth ID) to identify the location. Common WOEIDs: 1 (Worldwide), 23424977 (United States), 23424975 (United Kingdom), 23424775 (Canada), 23424748 (Australia), 23424848 (India), 23424856 (Japan), 23424829 (Germany), 23424819 (France), 23424768 (Brazil), 2459115 (New York), 2442047 (Los Angeles), 44418 (London), 1118370 (Tokyo). Returns trend names, search queries, search URLs, and tweet volumes where available.\n\n**Price:** $0.006 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/twitter-trends"
        },
        "parameters": [
          {
            "name": "woeid",
            "in": "query",
            "required": true,
            "description": "Where On Earth ID for the location. Use 1 for Worldwide.",
            "schema": {
              "type": "integer",
              "minimum": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TwitterTrendsResponse"
                },
                "example": {
                  "as_of": "2026-04-04T21:34:59Z",
                  "count": 50,
                  "location": "Worldwide",
                  "trends": [
                    {
                      "name": "Arsenal",
                      "query": "Arsenal",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Arsenal"
                    },
                    {
                      "name": "#خلقنا_الله_عزيزين",
                      "query": "%23%D8%AE%D9%84%D9%82%D9%86%D8%A7_%D8%A7%D9%84%D9%84%D9%87_%D8%B9%D8%B2%D9%8A%D8%B2%D9%8A%D9%86",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%23%D8%AE%D9%84%D9%82%D9%86%D8%A7_%D8%A7%D9%84%D9%84%D9%87_%D8%B9%D8%B2%D9%8A%D8%B2%D9%8A%D9%86"
                    },
                    {
                      "name": "Arteta",
                      "query": "Arteta",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Arteta"
                    },
                    {
                      "name": "#الهلال_التعاون",
                      "query": "%23%D8%A7%D9%84%D9%87%D9%84%D8%A7%D9%84_%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%88%D9%86",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%23%D8%A7%D9%84%D9%87%D9%84%D8%A7%D9%84_%D8%A7%D9%84%D8%AA%D8%B9%D8%A7%D9%88%D9%86"
                    },
                    {
                      "name": "#عطور_فهد_الرويس",
                      "query": "%23%D8%B9%D8%B7%D9%88%D8%B1_%D9%81%D9%87%D8%AF_%D8%A7%D9%84%D8%B1%D9%88%D9%8A%D8%B3",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%23%D8%B9%D8%B7%D9%88%D8%B1_%D9%81%D9%87%D8%AF_%D8%A7%D9%84%D8%B1%D9%88%D9%8A%D8%B3"
                    },
                    {
                      "name": "#TSvGS",
                      "query": "%23TSvGS",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%23TSvGS"
                    },
                    {
                      "name": "Kepa",
                      "query": "Kepa",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Kepa"
                    },
                    {
                      "name": "Cancelo",
                      "query": "Cancelo",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Cancelo"
                    },
                    {
                      "name": "#كاريزما_مستر_سايح",
                      "query": "%23%D9%83%D8%A7%D8%B1%D9%8A%D8%B2%D9%85%D8%A7_%D9%85%D8%B3%D8%AA%D8%B1_%D8%B3%D8%A7%D9%8A%D8%AD",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%23%D9%83%D8%A7%D8%B1%D9%8A%D8%B2%D9%85%D8%A7_%D9%85%D8%B3%D8%AA%D8%B1_%D8%B3%D8%A7%D9%8A%D8%AD"
                    },
                    {
                      "name": "Ben White",
                      "query": "%22Ben+White%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Ben+White%22"
                    },
                    {
                      "name": "FA Cup",
                      "query": "%22FA+Cup%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22FA+Cup%22"
                    },
                    {
                      "name": "Okan",
                      "query": "Okan",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Okan"
                    },
                    {
                      "name": "İcardi",
                      "query": "%C4%B0cardi",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%C4%B0cardi"
                    },
                    {
                      "name": "Quadruple",
                      "query": "Quadruple",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Quadruple"
                    },
                    {
                      "name": "Barcelona",
                      "query": "Barcelona",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Barcelona"
                    },
                    {
                      "name": "Galatasaray",
                      "query": "Galatasaray",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Galatasaray"
                    },
                    {
                      "name": "Gerard Martin",
                      "query": "%22Gerard+Martin%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Gerard+Martin%22"
                    },
                    {
                      "name": "Ferran",
                      "query": "Ferran",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Ferran"
                    },
                    {
                      "name": "Walter Reed",
                      "query": "%22Walter+Reed%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Walter+Reed%22"
                    },
                    {
                      "name": "Dowman",
                      "query": "Dowman",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Dowman"
                    },
                    {
                      "name": "Gabriel Jesus",
                      "query": "%22Gabriel+Jesus%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Gabriel+Jesus%22"
                    },
                    {
                      "name": "DUANG WITH YOU EP10",
                      "query": "%22DUANG+WITH+YOU+EP10%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22DUANG+WITH+YOU+EP10%22"
                    },
                    {
                      "name": "Trabzon",
                      "query": "Trabzon",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Trabzon"
                    },
                    {
                      "name": "Rashford",
                      "query": "Rashford",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Rashford"
                    },
                    {
                      "name": "Martinelli",
                      "query": "Martinelli",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Martinelli"
                    },
                    {
                      "name": "Havertz",
                      "query": "Havertz",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Havertz"
                    },
                    {
                      "name": "Lamine",
                      "query": "Lamine",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Lamine"
                    },
                    {
                      "name": "Simeone",
                      "query": "Simeone",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Simeone"
                    },
                    {
                      "name": "Champions",
                      "query": "Champions",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Champions"
                    },
                    {
                      "name": "Valverde",
                      "query": "Valverde",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Valverde"
                    },
                    {
                      "name": "Maravilla",
                      "query": "Maravilla",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Maravilla"
                    },
                    {
                      "name": "Easter",
                      "query": "Easter",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Easter"
                    },
                    {
                      "name": "Odegaard",
                      "query": "Odegaard",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Odegaard"
                    },
                    {
                      "name": "Negreira",
                      "query": "Negreira",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Negreira"
                    },
                    {
                      "name": "Nico González",
                      "query": "%22Nico+Gonz%C3%A1lez%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Nico+Gonz%C3%A1lez%22"
                    },
                    {
                      "name": "Osimhen",
                      "query": "Osimhen",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Osimhen"
                    },
                    {
                      "name": "Shea Charles",
                      "query": "%22Shea+Charles%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Shea+Charles%22"
                    },
                    {
                      "name": "Göztepe",
                      "query": "G%C3%B6ztepe",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=G%C3%B6ztepe"
                    },
                    {
                      "name": "La Liga",
                      "query": "%22La+Liga%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22La+Liga%22"
                    },
                    {
                      "name": "Mallorca",
                      "query": "Mallorca",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Mallorca"
                    },
                    {
                      "name": "Cihan Aydın",
                      "query": "%22Cihan+Ayd%C4%B1n%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Cihan+Ayd%C4%B1n%22"
                    },
                    {
                      "name": "Almada",
                      "query": "Almada",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Almada"
                    },
                    {
                      "name": "Bernal",
                      "query": "Bernal",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Bernal"
                    },
                    {
                      "name": "JYPE LET STRAY KIDS REST",
                      "query": "%22JYPE+LET+STRAY+KIDS+REST%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22JYPE+LET+STRAY+KIDS+REST%22"
                    },
                    {
                      "name": "Wembley",
                      "query": "Wembley",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Wembley"
                    },
                    {
                      "name": "Bottlers FC",
                      "query": "%22Bottlers+FC%22",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%22Bottlers+FC%22"
                    },
                    {
                      "name": "二度目の人生",
                      "query": "%E4%BA%8C%E5%BA%A6%E7%9B%AE%E3%81%AE%E4%BA%BA%E7%94%9F",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%E4%BA%8C%E5%BA%A6%E7%9B%AE%E3%81%AE%E4%BA%BA%E7%94%9F"
                    },
                    {
                      "name": "百合の花",
                      "query": "%E7%99%BE%E5%90%88%E3%81%AE%E8%8A%B1",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%E7%99%BE%E5%90%88%E3%81%AE%E8%8A%B1"
                    },
                    {
                      "name": "Treble",
                      "query": "Treble",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=Treble"
                    },
                    {
                      "name": "上伊那ぼたん",
                      "query": "%E4%B8%8A%E4%BC%8A%E9%82%A3%E3%81%BC%E3%81%9F%E3%82%93",
                      "tweet_volume": null,
                      "url": "http://twitter.com/search?q=%E4%B8%8A%E4%BC%8A%E9%82%A3%E3%81%BC%E3%81%9F%E3%82%93"
                    }
                  ],
                  "woeid": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: a required parameter is missing or a value is invalid (code: missing_parameter or invalid_parameter).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: the API key is missing or invalid (code: missing_api_key or invalid_api_key).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded, or too many concurrent requests for this endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error (code: server_error).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving X (Twitter) data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable, or no trends data is available for the requested WOEID. A WOEID with no trends coverage returns this on every call - try a different WOEID rather than retrying.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/youtube/posts": {
      "get": {
        "tags": [
          "YouTube"
        ],
        "operationId": "searchYoutube",
        "summary": "Search YouTube Videos",
        "description": "Search for YouTube videos by keyword. Returns video title, URL, channel name, channel ID, video ID, publication date, description snippet, view count, video length, thumbnail, and a flag for live content. Supports filtering by upload date and fetching up to 20 pages in a single call. Set get_sentiment=true to add AI emotion analysis to each result.\n\n**Price:** $0.005 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/youtube-videos"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "tutorial"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge (1-20). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 2
          },
          {
            "name": "upload_date",
            "in": "query",
            "required": false,
            "description": "Filter by upload date",
            "schema": {
              "type": "string",
              "enum": [
                "last_hour",
                "today",
                "this_week",
                "this_month",
                "this_year"
              ]
            },
            "example": "this_week"
          },
          {
            "name": "get_sentiment",
            "in": "query",
            "required": false,
            "description": "Set to true to add AI emotion analysis to each post. Adds a `sentiment` object containing `emotions` (joy, trust, fear, surprise, sadness, disgust, anger and anticipation, each scored 0-100), `dominant_emotion`, `emotional_intensity` (0-10), and `polarity` (positive, negative or neutral). Any post that cannot be scored returns `sentiment: null`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchYoutubeResponse"
                },
                "example": {
                  "count": 16,
                  "pages": 1,
                  "posts": [
                    {
                      "author": "YouFact Tech",
                      "channel_id": "UCSWZxpzUTkriCZRe0Nl0UqA",
                      "date": "2026-02-03 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "We've gathered some truly wild gadgets, including a mirror that estimates your lifespan just by analyzing blood flow, a holographic ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/fuiJ-3CdU3Q/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAev9WRIrRFlpYFnrcJt1FV-UFF7A",
                      "title": "Coolest New Technologies of 2026",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=fuiJ-3CdU3Q",
                      "video_id": "fuiJ-3CdU3Q",
                      "video_length": "18:07",
                      "views": 301590
                    },
                    {
                      "author": "TechZone",
                      "channel_id": "UC6H07z6zAwbHRl4Lbl0GSsw",
                      "date": "2025-04-04 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "https://www.youtube.com/channel/UCMwqyIeElDirBZZwYmmeIYw ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/dxWb1Vd9aq8/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDKtEblR7Wiw30NG-_uy0p-LejuMw",
                      "title": "20 INVENTIONS THAT WILL CHANGE THE WORLD",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=dxWb1Vd9aq8",
                      "video_id": "dxWb1Vd9aq8",
                      "video_length": "20:10",
                      "views": 1370776
                    },
                    {
                      "author": "Core Insights",
                      "channel_id": "UCM8NnqS3-cqgUI1MLrZ8X4A",
                      "date": "2026-03-26 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "A company that started by selling smartphones, air fryers, and electric scooters just walked into the automotive world and ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/-zLQWH2B1Po/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA2rkwFfoa7XHOFWnnRDAAyQJIKGw",
                      "title": "China's INSANE Technology Just Replaced Aluminum! XIAOMI CHASSIS 2026",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=-zLQWH2B1Po",
                      "video_id": "-zLQWH2B1Po",
                      "video_length": "21:20",
                      "views": 421111
                    },
                    {
                      "author": "Fireship",
                      "channel_id": "UCsBjURrPoezykLs9EqgamOA",
                      "date": "2026-02-03 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Try Brilliant for free for 30 days - https://brilliant.org/fireship and get 20% off a premium annual subscription. From household ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/EKOU3JWDNLI/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBh1Bz8C6xH1WdzyjFe4MLR1Oo4hw",
                      "title": "The unhinged world of tech in 2026...",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=EKOU3JWDNLI",
                      "video_id": "EKOU3JWDNLI",
                      "video_length": "9:11",
                      "views": 1393174
                    },
                    {
                      "author": "AI Uncovered",
                      "channel_id": "UCUTF61UNExRdjmoK5mXwWfQ",
                      "date": "2025-08-07 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "WATCH PART 2 HERE: https://www.youtube.com/watch?v=f-FyMY1LMwI&t=133s In this video, we reveal the top 17 breakthrough ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/Otim2mDjsYM/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAYjWFWHlo558sRr3nl_E1dKsJbsA",
                      "title": "Top 17 New Technology Trends That Will Define 2026",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=Otim2mDjsYM",
                      "video_id": "Otim2mDjsYM",
                      "video_length": "12:10",
                      "views": 624850
                    },
                    {
                      "author": "Mrwhosetheboss",
                      "channel_id": "UCMiJRAwDNSNzuYeN2uWa0pA",
                      "date": "2025-11-05 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Might need to film a few cheapest tech videos to make up for this one Check out the Anker Nebula X1 Pro here and save $2000 ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/KflMqooMzF8/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA9DBVE1r9JosyII9YDC7mzyF2h3A",
                      "title": "I spent $273,000 on BILLIONAIRE Tech",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=KflMqooMzF8",
                      "video_id": "KflMqooMzF8",
                      "video_length": "27:09",
                      "views": 8162587
                    },
                    {
                      "author": "Mrwhosetheboss",
                      "channel_id": "UCMiJRAwDNSNzuYeN2uWa0pA",
                      "date": "2025-09-06 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Testing tech products that claim to cook for me, clean for me, make my bed for me - to work out how much effort they actually save.",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/lo4bA4p3MBQ/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA8vREO1cl1jIbbMFVwzEJ_06jxgA",
                      "title": "I bought the LAZIEST Tech ever.",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=lo4bA4p3MBQ",
                      "video_id": "lo4bA4p3MBQ",
                      "video_length": "21:08",
                      "views": 11730313
                    },
                    {
                      "author": "Technology Connections",
                      "channel_id": "UCy0tKL1T7wFoYcxCe0xjN6Q",
                      "date": "2026-02-03 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Let's learn and grow. New things are cool! Links 'n' stuff down below. Lots of links. First, the \"clean version.\" Please pass that ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/KtQ9nt2ZeGM/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBPX-JUJFCxvqTobvLJufpFi6yaLw",
                      "title": "You are being misled about renewable energy technology.",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=KtQ9nt2ZeGM",
                      "video_id": "KtQ9nt2ZeGM",
                      "video_length": "1:32:00",
                      "views": 3576161
                    },
                    {
                      "author": "TechLinked",
                      "channel_id": "UCeeFfhMcJa1kjtfZAGskOCA",
                      "date": "2026-04-02 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "We're all Born Private, and it should stay that way. Create a free account with Proton Mail - https://proton.me/techlinked NEWS ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/8SWKso_L7CM/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBt4TV79DL4jAWrYNIWPUzuVifbwg",
                      "title": "Tech is in Trouble",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=8SWKso_L7CM",
                      "video_id": "8SWKso_L7CM",
                      "video_length": "11:01",
                      "views": 330761
                    },
                    {
                      "author": "Living in China",
                      "channel_id": "UCzDE2LGSmJnw53WrZ7mM_Aw",
                      "date": "2026-03-21 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "China's NEW Foldable Phone Just Made Apple Look Outdated! See how Oppo is pushing boundaries with a new folding phone ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/c4sIXxRQe_c/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBXZITukmhszKq_YzMEZQ2dvolkKQ",
                      "title": "China's NEW iPhone KILLER... (Apple is finished)",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=c4sIXxRQe_c",
                      "video_id": "c4sIXxRQe_c",
                      "video_length": "5:51",
                      "views": 610025
                    },
                    {
                      "author": "Brick Technology",
                      "channel_id": "UCUuvZ0skL2WYZ3rhPMZbfdA",
                      "date": "2025-11-05 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Making LEGO cars that drive over bigger and bigger potholes — always at the same speed. Each car is built in 1:14 scale and ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/68LwytImuPs/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCBOp9UII5yi6AxaUxPWbuOoj-hHg",
                      "title": "Lego Car vs Growing Gap",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=68LwytImuPs",
                      "video_id": "68LwytImuPs",
                      "video_length": "9:21",
                      "views": 12750910
                    },
                    {
                      "author": "Primitive Technology",
                      "channel_id": "UCAL3JXZSzSm8AlZyD3nQdBA",
                      "date": "2025-12-05 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Grate furnace, wood fuel smelting experiment Subscribe: http://bit.ly/subPT | Never miss a video! Enable 'ALL' Notifications! Watch ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/eIBEK-_NMJc/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBg732T7vfZgHCvSvO-ANaIzuDXCw",
                      "title": "Primitive Technology: Grate furnace, wood fired smelting experiment",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=eIBEK-_NMJc",
                      "video_id": "eIBEK-_NMJc",
                      "video_length": "11:32",
                      "views": 2235867
                    },
                    {
                      "author": "Technology Gyan",
                      "channel_id": "UC1tVU8H153ZFO9eRsxdJlhA",
                      "date": "2026-04-02 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Realme 16 5G Unboxing & Full Test Aaj hum lekar aaye hain Realme 16 5G ka complete unboxing aur honest test! From ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/XUNKO_AqNy4/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBWWY3gSsKgTtffEsUIBqvvI6-H2g",
                      "title": "Realme 16 5G Unboxing & Test - India’s First Selfie Mirror Phone!",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=XUNKO_AqNy4",
                      "video_id": "XUNKO_AqNy4",
                      "video_length": "9:01",
                      "views": 374125
                    },
                    {
                      "author": "Prasadtechintelugu",
                      "channel_id": "UCb-xXZ7ltTvrh9C6DgB9H-Q",
                      "date": "2026-04-02 21:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Tech News 2142 || Brand's April Fool Pranks, iPhone 18 pro, Pixel 11 series, OnePlus Handheld Gaming, Claude AI, Blinkit ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/s2l1SwFPvAI/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBv_dVggtPWiAV2EBcE6ybor4PJ-A",
                      "title": "Tech News 2142 || April Fool Pranks, iPhone 18 pro, Pixel 11 series, OnePlus Gaming, Claude AI.Etc..",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=s2l1SwFPvAI",
                      "video_id": "s2l1SwFPvAI",
                      "video_length": "9:29",
                      "views": 138660
                    },
                    {
                      "author": "Prasadtechintelugu",
                      "channel_id": "UCb-xXZ7ltTvrh9C6DgB9H-Q",
                      "date": "2026-04-04 14:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Why Apple, Samsung, Google still ship Batteries with 5000mAh are they fear of adapting silicon carbon technology.. #Apple ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/Z1mAklu3cNw/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAUoevRWeS0R4kT-6xr_lxHssyZdg",
                      "title": "Why Flagship Brand's are Still Stuck @ 5000mAh Batteries⚡️?🤔",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=Z1mAklu3cNw",
                      "video_id": "Z1mAklu3cNw",
                      "video_length": "11:03",
                      "views": 64316
                    },
                    {
                      "author": "Next Univerz",
                      "channel_id": "UCq30pSBD9tX6d5_xT5aNPoA",
                      "date": "2026-04-04 13:35:11",
                      "domain": "youtube.com",
                      "is_live": null,
                      "keywords": [],
                      "snippet": "Tech Master Channel Hacked? You might have noticed something different about our channel lately — but don't worry, we ...",
                      "source": "YouTube",
                      "thumbnail": "https://i.ytimg.com/vi/AVLvoyJth3U/hq720.jpg?sqp=-oaymwEcCNAFEJQDSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB288ryFGy21RLQN-pomCiP1_ic4w",
                      "title": "Tech Master Channel Hacked? #newname 🤯",
                      "type": "NORMAL",
                      "url": "https://youtube.com/watch?v=AVLvoyJth3U",
                      "video_id": "AVLvoyJth3U",
                      "video_length": "3:54",
                      "views": 59298
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving YouTube data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/youtube/channels": {
      "get": {
        "tags": [
          "YouTube"
        ],
        "operationId": "searchYoutubeChannels",
        "summary": "Search YouTube Channels",
        "description": "Search for YouTube channels by keyword. Returns channel ID, channel name, description, subscriber count (formatted like \"1.14K\" or \"6.44M\"), thumbnail URL, and channel link. Supports fetching up to 20 pages in a single call.\n\n**Price:** $0.005 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/youtube-channels"
        },
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Search query (max 500 characters)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "AI"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge (1-20). Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchYoutubeChannelsResponse"
                },
                "example": {
                  "channels": [
                    {
                      "channel_id": "UCy0tKL1T7wFoYcxCe0xjN6Q",
                      "description": "",
                      "subscriber_count": "3.1M",
                      "thumbnail": "https://yt3.googleusercontent.com/ytc/AIdro_lG8iUz4mpHBrzJSDYEKT0qe2XmhZUUUzhzcJbz9cE3rQ=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Technology Connections",
                      "url": "https://youtube.com/channel/UCy0tKL1T7wFoYcxCe0xjN6Q"
                    },
                    {
                      "channel_id": "UCXuqSBlHAE6Xw-yeJA0Tunw",
                      "description": "Linus Tech Tips is a passionate team of \"professionally curious\" experts in consumer technology and video production who aim to ...",
                      "subscriber_count": "16.8M",
                      "thumbnail": "https://yt3.ggpht.com/gnvYLhXy8FAlPXZ2RTrkrgj-5kyt0vdE2FUGVOiKGdEZIa-wN5A-7nwZBlWJLzUMmoh1NWAU=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Linus Tech Tips",
                      "url": "https://youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw"
                    },
                    {
                      "channel_id": "UCAL3JXZSzSm8AlZyD3nQdBA",
                      "description": "Primitive technology is a hobby where you build things in the wild completely from scratch using no modern tools or materials.",
                      "subscriber_count": "11M",
                      "thumbnail": "https://yt3.googleusercontent.com/ytc/AIdro_kltmVPbr5yKSJ8YaCv8ouXktPx-11IkO5dcmqN-dFmug=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Primitive Technology",
                      "url": "https://youtube.com/channel/UCAL3JXZSzSm8AlZyD3nQdBA"
                    },
                    {
                      "channel_id": "UC4tkNOvjOInOxxDkJ_jjuhA",
                      "description": "🌐My website: https://paecher.tech\n\nYou can also join my Telegram group 👇\nt.me/PaecherTech\n\nWhenever I feel like it and have ...",
                      "subscriber_count": "1.85K",
                      "thumbnail": "https://yt3.ggpht.com/EIaOwmyhCn66QqMWOIQ_l3qtvuIZpXPpkt5Y3Ka-wG6CgJhYnSNI4vY2pE-nBnkX-Ld_Q8XK=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Pächer Tech",
                      "url": "https://youtube.com/channel/UC4tkNOvjOInOxxDkJ_jjuhA"
                    },
                    {
                      "channel_id": "UCUuvZ0skL2WYZ3rhPMZbfdA",
                      "description": "I push LEGO to its limits Q: Where to buy Lego parts? A: Bricklink Q: Do you provide instructions / part lists? A: Unfortunately not ...",
                      "subscriber_count": "2.55M",
                      "thumbnail": "https://yt3.ggpht.com/7QMRvHdlzbb-ZggL_a0Qq0GBLZDw9yQJyxpdQRG34UNBnGPK7ehEWe74QDfxkbq8PCSc8XuBmg=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Brick Technology",
                      "url": "https://youtube.com/channel/UCUuvZ0skL2WYZ3rhPMZbfdA"
                    },
                    {
                      "channel_id": "UC4Tklxku1yPcRIH0VVCKoeA",
                      "description": "Welcome to Quantum Tech! Discover incredible video reports on a wide variety of topics—from cabin construction to tank ...",
                      "subscriber_count": "18.4M",
                      "thumbnail": "https://yt3.googleusercontent.com/ytc/AIdro_k3NnB8ZHlF_aJsehVatpLju5F3A59pwbtqwJVV2i9Tiog=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Quantum Tech HD",
                      "url": "https://youtube.com/channel/UC4Tklxku1yPcRIH0VVCKoeA"
                    },
                    {
                      "channel_id": "UCrM7B7SL_g1edFOnmj-SDKg",
                      "description": "Welcome to the Bloomberg Tech YouTube channel. Subscribe to see the latest videos on game-changing technologies, profiles ...",
                      "subscriber_count": "720K",
                      "thumbnail": "https://yt3.ggpht.com/12DXqfZQBwvHFBp31Teww9briF_9d45RTmGp6fiYScdvI4LZ3xPEfmw54EXV4o6tQMuG1I2t4Q=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Bloomberg Technology",
                      "url": "https://youtube.com/channel/UCrM7B7SL_g1edFOnmj-SDKg"
                    },
                    {
                      "channel_id": "UCORX3Cl7ByidjEgzSCgv9Yw",
                      "description": "Explaining the key technologies that run the world. Please double-check that you've subscribed — it really helps me keep going.",
                      "subscriber_count": "451K",
                      "thumbnail": "https://yt3.ggpht.com/MjRARaN9YsYMbGm2tDaGEb2YYcsbk58uPWIpjDgZvhimxu8TCVLyV79KNp_33A8j_Zj1-XiIrA=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Anastasi In Tech",
                      "url": "https://youtube.com/channel/UCORX3Cl7ByidjEgzSCgv9Yw"
                    },
                    {
                      "channel_id": "UC1tVU8H153ZFO9eRsxdJlhA",
                      "description": "Subscribe for Zabardast Tech Videos For Business and Partnerships: business@example.com *I DO NOT PROVIDE ...",
                      "subscriber_count": "15.9M",
                      "thumbnail": "https://yt3.ggpht.com/utfTJ7b2YEJSS7Ta5t1NR2QzkMm4_ODijQZI8hKDIJA7msvsISYh1dyw2PLHjzlfr7hrW5sVrQ=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Technology Gyan",
                      "url": "https://youtube.com/channel/UC1tVU8H153ZFO9eRsxdJlhA"
                    },
                    {
                      "channel_id": "UCKWaEZ-_VweaEx1j62do_vQ",
                      "description": "Whether it's AI, automation, cybersecurity, data science, DevOps, quantum computing or anything in between, we provide ...",
                      "subscriber_count": "1.64M",
                      "thumbnail": "https://yt3.ggpht.com/7qCmNHAsFvD6RSINuJ1WoGZYoKmm7TDnhORKFqLb8QoeOFh2qFXal8brkzoxNrwqmJTuvOLs=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "IBM Technology",
                      "url": "https://youtube.com/channel/UCKWaEZ-_VweaEx1j62do_vQ"
                    },
                    {
                      "channel_id": "UCYVU6rModlGxvJbszCclGGw",
                      "description": "Alt-Tech. The Internet Privacy Guy. Public interest hacker and technologist. I use my extensive knowledge of cybersecurity and ...",
                      "subscriber_count": "729K",
                      "thumbnail": "https://yt3.ggpht.com/mq89_NIAXbm4WE_k4n7Rq1ykxpKnQ8XBFIV0SPbZSOg1bQsfNMd-TxpDnPadySlNlvjipR9wlRw=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Rob Braxman Tech",
                      "url": "https://youtube.com/channel/UCYVU6rModlGxvJbszCclGGw"
                    },
                    {
                      "channel_id": "UCuNKAuNHGG-HI_s5cErj-Zw",
                      "description": "Welcome to Unknown Tech! Come and explore with us the world of software and hardware customization and inspire your self to ...",
                      "subscriber_count": "32.5K",
                      "thumbnail": "https://yt3.ggpht.com/jNpAlBlOJSKzgOqaFjaPQrv77opFAGEStK4hYvjisLxWiiApQqBvE-6gJSsuX5glng5OPP0x=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Unknown Tech",
                      "url": "https://youtube.com/channel/UCuNKAuNHGG-HI_s5cErj-Zw"
                    },
                    {
                      "channel_id": "UCf9phz2kU2DaJBwDATTD05Q",
                      "description": "House Technology is the YouTube Channel witch show you about building the house by hand especially rescue pet and animal ...",
                      "subscriber_count": "3.42M",
                      "thumbnail": "https://yt3.ggpht.com/j4aTuqwCBtUUGwLKK18aXoo0pOF9wdQeCyKnwTmH6WVnDkxxliLTeQR1JB3gN8kd3OTkbL-zL20=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "House Technology",
                      "url": "https://youtube.com/channel/UCf9phz2kU2DaJBwDATTD05Q"
                    },
                    {
                      "channel_id": "UCKnaflu7tLEm2S5yHBYfmtg",
                      "description": "For business inquiries: tech.contact@example.com टेक्नोलॉजी में कुछ ऐसी चीजे जिसे ...",
                      "subscriber_count": "751K",
                      "thumbnail": "https://yt3.googleusercontent.com/ytc/AIdro_mU-xTU_SgFrPOirCkkX2RsnU-rIzWgytHTjWtKDlY3X6c=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Complete Technology",
                      "url": "https://youtube.com/channel/UCKnaflu7tLEm2S5yHBYfmtg"
                    },
                    {
                      "channel_id": "UCBS1NUWY7oC6FFHaXQy4zAA",
                      "description": "The PC building channel for people with busy lives! Creating PC building, benchmarking, and setup guide videos the way I ...",
                      "subscriber_count": "1.85M",
                      "thumbnail": "https://yt3.ggpht.com/u_qUyuvPxysFAlmVypBaTtXFYW81vbWMAWl0xxjo-K1kP34KEIXj69iOn6ZqoYFBZWPIpEy-bg=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Zach's Tech Turf",
                      "url": "https://youtube.com/channel/UCBS1NUWY7oC6FFHaXQy4zAA"
                    },
                    {
                      "channel_id": "UC0QRG-gMqHhF5-BPdmJfs1w",
                      "description": "Leaks, News & Reviews For Everything Tech Related!",
                      "subscriber_count": "672K",
                      "thumbnail": "https://yt3.googleusercontent.com/ytc/AIdro_nXEbSn4WhLxJ7MYoVhzD7w7UYB4ZGFiFmgEaX-Mxw3ZaI=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "TT Technology",
                      "url": "https://youtube.com/channel/UC0QRG-gMqHhF5-BPdmJfs1w"
                    },
                    {
                      "channel_id": "UCzgHHMNL7NOJ_ViECN5fyHw",
                      "description": "Our Technology Planet is focused to provide a platform for people to learn and understand technology in an easy yet ...",
                      "subscriber_count": "20K",
                      "thumbnail": "https://yt3.ggpht.com/AmLkW79K_0C8V-yQI6_Scj4CFaWrUe0i6uZT-EXIyvkLhrjRc0m_M-tyeVcxjOuF0bIYykgEEwg=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Our Technology Planet",
                      "url": "https://youtube.com/channel/UCzgHHMNL7NOJ_ViECN5fyHw"
                    },
                    {
                      "channel_id": "UCz6PEeVLG1TL6jMRTvSLm4g",
                      "description": "If you would like to contact for a SPONSOR to Review a Product or Service for you, please contact via me via; ...",
                      "subscriber_count": "796K",
                      "thumbnail": "https://yt3.ggpht.com/X0FWMawqq22ygYpj0cNN0d5ehgg5JbBATRr1TBMb6HqLGtEnV9pzuy2o0FE_10Erz3gcWLzygw=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Matt Talks Tech",
                      "url": "https://youtube.com/channel/UCz6PEeVLG1TL6jMRTvSLm4g"
                    },
                    {
                      "channel_id": "UCJf7AT2BzFT-31z0d-bc8Rg",
                      "description": "We talk about Windows, Microsoft, Edge and much more NOTE: This is NOT a official Microsoft Channel This is a channel run by a ...",
                      "subscriber_count": "127K",
                      "thumbnail": "https://yt3.ggpht.com/y0bud5ZD_s02My30MK2Aoptxj41G3NOnRpIiPToiC21EA7sudJGuS_KU21-91S8D-C0_qli54g=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "Windows, computers and Technology",
                      "url": "https://youtube.com/channel/UCJf7AT2BzFT-31z0d-bc8Rg"
                    },
                    {
                      "channel_id": "UC3ByF8DcZ3yxUs7VP1NOuyA",
                      "description": "REWA is an industry-leading electronics repair business solutions provider founded in HongKong in 2008. This channel is ...",
                      "subscriber_count": "928K",
                      "thumbnail": "https://yt3.ggpht.com/qrOWTz4wZrbslwN6JA6QbPGDDg_xitDfpjEK615hvsqnJfdG-np_d81cDGMXp5nwvCgbLbryVg=s176-c-k-c0x00ffffff-no-rj-mo",
                      "title": "REWA Technology",
                      "url": "https://youtube.com/channel/UC3ByF8DcZ3yxUs7VP1NOuyA"
                    }
                  ],
                  "count": 20,
                  "pages": 1
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving YouTube data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/youtube/channel": {
      "get": {
        "tags": [
          "YouTube"
        ],
        "operationId": "youtubeChannelDetails",
        "summary": "YouTube Channel Details",
        "description": "Get detailed information about a YouTube channel by channel ID, URL, or name/handle. Returns the channel name, description, subscriber count, video count, exact total view count, country, creation date, verification status, external links, profile picture, and banner. Provide exactly one of id, url, or name.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/youtube-channel-details"
        },
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "required": false,
            "description": "YouTube channel ID (24 characters, starts with UC), e.g. UCXuqSBlHAE6Xw-yeJA0Tunw",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "UCXuqSBlHAE6Xw-yeJA0Tunw"
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "description": "Channel URL, used instead of id: youtube.com/channel/..., youtube.com/@handle, /c/ or /user/ forms",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.youtube.com/@mkbhd"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "Channel name or @handle, used instead of id (e.g. @mkbhd or Linus Tech Tips)",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "Linus Tech Tips"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/YoutubeChannelDetailsResponse"
                },
                "example": {
                  "channel": {
                    "channel_id": "UCXuqSBlHAE6Xw-yeJA0Tunw",
                    "channel_name": "Linus Tech Tips",
                    "description": "Linus Tech Tips is a passionate team of \"professionally curious\" experts in consumer technology and video production who aim to educate and entertain.",
                    "subscriber_count": "16.9M",
                    "video_count": "7.8K",
                    "view_count": 9633982641,
                    "country": "Canada",
                    "creation_date": "2008-11-25",
                    "verified": true,
                    "has_business_email": true,
                    "links": [
                      {
                        "name": "lttstore.com",
                        "url": "https://lttstore.com"
                      },
                      {
                        "name": "Twitter",
                        "url": "https://twitter.com/LinusTech"
                      }
                    ],
                    "profile_pic_url": "https://yt3.googleusercontent.com/.../photo.jpg",
                    "banner": "https://yt3.googleusercontent.com/.../banner.jpg",
                    "url": "https://youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Channel not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving YouTube data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/youtube/video": {
      "get": {
        "tags": [
          "YouTube"
        ],
        "operationId": "youtubeVideoDetails",
        "summary": "YouTube Video Details",
        "description": "Get detailed information about a YouTube video by URL or video ID. Returns the title, full description, channel name and ID, publish date, duration in seconds, view count, category, keywords, and thumbnail. Works for regular videos, Shorts, and live streams.\n\n**Price:** $0.005 per request. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/youtube-video-details"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "YouTube video URL (watch?v=, youtu.be/, /shorts/, /embed/, /live/ or /v/ forms) or 11-character video ID",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/YoutubeVideoDetailsResponse"
                },
                "example": {
                  "video": {
                    "video_id": "dQw4w9WgXcQ",
                    "url": "https://youtube.com/watch?v=dQw4w9WgXcQ",
                    "title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
                    "description": "The official video for “Never Gonna Give You Up” by Rick Astley...",
                    "author": "Rick Astley",
                    "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
                    "date": "2009-10-25 06:57:33",
                    "duration": 213,
                    "views": 1788679598,
                    "category": "Music",
                    "type": "NORMAL",
                    "is_live": false,
                    "keywords": [
                      "rick astley",
                      "Never Gonna Give You Up",
                      "rick roll"
                    ],
                    "thumbnail": "https://i.ytimg.com/vi_webp/dQw4w9WgXcQ/maxresdefault.webp"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request: missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized: invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Video not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving YouTube data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/youtube/comments": {
      "get": {
        "tags": [
          "YouTube"
        ],
        "operationId": "getYoutubeComments",
        "summary": "YouTube Video Comments",
        "description": "Get comments (comment threads) from a YouTube video. Returns each comment's text, author, author channel, like count, reply count, publication date, last-updated date, a direct link, and preview replies. Supports sorting by most recent or relevance, and fetching up to 20 pages in a single call.\n\n**Price:** $0.005 per page. **Free tier:** 50 requests/month.",
        "externalDocs": {
          "url": "https://apidirect.io/docs/youtube-comments"
        },
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "required": true,
            "description": "YouTube video URL (watch?v=, youtu.be/, /shorts/, /embed/, /live/ or /v/ forms) or 11-character video ID",
            "schema": {
              "type": "string",
              "maxLength": 500
            },
            "example": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
          },
          {
            "name": "pages",
            "in": "query",
            "required": false,
            "description": "Number of pages to fetch and merge (1-20). Each page returns up to ~100 comments. Billed per page.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 1
            },
            "example": 1
          },
          {
            "name": "sort_by",
            "in": "query",
            "required": false,
            "description": "Sort order",
            "schema": {
              "type": "string",
              "enum": [
                "most_recent",
                "relevance"
              ],
              "default": "relevance"
            },
            "example": "relevance"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetYoutubeCommentsResponse"
                },
                "example": {
                  "comments": [
                    {
                      "comment_id": "Ugzge340dBgB75hWBm54AaABAg",
                      "text": "can confirm: he never gave us up",
                      "author": "@YouTube",
                      "author_channel_id": "UCBR8-60-B28hp2BmDPdntcQ",
                      "author_channel_url": "http://www.youtube.com/@YouTube",
                      "author_thumbnail": "https://yt3.ggpht.com/.../photo.jpg",
                      "likes": 261929,
                      "reply_count": 1000,
                      "date": "2025-04-22 19:05:08",
                      "updated_date": "2025-04-22 19:05:08",
                      "url": "https://youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dBgB75hWBm54AaABAg",
                      "video_id": "dQw4w9WgXcQ",
                      "channel_id": "UCuAXFkgsw1L7xaCfnd5JJOw",
                      "source": "YouTube",
                      "domain": "youtube.com",
                      "replies": [
                        {
                          "comment_id": "Ugzge340dBgB75hWBm54AaABAg.AHE8_QAWJx9AHE9eIiztxR",
                          "text": "YOUTUBE AND ONE LIKE WOOHAAAAH",
                          "author": "@linganguliguliwatcha",
                          "author_channel_id": "UCjFRISlX-LPxiqViJAE3h6Q",
                          "author_channel_url": "http://www.youtube.com/@linganguliguliwatcha",
                          "author_thumbnail": "https://yt3.ggpht.com/.../photo.jpg",
                          "likes": 7026,
                          "date": "2025-04-22 19:14:32",
                          "url": "https://youtube.com/watch?v=dQw4w9WgXcQ&lc=Ugzge340dBgB75hWBm54AaABAg.AHE8_QAWJx9AHE9eIiztxR",
                          "video_id": "dQw4w9WgXcQ"
                        }
                      ]
                    }
                  ],
                  "pages": 1,
                  "count": 100
                }
              }
            }
          },
          "400": {
            "description": "Bad request - missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Video not found, private, or unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded or too many concurrent requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "502": {
            "description": "Temporary failure retrieving YouTube data. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Service temporarily unavailable. Please retry shortly.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "504": {
            "description": "The request timed out",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/batch": {
      "post": {
        "tags": [
          "Batch"
        ],
        "operationId": "batchRequests",
        "summary": "Batch Requests",
        "description": "Run up to 100 API calls in one request, in any mix of endpoints. Items run concurrently server-side and each returns its own status and body, in input order. The JSON body can be at most 1 MB. Allow up to 13 minutes for a large batch to finish.\n\nBatching is free: each item bills under its own endpoint at its normal rate and uses that endpoint's free tier, exactly like a direct call. Items the batch could not get to return `status: 0` and are never billed.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              },
              "example": {
                "requests": [
                  {
                    "endpoint": "/v1/twitter/user",
                    "params": {
                      "username": "naval"
                    }
                  },
                  {
                    "endpoint": "/v1/twitter/user",
                    "params": {
                      "username": "paulg"
                    }
                  },
                  {
                    "endpoint": "/v1/instagram/user",
                    "params": {
                      "username": "instagram"
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Per-item results. Check each item's `status`: one item failing never fails the batch.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponse"
                },
                "example": {
                  "results": [
                    {
                      "index": 0,
                      "endpoint": "/v1/twitter/user",
                      "status": 200,
                      "body": {
                        "user": {
                          "name": "Naval",
                          "username": "naval",
                          "followers": 2100000
                        }
                      }
                    },
                    {
                      "index": 1,
                      "endpoint": "/v1/twitter/user",
                      "status": 200,
                      "body": {
                        "user": {
                          "name": "Paul Graham",
                          "username": "paulg"
                        }
                      }
                    },
                    {
                      "index": 2,
                      "endpoint": "/v1/instagram/user",
                      "status": 200,
                      "body": {
                        "user": {
                          "username": "instagram"
                        }
                      }
                    }
                  ],
                  "summary": {
                    "total": 3,
                    "succeeded": 3,
                    "failed": 0,
                    "duration_ms": 4200
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid batch body (`invalid_parameter`), or the call did not use an `X-API-Key` header (`unsupported_auth`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key (`missing_api_key`, `invalid_api_key`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body larger than 1 MB (`payload_too_large`). Split the batch into smaller ones.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Too many batches running at once for this account (`concurrency_limit_exceeded`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "externalDocs": {
          "url": "https://apidirect.io/docs/batch"
        }
      }
    },
    "/v1/time": {
      "get": {
        "tags": [
          "Account"
        ],
        "operationId": "getTime",
        "summary": "Check API Key",
        "description": "Returns the current server time. Integrations use it to check that an API key works.\n\n**Price:** $0.001 per request after the free tier.",
        "responses": {
          "200": {
            "description": "The key is valid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeResponse"
                },
                "example": {
                  "timestamp": "2026-10-03T22:30:00.000000+00:00",
                  "unix": 1791066600,
                  "formatted": "2026-10-03 22:30:00 UTC"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid API key (`missing_api_key`, `invalid_api_key`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "402": {
            "description": "Free tier used up for this endpoint and no payment method on file (`payment_required`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Account blocked after a failed payment (`account_blocked`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Too many concurrent requests (`concurrency_limit_exceeded`), a spending limit reached (`daily_limit_exceeded`, `monthly_limit_exceeded`), or the data source is rate limiting (`upstream_rate_limit`).",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "Your API key (starts with `ak_live_`), from https://apidirect.io/dashboard/keys."
      }
    },
    "schemas": {
      "AmazonBestSellersResponse": {
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "number",
                  "nullable": true
                },
                "rank_change": {},
                "asin": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "price": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "num_ratings": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "photo": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "category_name": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "AmazonProductDetailsResponse": {
        "type": "object",
        "properties": {
          "product": {
            "type": "object",
            "properties": {
              "asin": {
                "type": "string",
                "nullable": true
              },
              "title": {
                "type": "string",
                "nullable": true
              },
              "item_highlight": {
                "type": "string",
                "nullable": true
              },
              "price": {
                "type": "string",
                "nullable": true
              },
              "original_price": {
                "type": "string",
                "nullable": true
              },
              "delivery_price": {},
              "minimum_order_quantity": {},
              "currency": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "byline": {
                "type": "string",
                "nullable": true
              },
              "byline_link": {
                "type": "string",
                "nullable": true
              },
              "rating": {
                "type": "number",
                "nullable": true
              },
              "num_ratings": {
                "type": "number",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "slug": {
                "type": "string",
                "nullable": true
              },
              "photo": {
                "type": "string",
                "nullable": true
              },
              "photos": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "videos": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "user_uploaded_videos": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "has_video": {
                "type": "boolean",
                "nullable": true
              },
              "num_offers": {
                "type": "number",
                "nullable": true
              },
              "availability": {
                "type": "string",
                "nullable": true
              },
              "condition": {
                "type": "string",
                "nullable": true
              },
              "is_best_seller": {
                "type": "boolean",
                "nullable": true
              },
              "is_amazon_choice": {
                "type": "boolean",
                "nullable": true
              },
              "is_prime": {
                "type": "boolean",
                "nullable": true
              },
              "climate_pledge_friendly": {
                "type": "boolean",
                "nullable": true
              },
              "sales_volume": {
                "type": "string",
                "nullable": true
              },
              "delivery": {
                "type": "string",
                "nullable": true
              },
              "main_buy_box": {
                "type": "object",
                "properties": {
                  "title": {
                    "type": "string",
                    "nullable": true
                  },
                  "price": {
                    "type": "string",
                    "nullable": true
                  },
                  "seller": {
                    "type": "string",
                    "nullable": true
                  },
                  "seller_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "seller_link": {
                    "type": "string",
                    "nullable": true
                  },
                  "return_policy": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "buy_boxes": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "price": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "about": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "product_information": {
                "type": "object",
                "properties": {
                  "Screen Size": {
                    "type": "string",
                    "nullable": true
                  },
                  "Color": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "product_details": {
                "type": "object",
                "properties": {
                  "Brand": {
                    "type": "string",
                    "nullable": true
                  },
                  "Model Name": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "rating_distribution": {
                "type": "object",
                "properties": {
                  "1": {
                    "type": "string",
                    "nullable": true
                  },
                  "2": {
                    "type": "string",
                    "nullable": true
                  },
                  "3": {
                    "type": "string",
                    "nullable": true
                  },
                  "4": {
                    "type": "string",
                    "nullable": true
                  },
                  "5": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "top_reviews": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "review_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "review_text": {
                      "type": "string",
                      "nullable": true
                    },
                    "rating": {
                      "type": "number",
                      "nullable": true
                    },
                    "review_link": {
                      "type": "string",
                      "nullable": true
                    },
                    "review_date": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_avatar": {
                      "type": "string",
                      "nullable": true
                    },
                    "images": {
                      "type": "array",
                      "items": {},
                      "nullable": true
                    },
                    "video": {},
                    "is_verified_purchase": {
                      "type": "boolean",
                      "nullable": true
                    },
                    "helpful_votes": {
                      "type": "string",
                      "nullable": true
                    },
                    "product_variant": {
                      "type": "object",
                      "properties": {
                        "Size": {
                          "type": "string",
                          "nullable": true
                        },
                        "Color": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "nullable": true
                    },
                    "is_vine": {
                      "type": "boolean",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "AmazonSellerProductsResponse": {
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "asin": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "price": {
                  "type": "string",
                  "nullable": true
                },
                "original_price": {
                  "type": "string",
                  "nullable": true
                },
                "unit_price": {},
                "unit_count": {},
                "currency": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "num_ratings": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "photo": {
                  "type": "string",
                  "nullable": true
                },
                "num_offers": {
                  "type": "number",
                  "nullable": true
                },
                "minimum_offer_price": {
                  "type": "string",
                  "nullable": true
                },
                "is_best_seller": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_amazon_choice": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_prime": {
                  "type": "boolean",
                  "nullable": true
                },
                "climate_pledge_friendly": {
                  "type": "boolean",
                  "nullable": true
                },
                "sales_volume": {
                  "type": "string",
                  "nullable": true
                },
                "delivery": {
                  "type": "string",
                  "nullable": true
                },
                "availability": {},
                "has_variations": {
                  "type": "boolean",
                  "nullable": true
                },
                "badge": {},
                "coupon_text": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "total_products": {
            "type": "number",
            "nullable": true
          },
          "seller_id": {
            "type": "string",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "sort_by": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "AmazonSellerProfileResponse": {
        "type": "object",
        "properties": {
          "seller": {
            "type": "object",
            "properties": {
              "seller_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "seller_link": {
                "type": "string",
                "nullable": true
              },
              "store_link": {
                "type": "string",
                "nullable": true
              },
              "logo": {
                "type": "string",
                "nullable": true
              },
              "about": {
                "type": "string",
                "nullable": true
              },
              "business_name": {
                "type": "string",
                "nullable": true
              },
              "business_address": {
                "type": "string",
                "nullable": true
              },
              "rating": {
                "type": "number",
                "nullable": true
              },
              "ratings_total": {
                "type": "number",
                "nullable": true
              },
              "positive_percentage": {
                "type": "number",
                "nullable": true
              },
              "review_summary": {
                "type": "object",
                "properties": {
                  "thirty_days": {
                    "type": "object",
                    "properties": {
                      "positive_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "neutral_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "negative_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "count": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "ninety_days": {
                    "type": "object",
                    "properties": {
                      "positive_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "neutral_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "negative_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "count": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "twelve_months": {
                    "type": "object",
                    "properties": {
                      "positive_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "neutral_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "negative_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "count": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "lifetime": {
                    "type": "object",
                    "properties": {
                      "positive_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "neutral_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "negative_percent": {
                        "type": "number",
                        "nullable": true
                      },
                      "count": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "AmazonSellerReviewsResponse": {
        "type": "object",
        "properties": {
          "reviews": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "review_text": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "review_date": {
                  "type": "string",
                  "nullable": true
                },
                "has_response": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "seller_id": {
            "type": "string",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "star_rating": {
            "type": "string",
            "nullable": true
          },
          "has_next_page": {
            "type": "boolean",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BatchRequest": {
        "type": "object",
        "required": [
          "requests"
        ],
        "properties": {
          "requests": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "description": "The calls to run, 1 to 100 of them, in any mix of endpoints.",
            "items": {
              "$ref": "#/components/schemas/BatchRequestItem"
            }
          }
        }
      },
      "BatchRequestItem": {
        "type": "object",
        "required": [
          "endpoint"
        ],
        "properties": {
          "endpoint": {
            "type": "string",
            "pattern": "^/v1(/[a-z0-9\\-]+)+$",
            "description": "The endpoint path to call, for example `/v1/twitter/user`. Every endpoint except `/v1/web/ai-mode` and `/v1/time` is allowed.",
            "example": "/v1/twitter/user"
          },
          "params": {
            "type": "object",
            "maxProperties": 25,
            "description": "The query parameters the endpoint takes when called directly. Values must be strings or numbers (send booleans as \"true\").",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string",
                  "maxLength": 2000
                },
                {
                  "type": "number"
                }
              ]
            },
            "example": {
              "username": "naval"
            }
          },
          "tag": {
            "type": "string",
            "maxLength": 100,
            "description": "Optional label echoed back on this item's result."
          }
        }
      },
      "BatchResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "One result per request item, in input order.",
            "items": {
              "$ref": "#/components/schemas/BatchResult"
            }
          },
          "summary": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Number of items in the batch."
              },
              "succeeded": {
                "type": "integer",
                "description": "Items that returned 2xx."
              },
              "failed": {
                "type": "integer",
                "description": "Items that did not succeed."
              },
              "duration_ms": {
                "type": "integer",
                "description": "Total batch execution time."
              }
            }
          }
        }
      },
      "BatchResult": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer",
            "description": "Position of the item in `requests`."
          },
          "endpoint": {
            "type": "string",
            "description": "The endpoint the item called."
          },
          "tag": {
            "type": "string",
            "nullable": true,
            "description": "The item's tag, when one was sent."
          },
          "status": {
            "type": "integer",
            "description": "The item's HTTP status: 2xx on success, the endpoint's normal 4xx/5xx on error, or 0 when the item was not attempted (never billed)."
          },
          "body": {
            "type": "object",
            "description": "Exactly what the endpoint returns when called directly, or its error body."
          }
        }
      },
      "BlueskyPostCommentsResponse": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "in_reply_to_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "quoted_post": {},
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "link_preview": {},
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "post_id": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyPostDetailsResponse": {
        "type": "object",
        "properties": {
          "post": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "date": {
                "type": "string",
                "nullable": true
              },
              "author": {
                "type": "string",
                "nullable": true
              },
              "author_name": {
                "type": "string",
                "nullable": true
              },
              "author_id": {
                "type": "string",
                "nullable": true
              },
              "author_verified": {
                "type": "boolean",
                "nullable": true
              },
              "source": {
                "type": "string",
                "nullable": true
              },
              "domain": {
                "type": "string",
                "nullable": true
              },
              "snippet": {
                "type": "string",
                "nullable": true
              },
              "likes": {
                "type": "number",
                "nullable": true
              },
              "replies": {
                "type": "number",
                "nullable": true
              },
              "reposts": {
                "type": "number",
                "nullable": true
              },
              "quotes": {
                "type": "number",
                "nullable": true
              },
              "bookmarks": {
                "type": "number",
                "nullable": true
              },
              "lang": {
                "type": "string",
                "nullable": true
              },
              "is_reply": {
                "type": "boolean",
                "nullable": true
              },
              "in_reply_to_id": {
                "type": "string",
                "nullable": true
              },
              "is_quote": {
                "type": "boolean",
                "nullable": true
              },
              "quoted_post": {},
              "hashtags": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "mentions": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "links": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "link_preview": {},
              "media_type": {
                "type": "string",
                "nullable": true
              },
              "image_url": {
                "type": "string",
                "nullable": true
              },
              "video_url": {
                "type": "string",
                "nullable": true
              },
              "carousel_media": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "post_id": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyPostLikesResponse": {
        "type": "object",
        "properties": {
          "likes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "biography": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "date_joined": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "liked_at": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "post_id": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyPostQuotesResponse": {
        "type": "object",
        "properties": {
          "quotes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "in_reply_to_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "quoted_post": {
                  "type": "object",
                  "properties": {
                    "post_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "date": {
                      "type": "string",
                      "nullable": true
                    },
                    "author": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_verified": {
                      "type": "boolean",
                      "nullable": true
                    },
                    "snippet": {
                      "type": "string",
                      "nullable": true
                    },
                    "likes": {
                      "type": "number",
                      "nullable": true
                    },
                    "reposts": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "link_preview": {},
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "post_id": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyPostRepostsResponse": {
        "type": "object",
        "properties": {
          "reposts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "biography": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "date_joined": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "post_id": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyUserFollowersResponse": {
        "type": "object",
        "properties": {
          "followers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "biography": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "date_joined": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyUserFollowingResponse": {
        "type": "object",
        "properties": {
          "following": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "biography": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "date_joined": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyUserLikesResponse": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "in_reply_to_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "quoted_post": {
                  "type": "object",
                  "properties": {
                    "post_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "date": {
                      "type": "string",
                      "nullable": true
                    },
                    "author": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "author_verified": {
                      "type": "boolean",
                      "nullable": true
                    },
                    "snippet": {
                      "type": "string",
                      "nullable": true
                    },
                    "likes": {
                      "type": "number",
                      "nullable": true
                    },
                    "reposts": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "link_preview": {},
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "liked_at": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyUserPostsResponse": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "in_reply_to_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "quoted_post": {},
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "link_preview": {},
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_repost": {
                  "type": "boolean",
                  "nullable": true
                },
                "reposted_by": {
                  "type": "string",
                  "nullable": true
                },
                "is_pinned": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "BlueskyUserProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "username": {
                "type": "string",
                "nullable": true
              },
              "full_name": {
                "type": "string",
                "nullable": true
              },
              "user_id": {
                "type": "string",
                "nullable": true
              },
              "biography": {
                "type": "string",
                "nullable": true
              },
              "follower_count": {
                "type": "number",
                "nullable": true
              },
              "following_count": {
                "type": "number",
                "nullable": true
              },
              "post_count": {
                "type": "number",
                "nullable": true
              },
              "list_count": {
                "type": "number",
                "nullable": true
              },
              "feed_count": {
                "type": "number",
                "nullable": true
              },
              "starter_pack_count": {
                "type": "number",
                "nullable": true
              },
              "is_verified": {
                "type": "boolean",
                "nullable": true
              },
              "is_labeler": {
                "type": "boolean",
                "nullable": true
              },
              "profile_pic_url": {
                "type": "string",
                "nullable": true
              },
              "profile_banner_url": {
                "type": "string",
                "nullable": true
              },
              "date_joined": {
                "type": "string",
                "nullable": true
              },
              "date_joined_timestamp": {
                "type": "number",
                "nullable": true
              },
              "pinned_post_id": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "Error": {
        "type": "object",
        "required": [
          "error",
          "code"
        ],
        "properties": {
          "error": {
            "type": "string",
            "description": "Human-readable error message."
          },
          "code": {
            "type": "string",
            "description": "Machine-readable error code, such as `missing_parameter`, `invalid_parameter`, `missing_api_key`, `invalid_api_key`, `payment_required`, `account_blocked`, `not_found`, `concurrency_limit_exceeded`, `daily_limit_exceeded`, `monthly_limit_exceeded`, `upstream_rate_limit`, `upstream_error`, `upstream_timeout`, `service_unavailable`, `endpoint_suspended`, `payload_too_large` or `rate_limited`. New codes may be added."
          }
        },
        "example": {
          "error": "Missing required parameter: query",
          "code": "missing_parameter"
        }
      },
      "FacebookGroupDetailsResponse": {
        "type": "object",
        "properties": {
          "group": {
            "type": "object",
            "properties": {
              "cover_photo": {
                "type": "string",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "id": {
                "type": "string",
                "nullable": true
              },
              "location": {
                "type": "string",
                "nullable": true
              },
              "members_count": {
                "type": "number",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "privacy": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookGroupPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_picture": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments_count": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "external_url": {},
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "message": {
                  "type": "string",
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "angry": {
                      "type": "number",
                      "nullable": true
                    },
                    "care": {
                      "type": "number",
                      "nullable": true
                    },
                    "haha": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    },
                    "love": {
                      "type": "number",
                      "nullable": true
                    },
                    "sad": {
                      "type": "number",
                      "nullable": true
                    },
                    "wow": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "reshare_count": {
                  "type": "number",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookGroupSearchResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_picture": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments_count": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "external_url": {},
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "message": {
                  "type": "string",
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "angry": {
                      "type": "number",
                      "nullable": true
                    },
                    "care": {
                      "type": "number",
                      "nullable": true
                    },
                    "haha": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    },
                    "love": {
                      "type": "number",
                      "nullable": true
                    },
                    "sad": {
                      "type": "number",
                      "nullable": true
                    },
                    "wow": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "reshare_count": {
                  "type": "number",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video": {}
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPageDetailsResponse": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "address": {},
              "categories": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "cover_image": {
                "type": "string",
                "nullable": true
              },
              "delegate_page_id": {
                "type": "string",
                "nullable": true
              },
              "email": {},
              "followers": {
                "type": "number",
                "nullable": true
              },
              "following": {
                "type": "number",
                "nullable": true
              },
              "image": {
                "type": "string",
                "nullable": true
              },
              "intro": {},
              "likes": {},
              "name": {
                "type": "string",
                "nullable": true
              },
              "page_id": {
                "type": "string",
                "nullable": true
              },
              "phone": {
                "type": "string",
                "nullable": true
              },
              "price_range": {},
              "rating": {},
              "reels_page_id": {
                "type": "string",
                "nullable": true
              },
              "type": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "verified": {
                "type": "boolean",
                "nullable": true
              },
              "website": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPagePhotosResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "photos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "photo_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPagePostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_picture": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments_count": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "external_url": {},
                "image_url": {},
                "message": {
                  "type": "string",
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "angry": {
                      "type": "number",
                      "nullable": true
                    },
                    "care": {
                      "type": "number",
                      "nullable": true
                    },
                    "haha": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    },
                    "love": {
                      "type": "number",
                      "nullable": true
                    },
                    "sad": {
                      "type": "number",
                      "nullable": true
                    },
                    "wow": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "reshare_count": {
                  "type": "number",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPageReelsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "reels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments_count": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "length_in_seconds": {
                  "type": "number",
                  "nullable": true
                },
                "play_count": {
                  "type": "number",
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "reshare_count": {
                  "type": "number",
                  "nullable": true
                },
                "thumbnail": {
                  "type": "string",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPageReviewsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "reviews": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "recommend": {
                  "type": "boolean",
                  "nullable": true
                },
                "review_text": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPageVideosResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "videos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "play_count": {
                  "type": "number",
                  "nullable": true
                },
                "thumbnail": {
                  "type": "string",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "FacebookPostCommentsResponse": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "comment_id": {
                  "type": "string",
                  "nullable": true
                },
                "legacy_comment_id": {
                  "type": "string",
                  "nullable": true
                },
                "message": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "author_gender": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_picture": {
                  "type": "string",
                  "nullable": true
                },
                "replies_count": {
                  "type": "number",
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "is_sticker": {
                  "type": "boolean",
                  "nullable": true
                },
                "sticker_url": {},
                "is_gif": {
                  "type": "boolean",
                  "nullable": true
                },
                "gif": {},
                "image": {},
                "video": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "GetYoutubeCommentsResponse": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "comment_id": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_channel_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_channel_url": {
                  "type": "string",
                  "nullable": true
                },
                "author_thumbnail": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "reply_count": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "updated_date": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video_id": {
                  "type": "string",
                  "nullable": true
                },
                "channel_id": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "replies": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "comment_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "text": {
                        "type": "string",
                        "nullable": true
                      },
                      "author": {
                        "type": "string",
                        "nullable": true
                      },
                      "author_channel_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "author_channel_url": {
                        "type": "string",
                        "nullable": true
                      },
                      "author_thumbnail": {
                        "type": "string",
                        "nullable": true
                      },
                      "likes": {
                        "type": "number",
                        "nullable": true
                      },
                      "date": {
                        "type": "string",
                        "nullable": true
                      },
                      "url": {
                        "type": "string",
                        "nullable": true
                      },
                      "video_id": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "GoogleAiModePostResponse": {
        "type": "object",
        "properties": {
          "reply_parts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "ordered": {
                  "type": "boolean",
                  "nullable": true
                },
                "list": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "nullable": true
                      },
                      "text": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "reference_links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "favicon": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "session_token": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "GoogleAiModeResponse": {
        "type": "object",
        "properties": {
          "reply_parts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "ordered": {
                  "type": "boolean",
                  "nullable": true
                },
                "list": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "title": {
                        "type": "string",
                        "nullable": true
                      },
                      "text": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "reference_links": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "link": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "favicon": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "session_token": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramCommentRepliesResponse": {
        "type": "object",
        "properties": {
          "replies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "comment_id": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "author_is_ai_generated_profile": {
                  "type": "boolean",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "reply_count": {
                  "type": "number",
                  "nullable": true
                },
                "is_pinned": {
                  "type": "boolean",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "date_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "gif_url": {},
                "parent_comment_id": {
                  "type": "string",
                  "nullable": true
                },
                "replied_to_comment_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "comment_id": {
            "type": "string",
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramHashtagPostsResponse": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                },
                "is_video": {
                  "type": "boolean",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "media_id": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_duration": {
                  "type": "number",
                  "nullable": true
                },
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "nullable": true
                },
                "carousel_media_count": {
                  "type": "number",
                  "nullable": true
                },
                "is_paid_partnership": {
                  "type": "boolean",
                  "nullable": true
                },
                "ai_label": {
                  "type": "object",
                  "properties": {
                    "label": {},
                    "detection_method": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "location": {},
                "tagged_users": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "coauthors": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "audio": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "artist": {
                      "type": "string",
                      "nullable": true
                    },
                    "audio_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "duration_ms": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "hashtag": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramHighlightStoriesResponse": {
        "type": "object",
        "properties": {
          "highlight": {
            "type": "object",
            "properties": {
              "highlight_id": {
                "type": "string",
                "nullable": true
              },
              "title": {
                "type": "string",
                "nullable": true
              },
              "media_count": {
                "type": "number",
                "nullable": true
              },
              "cover_url": {
                "type": "string",
                "nullable": true
              },
              "created_at": {
                "type": "string",
                "nullable": true
              },
              "created_at_timestamp": {
                "type": "number",
                "nullable": true
              },
              "updated_at": {
                "type": "string",
                "nullable": true
              },
              "updated_at_timestamp": {
                "type": "number",
                "nullable": true
              },
              "is_pinned": {
                "type": "boolean",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "author": {
                "type": "string",
                "nullable": true
              },
              "author_id": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "stories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "date_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "expires_at": {
                  "type": "string",
                  "nullable": true
                },
                "expires_at_timestamp": {},
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "is_video": {
                  "type": "boolean",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "media_id": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_duration": {},
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "nullable": true
                },
                "location": {},
                "tagged_users": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "audio": {},
                "coauthors": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_paid_partnership": {
                  "type": "boolean",
                  "nullable": true
                },
                "ai_label": {
                  "type": "object",
                  "properties": {
                    "label": {},
                    "detection_method": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramPostCommentsResponse": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "comment_id": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "author_is_ai_generated_profile": {
                  "type": "boolean",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "reply_count": {
                  "type": "number",
                  "nullable": true
                },
                "is_pinned": {
                  "type": "boolean",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "date_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "gif_url": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramPostDetailsResponse": {
        "type": "object",
        "properties": {
          "post": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "date": {
                "type": "string",
                "nullable": true
              },
              "date_timestamp": {
                "type": "number",
                "nullable": true
              },
              "author": {
                "type": "string",
                "nullable": true
              },
              "author_id": {
                "type": "string",
                "nullable": true
              },
              "source": {
                "type": "string",
                "nullable": true
              },
              "domain": {
                "type": "string",
                "nullable": true
              },
              "snippet": {
                "type": "string",
                "nullable": true
              },
              "likes": {
                "type": "number",
                "nullable": true
              },
              "comments": {
                "type": "number",
                "nullable": true
              },
              "shares": {
                "type": "number",
                "nullable": true
              },
              "reposts": {
                "type": "number",
                "nullable": true
              },
              "views": {
                "type": "number",
                "nullable": true
              },
              "is_video": {
                "type": "boolean",
                "nullable": true
              },
              "media_type": {
                "type": "string",
                "nullable": true
              },
              "author_verified": {
                "type": "boolean",
                "nullable": true
              },
              "author_name": {
                "type": "string",
                "nullable": true
              },
              "hashtags": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "mentions": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "media_id": {
                "type": "string",
                "nullable": true
              },
              "thumbnail_url": {
                "type": "string",
                "nullable": true
              },
              "video_url": {
                "type": "string",
                "nullable": true
              },
              "video_duration": {
                "type": "number",
                "nullable": true
              },
              "width": {
                "type": "number",
                "nullable": true
              },
              "height": {
                "type": "number",
                "nullable": true
              },
              "carousel_media_count": {
                "type": "number",
                "nullable": true
              },
              "is_paid_partnership": {
                "type": "boolean",
                "nullable": true
              },
              "ai_label": {
                "type": "object",
                "properties": {
                  "label": {},
                  "detection_method": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "location": {},
              "tagged_users": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "username": {
                      "type": "string",
                      "nullable": true
                    },
                    "full_name": {
                      "type": "string",
                      "nullable": true
                    },
                    "user_id": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "coauthors": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "carousel_media": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "audio": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "nullable": true
                  },
                  "title": {
                    "type": "string",
                    "nullable": true
                  },
                  "artist": {
                    "type": "string",
                    "nullable": true
                  },
                  "audio_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "duration_ms": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "is_pinned": {
                "type": "boolean",
                "nullable": true
              },
              "accessibility_caption": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramPostLikesResponse": {
        "type": "object",
        "properties": {
          "likes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_private": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "code": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramUserFollowersResponse": {
        "type": "object",
        "properties": {
          "followers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_private": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramUserFollowingResponse": {
        "type": "object",
        "properties": {
          "following": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_private": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramUserHighlightsResponse": {
        "type": "object",
        "properties": {
          "highlights": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "highlight_id": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "media_count": {
                  "type": "number",
                  "nullable": true
                },
                "cover_url": {
                  "type": "string",
                  "nullable": true
                },
                "created_at": {
                  "type": "string",
                  "nullable": true
                },
                "created_at_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "updated_at": {
                  "type": "string",
                  "nullable": true
                },
                "updated_at_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "is_pinned": {
                  "type": "boolean",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramUserPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_video": {
                  "type": "boolean",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "views": {},
                "media_id": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_duration": {},
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "nullable": true
                },
                "carousel_media_count": {
                  "type": "number",
                  "nullable": true
                },
                "is_paid_partnership": {
                  "type": "boolean",
                  "nullable": true
                },
                "ai_label": {
                  "type": "object",
                  "properties": {
                    "label": {},
                    "detection_method": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "location": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "nullable": true
                    },
                    "city": {
                      "type": "string",
                      "nullable": true
                    },
                    "lat": {
                      "type": "number",
                      "nullable": true
                    },
                    "lng": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "tagged_users": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "username": {
                        "type": "string",
                        "nullable": true
                      },
                      "full_name": {
                        "type": "string",
                        "nullable": true
                      },
                      "user_id": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "coauthors": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "media_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "is_video": {
                        "type": "boolean",
                        "nullable": true
                      },
                      "image_url": {
                        "type": "string",
                        "nullable": true
                      },
                      "video_url": {
                        "type": "string",
                        "nullable": true
                      },
                      "width": {
                        "type": "number",
                        "nullable": true
                      },
                      "height": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "audio": {},
                "is_pinned": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramUserProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "username": {
                "type": "string",
                "nullable": true
              },
              "full_name": {
                "type": "string",
                "nullable": true
              },
              "user_id": {
                "type": "string",
                "nullable": true
              },
              "biography": {
                "type": "string",
                "nullable": true
              },
              "follower_count": {
                "type": "number",
                "nullable": true
              },
              "following_count": {
                "type": "number",
                "nullable": true
              },
              "media_count": {
                "type": "number",
                "nullable": true
              },
              "is_verified": {
                "type": "boolean",
                "nullable": true
              },
              "is_private": {
                "type": "boolean",
                "nullable": true
              },
              "is_business": {
                "type": "boolean",
                "nullable": true
              },
              "category": {
                "type": "string",
                "nullable": true
              },
              "external_url": {
                "type": "string",
                "nullable": true
              },
              "bio_links": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "profile_pic_url": {
                "type": "string",
                "nullable": true
              },
              "profile_pic_url_hd": {
                "type": "string",
                "nullable": true
              },
              "public_email": {
                "type": "string",
                "nullable": true
              },
              "public_phone_number": {
                "type": "string",
                "nullable": true
              },
              "account_based_in": {
                "type": "string",
                "nullable": true
              },
              "date_joined": {
                "type": "string",
                "nullable": true
              },
              "date_joined_timestamp": {
                "type": "number",
                "nullable": true
              },
              "date_verified": {
                "type": "string",
                "nullable": true
              },
              "date_verified_timestamp": {},
              "former_usernames": {
                "type": "number",
                "nullable": true
              },
              "is_ai_generated_profile": {
                "type": "boolean",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "InstagramUserStoriesResponse": {
        "type": "object",
        "properties": {
          "stories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "date_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "expires_at": {
                  "type": "string",
                  "nullable": true
                },
                "expires_at_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "is_video": {
                  "type": "boolean",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "media_id": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_duration": {},
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "nullable": true
                },
                "location": {},
                "tagged_users": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "url": {
                        "type": "string",
                        "nullable": true
                      },
                      "title": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "audio": {},
                "coauthors": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_paid_partnership": {
                  "type": "boolean",
                  "nullable": true
                },
                "ai_label": {
                  "type": "object",
                  "properties": {
                    "label": {},
                    "detection_method": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "LinkedinCompanyDetailsResponse": {
        "type": "object",
        "properties": {
          "call_to_action": {
            "type": "object",
            "properties": {
              "text": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "company_id": {
            "type": "number",
            "nullable": true
          },
          "cover_image": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "employee_range": {
            "type": "string",
            "nullable": true
          },
          "employees": {
            "type": "number",
            "nullable": true
          },
          "followers": {
            "type": "number",
            "nullable": true
          },
          "founded_year": {},
          "hashtag": {
            "type": "string",
            "nullable": true
          },
          "headquarters": {
            "type": "object",
            "properties": {
              "address": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "postal_code": {
                "type": "string",
                "nullable": true
              },
              "region": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "industry": {
            "type": "string",
            "nullable": true
          },
          "locations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "string",
                  "nullable": true
                },
                "address_2": {},
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "description": {},
                "is_headquarters": {
                  "type": "boolean",
                  "nullable": true
                },
                "postal_code": {
                  "type": "string",
                  "nullable": true
                },
                "region": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "logo": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "showcases": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "followers": {
                  "type": "number",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "similar_companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "followers": {
                  "type": "number",
                  "nullable": true
                },
                "industry": {
                  "type": "string",
                  "nullable": true
                },
                "logo": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "specialities": {
            "type": "array",
            "items": {
              "type": "string",
              "nullable": true
            },
            "nullable": true
          },
          "tagline": {},
          "universal_name": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "LinkedinCompanyPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_description": {
                  "type": "string",
                  "nullable": true
                },
                "author_image": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "is_repost": {
                  "type": "boolean",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "appreciation": {
                      "type": "number",
                      "nullable": true
                    },
                    "empathy": {
                      "type": "number",
                      "nullable": true
                    },
                    "entertainment": {
                      "type": "number",
                      "nullable": true
                    },
                    "interest": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    },
                    "praise": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "urn": {
                  "type": "string",
                  "nullable": true
                },
                "video": {
                  "type": "object",
                  "properties": {
                    "duration": {
                      "type": "number",
                      "nullable": true
                    },
                    "thumbnail": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "total": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "LinkedinJobDetailsResponse": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "company_id": {
            "type": "string",
            "nullable": true
          },
          "company_url": {
            "type": "string",
            "nullable": true
          },
          "company_logo": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "job_type": {
            "type": "string",
            "nullable": true
          },
          "experience_level": {
            "type": "string",
            "nullable": true
          },
          "workplace_type": {
            "type": "string",
            "nullable": true
          },
          "industry": {
            "type": "string",
            "nullable": true
          },
          "job_functions": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "salary": {
            "type": "string",
            "nullable": true
          },
          "benefits": {
            "type": "string",
            "nullable": true
          },
          "apply_url": {
            "type": "string",
            "nullable": true
          },
          "applicants": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "LinkedinPersonDetailsResponse": {
        "type": "object",
        "properties": {
          "about": {
            "type": "string",
            "nullable": true
          },
          "certifications": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "connections": {
            "type": "number",
            "nullable": true
          },
          "country_code": {
            "type": "string",
            "nullable": true
          },
          "cover_image": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "education": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "degree": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "end_date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "nullable": true
                    },
                    "year": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "field_of_study": {
                  "type": "string",
                  "nullable": true
                },
                "school": {
                  "type": "string",
                  "nullable": true
                },
                "school_id": {
                  "type": "string",
                  "nullable": true
                },
                "school_logo": {
                  "type": "string",
                  "nullable": true
                },
                "school_url": {
                  "type": "string",
                  "nullable": true
                },
                "start_date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "nullable": true
                    },
                    "year": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "experience": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "company": {
                  "type": "string",
                  "nullable": true
                },
                "company_id": {
                  "type": "string",
                  "nullable": true
                },
                "company_logo": {
                  "type": "string",
                  "nullable": true
                },
                "company_url": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "employment_type": {
                  "type": "string",
                  "nullable": true
                },
                "end_date": {},
                "is_current": {
                  "type": "boolean",
                  "nullable": true
                },
                "location": {
                  "type": "string",
                  "nullable": true
                },
                "start_date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "nullable": true
                    },
                    "year": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "first_name": {
            "type": "string",
            "nullable": true
          },
          "followers": {
            "type": "number",
            "nullable": true
          },
          "full_name": {
            "type": "string",
            "nullable": true
          },
          "headline": {
            "type": "string",
            "nullable": true
          },
          "honors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "issued_date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "nullable": true
                    },
                    "year": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "issuer": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "is_creator": {
            "type": "boolean",
            "nullable": true
          },
          "is_premium": {
            "type": "boolean",
            "nullable": true
          },
          "languages": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "last_name": {
            "type": "string",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "open_to_work": {
            "type": "boolean",
            "nullable": true
          },
          "profile_picture": {
            "type": "string",
            "nullable": true
          },
          "projects": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "public_identifier": {
            "type": "string",
            "nullable": true
          },
          "publications": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "published_date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "nullable": true
                    },
                    "year": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "publisher": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "skills": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "endorsements": {
                  "type": "number",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "urn": {
            "type": "string",
            "nullable": true
          },
          "volunteering": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "end_date": {},
                "organization": {
                  "type": "string",
                  "nullable": true
                },
                "role": {
                  "type": "string",
                  "nullable": true
                },
                "start_date": {
                  "type": "object",
                  "properties": {
                    "month": {
                      "type": "number",
                      "nullable": true
                    },
                    "year": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "LinkedinPersonPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "article": {},
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_description": {
                  "type": "string",
                  "nullable": true
                },
                "author_image": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "images": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_repost": {
                  "type": "boolean",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "appreciation": {
                      "type": "number",
                      "nullable": true
                    },
                    "empathy": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "text": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "urn": {
                  "type": "string",
                  "nullable": true
                },
                "video": {
                  "type": "object",
                  "properties": {
                    "duration": {
                      "type": "number",
                      "nullable": true
                    },
                    "thumbnail": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "LinkedinPostDetailsResponse": {
        "type": "object",
        "properties": {
          "author": {
            "type": "string",
            "nullable": true
          },
          "author_description": {
            "type": "string",
            "nullable": true
          },
          "author_image": {
            "type": "string",
            "nullable": true
          },
          "author_url": {
            "type": "string",
            "nullable": true
          },
          "comments": {
            "type": "number",
            "nullable": true
          },
          "date": {
            "type": "string",
            "nullable": true
          },
          "domain": {
            "type": "string",
            "nullable": true
          },
          "images": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "is_repost": {
            "type": "boolean",
            "nullable": true
          },
          "likes": {
            "type": "number",
            "nullable": true
          },
          "links": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "reactions": {
            "type": "object",
            "properties": {
              "interest": {
                "type": "number",
                "nullable": true
              },
              "like": {
                "type": "number",
                "nullable": true
              }
            },
            "nullable": true
          },
          "shares": {
            "type": "number",
            "nullable": true
          },
          "source": {
            "type": "string",
            "nullable": true
          },
          "text": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "urn": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "PlaceDetailsResponse": {
        "type": "object",
        "properties": {
          "place": {
            "type": "object",
            "properties": {
              "place_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "type": {
                "type": "string",
                "nullable": true
              },
              "subtypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "phone_number": {
                "type": "string",
                "nullable": true
              },
              "website": {
                "type": "string",
                "nullable": true
              },
              "domain": {
                "type": "string",
                "nullable": true
              },
              "rating": {
                "type": "number",
                "nullable": true
              },
              "review_count": {
                "type": "number",
                "nullable": true
              },
              "reviews_per_rating": {
                "type": "object",
                "properties": {
                  "1": {
                    "type": "number",
                    "nullable": true
                  },
                  "2": {
                    "type": "number",
                    "nullable": true
                  },
                  "3": {
                    "type": "number",
                    "nullable": true
                  },
                  "4": {
                    "type": "number",
                    "nullable": true
                  },
                  "5": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "price_level": {
                "type": "string",
                "nullable": true
              },
              "verified": {
                "type": "boolean",
                "nullable": true
              },
              "business_status": {
                "type": "string",
                "nullable": true
              },
              "opening_status": {
                "type": "string",
                "nullable": true
              },
              "working_hours": {
                "type": "object",
                "properties": {
                  "Monday": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "nullable": true
                    },
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "opening_date": {},
              "address": {
                "type": "string",
                "nullable": true
              },
              "street_address": {
                "type": "string",
                "nullable": true
              },
              "district": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "state": {
                "type": "string",
                "nullable": true
              },
              "zipcode": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "latitude": {
                "type": "number",
                "nullable": true
              },
              "longitude": {
                "type": "number",
                "nullable": true
              },
              "timezone": {
                "type": "string",
                "nullable": true
              },
              "summary": {
                "type": "string",
                "nullable": true
              },
              "about": {
                "type": "object",
                "properties": {
                  "summary": {
                    "type": "string",
                    "nullable": true
                  },
                  "details": {
                    "type": "object",
                    "properties": {
                      "Accessibility": {
                        "type": "object",
                        "properties": {
                          "Wheelchair accessible entrance": {
                            "type": "boolean",
                            "nullable": true
                          },
                          "Wheelchair accessible parking lot": {
                            "type": "boolean",
                            "nullable": true
                          },
                          "Wheelchair accessible seating": {
                            "type": "boolean",
                            "nullable": true
                          }
                        },
                        "nullable": true
                      }
                    },
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "photo_count": {
                "type": "number",
                "nullable": true
              },
              "photos_sample": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "photo_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "type": {
                      "type": "string",
                      "nullable": true
                    },
                    "photo_url": {
                      "type": "string",
                      "nullable": true
                    },
                    "photo_url_large": {
                      "type": "string",
                      "nullable": true
                    },
                    "video_thumbnail_url": {},
                    "latitude": {
                      "type": "number",
                      "nullable": true
                    },
                    "longitude": {
                      "type": "number",
                      "nullable": true
                    },
                    "photo_datetime_utc": {
                      "type": "string",
                      "nullable": true
                    },
                    "photo_timestamp": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "place_link": {
                "type": "string",
                "nullable": true
              },
              "reviews_link": {
                "type": "string",
                "nullable": true
              },
              "booking_link": {
                "type": "string",
                "nullable": true
              },
              "reservations_link": {
                "type": "string",
                "nullable": true
              },
              "order_link": {
                "type": "string",
                "nullable": true
              },
              "owner_name": {
                "type": "string",
                "nullable": true
              },
              "owner_link": {
                "type": "string",
                "nullable": true
              },
              "cid": {
                "type": "string",
                "nullable": true
              },
              "global_plus_code": {
                "type": "string",
                "nullable": true
              },
              "compound_plus_code": {
                "type": "string",
                "nullable": true
              },
              "menu_link": {},
              "emails_and_contacts": {
                "type": "object",
                "properties": {
                  "emails": {
                    "type": "array",
                    "items": {},
                    "nullable": true
                  },
                  "phone_numbers": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "nullable": true
                    },
                    "nullable": true
                  },
                  "facebook": {},
                  "instagram": {
                    "type": "string",
                    "nullable": true
                  },
                  "linkedin": {},
                  "twitter": {},
                  "tiktok": {},
                  "youtube": {},
                  "pinterest": {},
                  "snapchat": {},
                  "yelp": {},
                  "github": {}
                },
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "PlacePhotosResponse": {
        "type": "object",
        "properties": {
          "photos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "photo_id": {
                  "type": "string",
                  "nullable": true
                },
                "type": {
                  "type": "string",
                  "nullable": true
                },
                "photo_url": {
                  "type": "string",
                  "nullable": true
                },
                "photo_url_large": {
                  "type": "string",
                  "nullable": true
                },
                "video_thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "latitude": {
                  "type": "number",
                  "nullable": true
                },
                "longitude": {
                  "type": "number",
                  "nullable": true
                },
                "photo_datetime_utc": {
                  "type": "string",
                  "nullable": true
                },
                "photo_timestamp": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "PlaceReviewsResponse": {
        "type": "object",
        "properties": {
          "reviews": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "review_id": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "review_text": {
                  "type": "string",
                  "nullable": true
                },
                "review_datetime_utc": {
                  "type": "string",
                  "nullable": true
                },
                "review_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "review_time": {
                  "type": "string",
                  "nullable": true
                },
                "review_link": {
                  "type": "string",
                  "nullable": true
                },
                "review_photos": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "review_language": {
                  "type": "string",
                  "nullable": true
                },
                "review_text_translated_language": {
                  "type": "string",
                  "nullable": true
                },
                "like_count": {
                  "type": "number",
                  "nullable": true
                },
                "review_source": {
                  "type": "string",
                  "nullable": true
                },
                "review_source_logo": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_link": {
                  "type": "string",
                  "nullable": true
                },
                "author_photo_url": {
                  "type": "string",
                  "nullable": true
                },
                "author_review_count": {
                  "type": "number",
                  "nullable": true
                },
                "author_photo_count": {
                  "type": "number",
                  "nullable": true
                },
                "author_reviews_link": {
                  "type": "string",
                  "nullable": true
                },
                "author_is_local_guide": {
                  "type": "boolean",
                  "nullable": true
                },
                "author_local_guide_level": {
                  "type": "number",
                  "nullable": true
                },
                "owner_response": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "sort_by": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchAmazonProductsResponse": {
        "type": "object",
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "asin": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "price": {
                  "type": "string",
                  "nullable": true
                },
                "original_price": {},
                "unit_price": {},
                "unit_count": {},
                "currency": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "num_ratings": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "photo": {
                  "type": "string",
                  "nullable": true
                },
                "num_offers": {
                  "type": "number",
                  "nullable": true
                },
                "minimum_offer_price": {
                  "type": "string",
                  "nullable": true
                },
                "is_best_seller": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_amazon_choice": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_prime": {
                  "type": "boolean",
                  "nullable": true
                },
                "climate_pledge_friendly": {
                  "type": "boolean",
                  "nullable": true
                },
                "sales_volume": {
                  "type": "string",
                  "nullable": true
                },
                "delivery": {
                  "type": "string",
                  "nullable": true
                },
                "availability": {},
                "has_variations": {
                  "type": "boolean",
                  "nullable": true
                },
                "badge": {
                  "type": "string",
                  "nullable": true
                },
                "coupon_text": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "total_products": {
            "type": "number",
            "nullable": true
          },
          "query": {
            "type": "string",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchBlueskyResponse": {
        "type": "object",
        "properties": {
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "in_reply_to_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "quoted_post": {},
                "hashtags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "links": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "link_preview": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "image_url": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchBlueskyUsersResponse": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "biography": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "date_joined": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchFacebookEventsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "event_id": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchFacebookLocationsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "nullable": true
                },
                "label": {
                  "type": "string",
                  "nullable": true
                },
                "timezone": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchFacebookPagesResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "facebook_id": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "profile_url": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchFacebookPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_profile_picture": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "comments_count": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "external_url": {},
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "message": {
                  "type": "string",
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "angry": {
                      "type": "number",
                      "nullable": true
                    },
                    "care": {
                      "type": "number",
                      "nullable": true
                    },
                    "haha": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    },
                    "love": {
                      "type": "number",
                      "nullable": true
                    },
                    "sad": {
                      "type": "number",
                      "nullable": true
                    },
                    "wow": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "reactions_count": {
                  "type": "number",
                  "nullable": true
                },
                "reshare_count": {
                  "type": "number",
                  "nullable": true
                },
                "timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video": {}
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchFacebookVideosResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "videos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_url": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail": {
                  "type": "string",
                  "nullable": true
                },
                "time_and_views": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "video_id": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchForumsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "position": {
                  "type": "number",
                  "nullable": true
                },
                "rank": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchInstagramResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "is_video": {
                  "type": "boolean",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                },
                "media_id": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_duration": {
                  "type": "number",
                  "nullable": true
                },
                "width": {
                  "type": "number",
                  "nullable": true
                },
                "height": {
                  "type": "number",
                  "nullable": true
                },
                "carousel_media_count": {
                  "type": "number",
                  "nullable": true
                },
                "is_paid_partnership": {
                  "type": "boolean",
                  "nullable": true
                },
                "ai_label": {
                  "type": "object",
                  "properties": {
                    "label": {},
                    "detection_method": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "location": {},
                "tagged_users": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "coauthors": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "media_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "is_video": {
                        "type": "boolean",
                        "nullable": true
                      },
                      "image_url": {
                        "type": "string",
                        "nullable": true
                      },
                      "video_url": {
                        "type": "string",
                        "nullable": true
                      },
                      "width": {
                        "type": "number",
                        "nullable": true
                      },
                      "height": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "audio": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "artist": {
                      "type": "string",
                      "nullable": true
                    },
                    "audio_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "duration_ms": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchInstagramUsersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "is_private": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "is_ai_generated_profile": {
                  "type": "boolean",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchLinkedinCompaniesResponse": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "company_id": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "followers": {
                  "type": "string",
                  "nullable": true
                },
                "logo": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "subtitle": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchLinkedinJobsResponse": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "company": {
                  "type": "string",
                  "nullable": true
                },
                "company_id": {
                  "type": "string",
                  "nullable": true
                },
                "company_url": {
                  "type": "string",
                  "nullable": true
                },
                "company_logo": {
                  "type": "string",
                  "nullable": true
                },
                "location": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "job_type": {
                  "type": "string",
                  "nullable": true
                },
                "experience_level": {
                  "type": "string",
                  "nullable": true
                },
                "workplace_type": {
                  "type": "string",
                  "nullable": true
                },
                "industry": {
                  "type": "string",
                  "nullable": true
                },
                "job_functions": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "salary": {
                  "type": "string",
                  "nullable": true
                },
                "benefits": {
                  "type": "string",
                  "nullable": true
                },
                "apply_url": {
                  "type": "string",
                  "nullable": true
                },
                "applicants": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchLinkedinResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "article": {
                  "type": "object",
                  "properties": {
                    "description": {
                      "type": "string",
                      "nullable": true
                    },
                    "subtitle": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "url": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "has_content_entities": {
                  "type": "boolean",
                  "nullable": true
                },
                "images": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "job": {},
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "reactions": {
                  "type": "object",
                  "properties": {
                    "interest": {
                      "type": "number",
                      "nullable": true
                    },
                    "like": {
                      "type": "number",
                      "nullable": true
                    },
                    "appreciation": {
                      "type": "number",
                      "nullable": true
                    },
                    "entertainment": {
                      "type": "number",
                      "nullable": true
                    },
                    "praise": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "urn": {
                  "type": "string",
                  "nullable": true
                },
                "video": {
                  "type": "object",
                  "properties": {
                    "duration": {
                      "type": "number",
                      "nullable": true
                    },
                    "thumbnail": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchNewsResponse": {
        "type": "object",
        "properties": {
          "articles": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "authors": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "photo_url": {
                  "type": "string",
                  "nullable": true
                },
                "published_datetime_utc": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source_favicon_url": {
                  "type": "string",
                  "nullable": true
                },
                "source_name": {
                  "type": "string",
                  "nullable": true
                },
                "source_url": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail_url": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "limit": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchPlacesResponse": {
        "type": "object",
        "properties": {
          "places": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "place_id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "type": {
                  "type": "string",
                  "nullable": true
                },
                "subtypes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "phone_number": {
                  "type": "string",
                  "nullable": true
                },
                "website": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "review_count": {
                  "type": "number",
                  "nullable": true
                },
                "reviews_per_rating": {
                  "type": "object",
                  "properties": {
                    "1": {
                      "type": "number",
                      "nullable": true
                    },
                    "2": {
                      "type": "number",
                      "nullable": true
                    },
                    "3": {
                      "type": "number",
                      "nullable": true
                    },
                    "4": {
                      "type": "number",
                      "nullable": true
                    },
                    "5": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "price_level": {
                  "type": "string",
                  "nullable": true
                },
                "verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "business_status": {
                  "type": "string",
                  "nullable": true
                },
                "opening_status": {
                  "type": "string",
                  "nullable": true
                },
                "working_hours": {
                  "type": "object",
                  "properties": {
                    "Monday": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "nullable": true
                      },
                      "nullable": true
                    },
                    "Sunday": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "nullable": true
                      },
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "opening_date": {},
                "address": {
                  "type": "string",
                  "nullable": true
                },
                "street_address": {
                  "type": "string",
                  "nullable": true
                },
                "district": {
                  "type": "string",
                  "nullable": true
                },
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "state": {
                  "type": "string",
                  "nullable": true
                },
                "zipcode": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "latitude": {
                  "type": "number",
                  "nullable": true
                },
                "longitude": {
                  "type": "number",
                  "nullable": true
                },
                "timezone": {
                  "type": "string",
                  "nullable": true
                },
                "summary": {
                  "type": "string",
                  "nullable": true
                },
                "about": {
                  "type": "object",
                  "properties": {
                    "summary": {
                      "type": "string",
                      "nullable": true
                    },
                    "details": {
                      "type": "object",
                      "properties": {
                        "Accessibility": {
                          "type": "object",
                          "properties": {
                            "Wheelchair accessible entrance": {
                              "type": "boolean",
                              "nullable": true
                            },
                            "Wheelchair accessible parking lot": {
                              "type": "boolean",
                              "nullable": true
                            },
                            "Wheelchair accessible seating": {
                              "type": "boolean",
                              "nullable": true
                            }
                          },
                          "nullable": true
                        }
                      },
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "photo_count": {
                  "type": "number",
                  "nullable": true
                },
                "photos_sample": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "photo_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "type": {
                        "type": "string",
                        "nullable": true
                      },
                      "photo_url": {
                        "type": "string",
                        "nullable": true
                      },
                      "photo_url_large": {
                        "type": "string",
                        "nullable": true
                      },
                      "video_thumbnail_url": {},
                      "latitude": {
                        "type": "number",
                        "nullable": true
                      },
                      "longitude": {
                        "type": "number",
                        "nullable": true
                      },
                      "photo_datetime_utc": {
                        "type": "string",
                        "nullable": true
                      },
                      "photo_timestamp": {
                        "type": "number",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "place_link": {
                  "type": "string",
                  "nullable": true
                },
                "reviews_link": {
                  "type": "string",
                  "nullable": true
                },
                "booking_link": {
                  "type": "string",
                  "nullable": true
                },
                "reservations_link": {
                  "type": "string",
                  "nullable": true
                },
                "order_link": {
                  "type": "string",
                  "nullable": true
                },
                "owner_name": {
                  "type": "string",
                  "nullable": true
                },
                "owner_link": {
                  "type": "string",
                  "nullable": true
                },
                "cid": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "query": {
            "type": "string",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchRedditCommentsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "subreddit": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "type": {
                  "type": "string",
                  "nullable": true
                },
                "upvotes": {
                  "type": "number",
                  "nullable": true
                },
                "post_upvotes": {
                  "type": "number",
                  "nullable": true
                },
                "post_comments": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchRedditResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "subreddit": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "upvotes": {
                  "type": "number",
                  "nullable": true
                },
                "upvote_ratio": {
                  "type": "number",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "crossposts": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchRedditUsersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "comment_karma": {
                  "type": "number",
                  "nullable": true
                },
                "created_at": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "has_verified_email": {
                  "type": "boolean",
                  "nullable": true
                },
                "icon_img": {
                  "type": "string",
                  "nullable": true
                },
                "is_gold": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_mod": {
                  "type": "boolean",
                  "nullable": true
                },
                "link_karma": {
                  "type": "number",
                  "nullable": true
                },
                "total_karma": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchThreadsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "reshares": {
                  "type": "number",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "link_preview": {},
                "quoted_post": {},
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "code": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchThreadsUsersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "full_name": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_private": {
                  "type": "boolean",
                  "nullable": true
                },
                "profile_pic_url": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchTiktokResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "videos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_avatar": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "comments": {
                  "type": "number",
                  "nullable": true
                },
                "cover": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "downloads": {
                  "type": "number",
                  "nullable": true
                },
                "duration": {
                  "type": "number",
                  "nullable": true
                },
                "is_ad": {
                  "type": "boolean",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "music_author": {
                  "type": "string",
                  "nullable": true
                },
                "music_title": {
                  "type": "string",
                  "nullable": true
                },
                "play_count": {
                  "type": "number",
                  "nullable": true
                },
                "shares": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchTiktokUsersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "avatar": {
                  "type": "string",
                  "nullable": true
                },
                "bio": {
                  "type": "string",
                  "nullable": true
                },
                "followers": {
                  "type": "number",
                  "nullable": true
                },
                "following": {
                  "type": "number",
                  "nullable": true
                },
                "is_private": {
                  "type": "boolean",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "nickname": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "video_count": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchTrustpilotCategoriesResponse": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "category_id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "query": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchTrustpilotCompaniesResponse": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "business_unit_id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "website": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "logo": {},
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "stars": {
                  "type": "number",
                  "nullable": true
                },
                "review_count": {
                  "type": "number",
                  "nullable": true
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "category_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "is_primary": {
                        "type": "boolean",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "city": {},
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "address": {},
                "zipcode": {},
                "is_recommended": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "total_pages": {
            "type": "number",
            "nullable": true
          },
          "total_results": {
            "type": "number",
            "nullable": true
          },
          "query": {
            "type": "string",
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "category_id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchTwitterResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_followers": {
                  "type": "number",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "retweets": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_mentions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchTwitterUsersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "created_at": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "followers_count": {
                  "type": "number",
                  "nullable": true
                },
                "following_count": {
                  "type": "number",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "profile_image_url": {
                  "type": "string",
                  "nullable": true
                },
                "tweet_count": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "verified": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchWebResponse": {
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "position": {
                  "type": "number",
                  "nullable": true
                },
                "rank": {
                  "type": "number",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "displayed_link": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "ai_overview": {
            "type": "object",
            "properties": {
              "text_parts": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "nullable": true
                    },
                    "text": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "reference_links": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "title": {
                      "type": "string",
                      "nullable": true
                    },
                    "link": {
                      "type": "string",
                      "nullable": true
                    },
                    "source": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchYoutubeChannelsResponse": {
        "type": "object",
        "properties": {
          "channels": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "channel_id": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "subscriber_count": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "SearchYoutubeResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "channel_id": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "is_live": {},
                "keywords": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "thumbnail": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "type": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "video_id": {
                  "type": "string",
                  "nullable": true
                },
                "video_length": {
                  "type": "string",
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "ThreadsUserPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "reshares": {
                  "type": "number",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_pinned": {
                  "type": "boolean",
                  "nullable": true
                },
                "media_type": {
                  "type": "string",
                  "nullable": true
                },
                "image_url": {
                  "type": "string",
                  "nullable": true
                },
                "video_url": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "carousel_media": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "link_preview": {},
                "quoted_post": {},
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "code": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "ThreadsUserProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "username": {
                "type": "string",
                "nullable": true
              },
              "full_name": {
                "type": "string",
                "nullable": true
              },
              "user_id": {
                "type": "string",
                "nullable": true
              },
              "biography": {
                "type": "string",
                "nullable": true
              },
              "follower_count": {
                "type": "number",
                "nullable": true
              },
              "is_verified": {
                "type": "boolean",
                "nullable": true
              },
              "is_private": {
                "type": "boolean",
                "nullable": true
              },
              "profile_pic_url": {
                "type": "string",
                "nullable": true
              },
              "profile_pic_url_hd": {
                "type": "string",
                "nullable": true
              },
              "bio_links": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "nullable": true
                    },
                    "title": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "profile_tags": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TiktokUserProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "username": {
                "type": "string",
                "nullable": true
              },
              "nickname": {
                "type": "string",
                "nullable": true
              },
              "user_id": {
                "type": "string",
                "nullable": true
              },
              "sec_uid": {
                "type": "string",
                "nullable": true
              },
              "bio": {
                "type": "string",
                "nullable": true
              },
              "bio_link": {
                "type": "string",
                "nullable": true
              },
              "verified": {
                "type": "boolean",
                "nullable": true
              },
              "is_private": {
                "type": "boolean",
                "nullable": true
              },
              "followers": {
                "type": "number",
                "nullable": true
              },
              "following": {
                "type": "number",
                "nullable": true
              },
              "likes": {
                "type": "number",
                "nullable": true
              },
              "video_count": {
                "type": "number",
                "nullable": true
              },
              "videos_liked": {
                "type": "number",
                "nullable": true
              },
              "avatar": {
                "type": "string",
                "nullable": true
              },
              "avatar_hd": {
                "type": "string",
                "nullable": true
              },
              "date_joined": {
                "type": "string",
                "nullable": true
              },
              "date_joined_timestamp": {
                "type": "number",
                "nullable": true
              },
              "instagram_username": {
                "type": "string",
                "nullable": true
              },
              "twitter_id": {
                "type": "string",
                "nullable": true
              },
              "youtube_channel_id": {
                "type": "string",
                "nullable": true
              },
              "youtube_channel_title": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TiktokVideoDetailsResponse": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "video_id": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "title": {
                "type": "string",
                "nullable": true
              },
              "region": {
                "type": "string",
                "nullable": true
              },
              "date": {
                "type": "string",
                "nullable": true
              },
              "date_timestamp": {
                "type": "number",
                "nullable": true
              },
              "duration": {
                "type": "number",
                "nullable": true
              },
              "play_count": {
                "type": "number",
                "nullable": true
              },
              "likes": {
                "type": "number",
                "nullable": true
              },
              "comments": {
                "type": "number",
                "nullable": true
              },
              "shares": {
                "type": "number",
                "nullable": true
              },
              "downloads": {
                "type": "number",
                "nullable": true
              },
              "saves": {
                "type": "number",
                "nullable": true
              },
              "is_ad": {
                "type": "boolean",
                "nullable": true
              },
              "cover": {
                "type": "string",
                "nullable": true
              },
              "dynamic_cover": {
                "type": "string",
                "nullable": true
              },
              "origin_cover": {
                "type": "string",
                "nullable": true
              },
              "video_url": {
                "type": "string",
                "nullable": true
              },
              "video_url_hd": {
                "type": "string",
                "nullable": true
              },
              "video_url_watermarked": {
                "type": "string",
                "nullable": true
              },
              "size": {
                "type": "number",
                "nullable": true
              },
              "size_hd": {
                "type": "number",
                "nullable": true
              },
              "size_watermarked": {
                "type": "number",
                "nullable": true
              },
              "author": {
                "type": "string",
                "nullable": true
              },
              "author_name": {
                "type": "string",
                "nullable": true
              },
              "author_id": {
                "type": "string",
                "nullable": true
              },
              "author_avatar": {
                "type": "string",
                "nullable": true
              },
              "author_url": {
                "type": "string",
                "nullable": true
              },
              "music_id": {
                "type": "string",
                "nullable": true
              },
              "music_title": {
                "type": "string",
                "nullable": true
              },
              "music_author": {
                "type": "string",
                "nullable": true
              },
              "music_url": {
                "type": "string",
                "nullable": true
              },
              "music_cover": {
                "type": "string",
                "nullable": true
              },
              "music_album": {
                "type": "string",
                "nullable": true
              },
              "music_original": {
                "type": "boolean",
                "nullable": true
              },
              "music_duration": {
                "type": "number",
                "nullable": true
              },
              "mentioned_user_ids": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TimeResponse": {
        "type": "object",
        "properties": {
          "timestamp": {
            "type": "string",
            "description": "ISO 8601 UTC time."
          },
          "unix": {
            "type": "integer",
            "description": "Unix time in seconds."
          },
          "formatted": {
            "type": "string",
            "description": "Human-readable UTC time."
          }
        }
      },
      "TrustpilotCategoryCompaniesResponse": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "business_unit_id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "website": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "logo": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "stars": {
                  "type": "number",
                  "nullable": true
                },
                "review_count": {
                  "type": "number",
                  "nullable": true
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "category_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "is_primary": {
                        "type": "boolean",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "address": {
                  "type": "string",
                  "nullable": true
                },
                "zipcode": {
                  "type": "string",
                  "nullable": true
                },
                "is_recommended": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "total_pages": {
            "type": "number",
            "nullable": true
          },
          "total_companies": {
            "type": "number",
            "nullable": true
          },
          "category": {
            "type": "object",
            "properties": {
              "category_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "business_count": {
                "type": "number",
                "nullable": true
              },
              "parent_id": {},
              "url": {
                "type": "string",
                "nullable": true
              },
              "subcategories": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "category_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "name": {
                      "type": "string",
                      "nullable": true
                    },
                    "business_count": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TrustpilotCategoryDetailsResponse": {
        "type": "object",
        "properties": {
          "category": {
            "type": "object",
            "properties": {
              "category_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "business_count": {
                "type": "number",
                "nullable": true
              },
              "parent_id": {},
              "url": {
                "type": "string",
                "nullable": true
              },
              "subcategories": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "category_id": {
                      "type": "string",
                      "nullable": true
                    },
                    "name": {
                      "type": "string",
                      "nullable": true
                    },
                    "business_count": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TrustpilotCategoryNewestResponse": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "business_unit_id": {
                  "type": "string",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "website": {},
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "logo": {},
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "stars": {
                  "type": "number",
                  "nullable": true
                },
                "review_count": {
                  "type": "number",
                  "nullable": true
                },
                "categories": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "category_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "name": {
                        "type": "string",
                        "nullable": true
                      },
                      "is_primary": {
                        "type": "boolean",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "city": {
                  "type": "string",
                  "nullable": true
                },
                "country": {
                  "type": "string",
                  "nullable": true
                },
                "address": {},
                "zipcode": {},
                "is_recommended": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "category": {
            "type": "object",
            "properties": {
              "category_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "business_count": {
                "type": "number",
                "nullable": true
              },
              "parent_id": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "subcategories": {
                "type": "array",
                "items": {},
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TrustpilotCompanyReviewsResponse": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {
              "business_unit_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "domain": {
                "type": "string",
                "nullable": true
              },
              "website": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "logo": {
                "type": "string",
                "nullable": true
              },
              "rating": {
                "type": "number",
                "nullable": true
              },
              "stars": {
                "type": "number",
                "nullable": true
              },
              "review_count": {
                "type": "number",
                "nullable": true
              },
              "review_count_last_12_months": {
                "type": "number",
                "nullable": true
              },
              "reviews_per_rating": {
                "type": "object",
                "properties": {
                  "1": {
                    "type": "number",
                    "nullable": true
                  },
                  "2": {
                    "type": "number",
                    "nullable": true
                  },
                  "3": {
                    "type": "number",
                    "nullable": true
                  },
                  "4": {
                    "type": "number",
                    "nullable": true
                  },
                  "5": {
                    "type": "number",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "categories": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "category_path": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "is_claimed": {
                "type": "boolean",
                "nullable": true
              },
              "claimed_date": {
                "type": "string",
                "nullable": true
              },
              "is_closed": {
                "type": "boolean",
                "nullable": true
              },
              "is_temporarily_closed": {
                "type": "boolean",
                "nullable": true
              },
              "is_collecting_reviews": {
                "type": "boolean",
                "nullable": true
              },
              "verification": {
                "type": "object",
                "properties": {
                  "verified_payment_method": {
                    "type": "boolean",
                    "nullable": true
                  },
                  "verified_user_identity": {
                    "type": "boolean",
                    "nullable": true
                  },
                  "verified_by_google": {
                    "type": "boolean",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "reply_behavior": {
                "type": "object",
                "properties": {
                  "reply_percentage": {
                    "type": "number",
                    "nullable": true
                  },
                  "average_days_to_reply": {
                    "type": "number",
                    "nullable": true
                  },
                  "negative_reviews_with_replies": {
                    "type": "number",
                    "nullable": true
                  },
                  "total_negative_reviews": {
                    "type": "number",
                    "nullable": true
                  },
                  "last_reply_to_negative": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "nullable": true
              },
              "email": {
                "type": "string",
                "nullable": true
              },
              "phone_number": {
                "type": "string",
                "nullable": true
              },
              "address": {
                "type": "string",
                "nullable": true
              },
              "city": {
                "type": "string",
                "nullable": true
              },
              "zipcode": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "locations_count": {
                "type": "number",
                "nullable": true
              },
              "topics": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              }
            },
            "nullable": true
          },
          "reviews": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "review_id": {
                  "type": "string",
                  "nullable": true
                },
                "review_link": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "review_text": {
                  "type": "string",
                  "nullable": true
                },
                "review_language": {
                  "type": "string",
                  "nullable": true
                },
                "review_datetime_utc": {
                  "type": "string",
                  "nullable": true
                },
                "review_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "experience_date": {
                  "type": "string",
                  "nullable": true
                },
                "updated_datetime_utc": {},
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "verification_level": {
                  "type": "string",
                  "nullable": true
                },
                "like_count": {
                  "type": "number",
                  "nullable": true
                },
                "author_id": {
                  "type": "string",
                  "nullable": true
                },
                "author_name": {
                  "type": "string",
                  "nullable": true
                },
                "author_country": {
                  "type": "string",
                  "nullable": true
                },
                "author_review_count": {
                  "type": "number",
                  "nullable": true
                },
                "author_link": {
                  "type": "string",
                  "nullable": true
                },
                "owner_response": {}
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "sort_by": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TrustpilotUserProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "user_id": {
                "type": "string",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "review_count": {
                "type": "number",
                "nullable": true
              },
              "verified": {
                "type": "boolean",
                "nullable": true
              },
              "has_product_reviews": {
                "type": "boolean",
                "nullable": true
              },
              "likes": {
                "type": "number",
                "nullable": true
              },
              "reads": {
                "type": "number",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "reviews": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "review_id": {
                  "type": "string",
                  "nullable": true
                },
                "review_link": {
                  "type": "string",
                  "nullable": true
                },
                "rating": {
                  "type": "number",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "review_text": {
                  "type": "string",
                  "nullable": true
                },
                "review_language": {
                  "type": "string",
                  "nullable": true
                },
                "review_datetime_utc": {
                  "type": "string",
                  "nullable": true
                },
                "review_timestamp": {
                  "type": "number",
                  "nullable": true
                },
                "experience_date": {
                  "type": "string",
                  "nullable": true
                },
                "updated_datetime_utc": {
                  "type": "string",
                  "nullable": true
                },
                "is_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "verification_level": {
                  "type": "string",
                  "nullable": true
                },
                "like_count": {
                  "type": "number",
                  "nullable": true
                },
                "company_name": {
                  "type": "string",
                  "nullable": true
                },
                "company_domain": {
                  "type": "string",
                  "nullable": true
                },
                "company_url": {
                  "type": "string",
                  "nullable": true
                },
                "business_unit_id": {
                  "type": "string",
                  "nullable": true
                },
                "owner_response": {
                  "type": "object",
                  "properties": {
                    "text": {
                      "type": "string",
                      "nullable": true
                    },
                    "datetime_utc": {
                      "type": "string",
                      "nullable": true
                    },
                    "timestamp": {
                      "type": "number",
                      "nullable": true
                    }
                  },
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "page": {
            "type": "number",
            "nullable": true
          },
          "total_pages": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TruthsocialUserPostsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "posts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "reposts": {
                  "type": "number",
                  "nullable": true
                },
                "post_id": {
                  "type": "string",
                  "nullable": true
                },
                "content_html": {
                  "type": "string",
                  "nullable": true
                },
                "media": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "media_id": {
                        "type": "string",
                        "nullable": true
                      },
                      "type": {
                        "type": "string",
                        "nullable": true
                      },
                      "url": {
                        "type": "string",
                        "nullable": true
                      },
                      "description": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "nullable": true
                  },
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "language": {
                  "type": "string",
                  "nullable": true
                },
                "visibility": {
                  "type": "string",
                  "nullable": true
                },
                "sensitive": {
                  "type": "boolean",
                  "nullable": true
                },
                "spoiler_text": {
                  "type": "string",
                  "nullable": true
                },
                "sponsored": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "in_reply_to_id": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterTrendsResponse": {
        "type": "object",
        "properties": {
          "as_of": {
            "type": "string",
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "location": {
            "type": "string",
            "nullable": true
          },
          "trends": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "query": {
                  "type": "string",
                  "nullable": true
                },
                "tweet_volume": {},
                "url": {
                  "type": "string",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "woeid": {
            "type": "number",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterTweetCommentsResponse": {
        "type": "object",
        "properties": {
          "comments": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_followers": {
                  "type": "number",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "retweets": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_mentions": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "tweet_id": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterTweetDetailsResponse": {
        "type": "object",
        "properties": {
          "tweet": {
            "type": "object",
            "properties": {
              "author": {
                "type": "string",
                "nullable": true
              },
              "author_followers": {
                "type": "number",
                "nullable": true
              },
              "author_verified": {
                "type": "boolean",
                "nullable": true
              },
              "bookmarks": {
                "type": "number",
                "nullable": true
              },
              "date": {
                "type": "string",
                "nullable": true
              },
              "domain": {
                "type": "string",
                "nullable": true
              },
              "hashtags": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "is_quote": {
                "type": "boolean",
                "nullable": true
              },
              "is_reply": {
                "type": "boolean",
                "nullable": true
              },
              "lang": {
                "type": "string",
                "nullable": true
              },
              "likes": {
                "type": "number",
                "nullable": true
              },
              "quotes": {
                "type": "number",
                "nullable": true
              },
              "replies": {
                "type": "number",
                "nullable": true
              },
              "retweets": {
                "type": "number",
                "nullable": true
              },
              "snippet": {
                "type": "string",
                "nullable": true
              },
              "source": {
                "type": "string",
                "nullable": true
              },
              "title": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "user_mentions": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "views": {
                "type": "number",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterTweetQuotesResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "quotes": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "tweet_id": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterTweetRetweetsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "retweets": {
            "type": "array",
            "items": {},
            "nullable": true
          },
          "tweet_id": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterUserFollowersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "followers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "created_at": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "followers_count": {
                  "type": "number",
                  "nullable": true
                },
                "following_count": {
                  "type": "number",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "profile_image_url": {
                  "type": "string",
                  "nullable": true
                },
                "tweet_count": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "verified": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterUserFollowingResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "following": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "created_at": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "followers_count": {
                  "type": "number",
                  "nullable": true
                },
                "following_count": {
                  "type": "number",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "profile_image_url": {
                  "type": "string",
                  "nullable": true
                },
                "tweet_count": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "verified": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterUserProfileResponse": {
        "type": "object",
        "properties": {
          "user": {
            "type": "object",
            "properties": {
              "account_based_in": {
                "type": "string",
                "nullable": true
              },
              "created_at": {
                "type": "string",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "favourites_count": {
                "type": "number",
                "nullable": true
              },
              "followers_count": {
                "type": "number",
                "nullable": true
              },
              "following_count": {
                "type": "number",
                "nullable": true
              },
              "listed_count": {
                "type": "number",
                "nullable": true
              },
              "media_count": {
                "type": "number",
                "nullable": true
              },
              "name": {
                "type": "string",
                "nullable": true
              },
              "pinned_tweet_ids": {
                "type": "array",
                "items": {},
                "nullable": true
              },
              "profile_banner_url": {
                "type": "string",
                "nullable": true
              },
              "profile_image_url": {
                "type": "string",
                "nullable": true
              },
              "protected": {
                "type": "boolean",
                "nullable": true
              },
              "tweet_count": {
                "type": "number",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "user_id": {
                "type": "string",
                "nullable": true
              },
              "username": {
                "type": "string",
                "nullable": true
              },
              "username_changes": {
                "type": "number",
                "nullable": true
              },
              "verified": {
                "type": "boolean",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterUserRepliesResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "replies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_followers": {
                  "type": "number",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "retweets": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_mentions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterUserTweetsResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "tweets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "author": {
                  "type": "string",
                  "nullable": true
                },
                "author_followers": {
                  "type": "number",
                  "nullable": true
                },
                "author_verified": {
                  "type": "boolean",
                  "nullable": true
                },
                "bookmarks": {
                  "type": "number",
                  "nullable": true
                },
                "date": {
                  "type": "string",
                  "nullable": true
                },
                "domain": {
                  "type": "string",
                  "nullable": true
                },
                "hashtags": {
                  "type": "array",
                  "items": {},
                  "nullable": true
                },
                "is_quote": {
                  "type": "boolean",
                  "nullable": true
                },
                "is_reply": {
                  "type": "boolean",
                  "nullable": true
                },
                "lang": {
                  "type": "string",
                  "nullable": true
                },
                "likes": {
                  "type": "number",
                  "nullable": true
                },
                "quotes": {
                  "type": "number",
                  "nullable": true
                },
                "replies": {
                  "type": "number",
                  "nullable": true
                },
                "retweets": {
                  "type": "number",
                  "nullable": true
                },
                "snippet": {
                  "type": "string",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "nullable": true
                },
                "title": {
                  "type": "string",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_mentions": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "nullable": true
                  },
                  "nullable": true
                },
                "views": {
                  "type": "number",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "TwitterVerifiedFollowersResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "number",
            "nullable": true
          },
          "pages": {
            "type": "number",
            "nullable": true
          },
          "username": {
            "type": "string",
            "nullable": true
          },
          "verified_followers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "created_at": {
                  "type": "string",
                  "nullable": true
                },
                "description": {
                  "type": "string",
                  "nullable": true
                },
                "followers_count": {
                  "type": "number",
                  "nullable": true
                },
                "following_count": {
                  "type": "number",
                  "nullable": true
                },
                "name": {
                  "type": "string",
                  "nullable": true
                },
                "profile_image_url": {
                  "type": "string",
                  "nullable": true
                },
                "tweet_count": {
                  "type": "number",
                  "nullable": true
                },
                "url": {
                  "type": "string",
                  "nullable": true
                },
                "user_id": {
                  "type": "string",
                  "nullable": true
                },
                "username": {
                  "type": "string",
                  "nullable": true
                },
                "verified": {
                  "type": "boolean",
                  "nullable": true
                }
              },
              "nullable": true
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "YoutubeChannelDetailsResponse": {
        "type": "object",
        "properties": {
          "channel": {
            "type": "object",
            "properties": {
              "channel_id": {
                "type": "string",
                "nullable": true
              },
              "channel_name": {
                "type": "string",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "subscriber_count": {
                "type": "string",
                "nullable": true
              },
              "video_count": {
                "type": "string",
                "nullable": true
              },
              "view_count": {
                "type": "number",
                "nullable": true
              },
              "country": {
                "type": "string",
                "nullable": true
              },
              "creation_date": {
                "type": "string",
                "nullable": true
              },
              "verified": {
                "type": "boolean",
                "nullable": true
              },
              "has_business_email": {
                "type": "boolean",
                "nullable": true
              },
              "links": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "nullable": true
                    },
                    "url": {
                      "type": "string",
                      "nullable": true
                    }
                  },
                  "nullable": true
                },
                "nullable": true
              },
              "profile_pic_url": {
                "type": "string",
                "nullable": true
              },
              "banner": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      },
      "YoutubeVideoDetailsResponse": {
        "type": "object",
        "properties": {
          "video": {
            "type": "object",
            "properties": {
              "video_id": {
                "type": "string",
                "nullable": true
              },
              "url": {
                "type": "string",
                "nullable": true
              },
              "title": {
                "type": "string",
                "nullable": true
              },
              "description": {
                "type": "string",
                "nullable": true
              },
              "author": {
                "type": "string",
                "nullable": true
              },
              "channel_id": {
                "type": "string",
                "nullable": true
              },
              "date": {
                "type": "string",
                "nullable": true
              },
              "duration": {
                "type": "number",
                "nullable": true
              },
              "views": {
                "type": "number",
                "nullable": true
              },
              "category": {
                "type": "string",
                "nullable": true
              },
              "type": {
                "type": "string",
                "nullable": true
              },
              "is_live": {
                "type": "boolean",
                "nullable": true
              },
              "keywords": {
                "type": "array",
                "items": {
                  "type": "string",
                  "nullable": true
                },
                "nullable": true
              },
              "thumbnail": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          }
        },
        "description": "Inferred from a live response. Any field can be null or absent, and new fields may be added at any time."
      }
    }
  }
}
