# Scrappa — Full API Reference for LLMs > Scrappa is a web scraping API platform providing structured JSON data from 30+ sources (Google, YouTube, LinkedIn, Amazon, etc.) through 80+ endpoints — at a fraction of the cost of alternatives like SerpAPI. ## Authentication All requests require an API key via the `X-API-KEY` header. ``` curl -H "X-API-KEY: your_api_key" "https://scrappa.co/api/google-search-light/search?query=test" ``` ## Base URL `https://scrappa.co/api/` ## Pricing - 1 credit = 1 API request (all endpoints cost 1 credit) - Free tier: 500 credits/month, no credit card required - Paid plans: from $10/33,000 credits to $1,000/5,000,000 credits - Up to 50x cheaper than SerpAPI for the same data ## MCP (Model Context Protocol) Integration Scrappa provides an MCP server so AI assistants (Claude, Cursor, etc.) can call APIs directly as tools. Setup guide: https://scrappa.co/docs/mcp-integration ## API Endpoints ### Amazon Product API Search and get product details from Amazon #### Amazon Product - **Docs**: https://scrappa.co/docs/amazon-product-api/amazon_product - **Summary**: Get Amazon product details - **Description**: Get detailed product information from Amazon. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `asin` | string | Yes | Amazon product ASIN (10 alphanumeric characters). Path parameter in the URL. | | `domain` | string | No | Amazon marketplace domain (US, UK, DE, FR, IT, ES, CA, JP, IN, AU, BR, MX, NL, SG, AE, SA, PL, SE, BE, IE, EG, TR). Default: US | **Example request:** ``` GET https://scrappa.co/api/amazon/product?asin=B073CVZ9GZ&domain=US Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "asin": "B073CVZ9GZ", "domain": "US", "product": [] } ``` #### Amazon Search - **Docs**: https://scrappa.co/docs/amazon-product-api/amazon_search - **Summary**: Search Amazon products - **Description**: Search for products on Amazon. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `domain` | string | No | Amazon marketplace domain (US, UK, DE, FR, IT, ES, CA, JP, IN, AU, BR, MX, NL, SG, AE, SA, PL, SE, BE, IE, EG, TR). Default: US | | `page` | integer | No | Page number (1-20). Default: 1 | | `sort` | string | No | Sort order (relevance, price-asc, price-desc, rating, newest, bestseller, relevanceblender, price-asc-rank, price-desc-rank, review-rank, date-desc-rank, exact-aware-popularity-rank). | | `category` | string | No | Category filter (e.g., electronics, books, clothing) | | `min_price` | number | No | Minimum price filter in the marketplace currency | | `max_price` | number | No | Maximum price filter in the marketplace currency | | `language` | string | No | Locale override (e.g., en_US, de_DE, fr_FR). | | `shipping_location` | string | No | Shipping country code (ISO 3166-1 alpha-2). | | `delivery_zip` | string | No | ZIP/postal code for delivery filtering. | | `rh` | string | No | Refinement filters as key:value pairs. | | `dc` | boolean | No | Spelling correction control. Set to true to enable Amazon spelling correction (default), or false to disable it for exact match searching. Accepts: true, false, 1, 0. | | `node` | integer | No | Amazon category node ID (10-12 digits). | **Example request:** ``` GET https://scrappa.co/api/amazon/search?query=laptop&domain=US Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "query": "laptop", "domain": "US", "page": 1, "results": [ { "asin": "B08N5WRWNW", "title": "Example Laptop Product Title", "url": "/dp/B08N5WRWNW", "price": { "amount": 999.99, "currency": "USD", "display": "$999.99" }, "rating": 4.5, "reviews_count": 1234, "image": "https://m.media-amazon.com/images/I/ExampleImage.jpg", "is_prime": true, "is_sponsored": false, "badges": [ "Best Seller" ], "brand": "Example Brand" } ], "results_count": 1, "pagination": { "current_page": 1, "total_pages": 20, "has_next": true, "has_previous": false } } ``` ### Brave Search API Privacy-focused web search engine #### Brave Search - **Docs**: https://scrappa.co/docs/brave-search-api/brave_search - **Summary**: Search the web using Brave's privacy-focused search engine - **Description**: Search the web using Brave's privacy-focused search engine. Brave Search provides independent search results without tracking users. Use this endpoint to get web search results with support for language filtering and pagination. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | The search query string. Example: `coffee shops` | | `language` | string | No | Language/country filter for search results. Values: `en`, `de`, `fr`, `es`, `it`, `pt`, `nl`, `ru`, `zh`, `ja`, `ar`, `all`. Default: `all` | | `page` | integer | No | Page number for pagination. Range: 1-10 (Brave limits pagination). Default: 1 | **Example request:** ``` GET https://scrappa.co/api/brave/search?query=technology Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "organic_results": [ { "position": 1, "title": "Technology News - Latest Tech Headlines", "link": "https://www.techcrunch.com/", "redirect_link": "https://www.techcrunch.com/", "displayed_link": "www.techcrunch.com", "snippet": "TechCrunch is a leading technology media property, dedicated to obsessively profiling startups, reviewing new Internet products, and breaking tech news.", "source": "www.techcrunch.com" }, { "position": 2, "title": "The Verge - Technology News and Reviews", "link": "https://www.theverge.com/", "redirect_link": "https://www.theverge.com/", "displayed_link": "www.theverge.com", "snippet": "The Verge covers the intersection of technology, science, art, and culture, offering in-depth reporting and long-form feature stories.", "source": "www.theverge.com" }, { "position": 3, "title": "Wired - Latest Technology News and Culture", "link": "https://www.wired.com/", "redirect_link": "https://www.wired.com/", "displayed_link": "www.wired.com", "snippet": "WIRED is where tomorrow is realized. The latest in technology news, culture, business, science, and design.", "source": "www.wired.com" }, { "position": 4, "title": "Example Search Result 4", "link": "https://example.com/result4", "redirect_link": "https://example.com/result4", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 5, "title": "Example Search Result 5", "link": "https://example.com/result5", "redirect_link": "https://example.com/result5", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 6, "title": "Example Search Result 6", "link": "https://example.com/result6", "redirect_link": "https://example.com/result6", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 7, "title": "Example Search Result 7", "link": "https://example.com/result7", "redirect_link": "https://example.com/result7", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 8, "title": "Example Search Result 8", "link": "https://example.com/result8", "redirect_link": "https://example.com/result8", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 9, "title": "Example Search Result 9", "link": "https://example.com/result9", "redirect_link": "https://example.com/result9", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 10, "title": "Example Search Result 10", "link": "https://example.com/result10", "redirect_link": "https://example.com/result10", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 11, "title": "Example Search Result 11", "link": "https://example.com/result11", "redirect_link": "https://example.com/result11", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 12, "title": "Example Search Result 12", "link": "https://example.com/result12", "redirect_link": "https://example.com/result12", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 13, "title": "Example Search Result 13", "link": "https://example.com/result13", "redirect_link": "https://example.com/result13", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 14, "title": "Example Search Result 14", "link": "https://example.com/result14", "redirect_link": "https://example.com/result14", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 15, "title": "Example Search Result 15", "link": "https://example.com/result15", "redirect_link": "https://example.com/result15", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 16, "title": "Example Search Result 16", "link": "https://example.com/result16", "redirect_link": "https://example.com/result16", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 17, "title": "Example Search Result 17", "link": "https://example.com/result17", "redirect_link": "https://example.com/result17", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 18, "title": "Example Search Result 18", "link": "https://example.com/result18", "redirect_link": "https://example.com/result18", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 19, "title": "Example Search Result 19", "link": "https://example.com/result19", "redirect_link": "https://example.com/result19", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" }, { "position": 20, "title": "Example Search Result 20", "link": "https://example.com/result20", "redirect_link": "https://example.com/result20", "displayed_link": "example.com", "snippet": "Example search result demonstrating the response format.", "source": "example.com" } ], "related_searches": [ { "query": "types of technology" }, { "query": "technology examples" }, { "query": "importance of technology" } ], "related_questions": [ { "question": "What is technology?", "answer": "Technology is the application of scientific knowledge for practical purposes.", "link": "https://example.com/what-is-technology", "title": "What is technology? - Example" }, { "question": "How does technology impact daily life?", "answer": "Technology shapes communication, work, and access to information.", "link": "https://example.com/technology-impact", "title": "Technology impact on daily life - Example" } ], "results_count": 20, "engine_used": "brave" } ``` ### Email Verification API Verify email addresses with layered checks and SMTP probing #### Verify Email - **Docs**: https://scrappa.co/docs/email-verification-api/email_verify - **Summary**: Validate an email address for deliverability - **Description**: Run syntax, DNS, and optional SMTP checks to classify an email address as valid, risky, unknown, or invalid. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `email` | string | Yes | Email address to verify | **Example request:** ``` GET https://scrappa.co/api/email/verify?email=jane.doe%40example.com Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "email": "jane.doe@example.com", "domain": "example.com", "band": "valid", "score": 90, "code": "5", "role": "false", "free_email": "false", "result": "Safe to Send", "reason": "Deliverable", "send_transactional": "1", "did_you_mean": "" } ``` ### Google Finance API Search stocks, ETFs, and cryptocurrencies, get real-time quotes, and historical data from Google Finance. #### Get Complete Stock Quote - **Docs**: https://scrappa.co/docs/google-finance-api/google_finance_quote - **Summary**: Get all stock data in one request - **Description**: Get comprehensive data for a stock including real-time quote, key statistics, company information, financials, news, and discover more suggestions. All data extracted from a single page fetch for maximum performance. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `symbol` | string | Yes | Stock symbol (e.g., AAPL) | | `exchange` | string | No | Exchange code (e.g., NASDAQ). If not provided, the API will attempt to auto-resolve via an internal search. This adds latency and may fail for less common symbols. | | `period_type` | string | No | Filter financials by period: quarterly or annual (default: returns visible data, typically quarterly) | | `hl` | string | No | Language code (default: en) | | `gl` | string | No | Country code (default: us) | **Example request:** ``` GET https://scrappa.co/api/google-finance/quote?symbol=AAPL&exchange=NASDAQ Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "quote": { "summary": { "name": "Apple Inc", "symbol": "AAPL", "exchange": "NASDAQ", "current_price": "255.78", "price_change": "-5.95", "percent_change": "-2.27%", "currency": "USD", "market": { "trading": "Closed", "price": "255.30", "extracted_price": 255.3, "price_movement": { "percentage": 0.19, "movement": "Up" } }, "extensions": [ "Closed: Feb 13, 8:00:00 PM UTC-5", "USD", "NASDAQ" ] }, "key_stats": { "previous_close": "$261.73", "day_range": "$255.45 - $262.23", "year_range": "$169.21 - $288.61", "market_cap": "3.76T USD", "avg_volume": "53.72M", "pe_ratio": "32.36", "dividend_yield": "0.41%", "primary_exchange": "NASDAQ", "climate_change": { "score": "A", "link": "https://cdp.net/..." }, "stats": [], "tags": [] }, "about": { "description": "Apple Inc. is an American multinational technology company...", "ceo": "Tim Cook", "founded": "Apr 1, 1976", "headquarters": "Cupertino, California", "employees": "166,000", "website": null, "info": [] }, "financials": [ { "title": "Income Statement", "results": [ { "date": "Dec 2025", "period_type": "Quarterly", "table": [ { "title": "Revenue", "description": "The total amount...", "value": "143.76B", "change": "15.65%" }, { "title": "Net income", "description": "Company earnings...", "value": "42.10B", "change": "15.87%" } ] } ] } ], "news": [ { "title": "Here's Why Apple (AAPL) is a Great Momentum Stock to Buy", "link": "https://www.nasdaq.com/...", "source": "Nasdaq", "date": "1 day ago", "iso_date": "2025-02-13T12:00:00+00:00", "thumbnail": "https://..." } ], "discover_more": [ { "title": "You may be interested in", "items": [ { "stock": "AMZN:NASDAQ", "name": "Amazon.com Inc", "price": "$198.79", "extracted_price": 198.79, "currency": "USD", "price_movement": { "percentage": 0.41, "movement": "Up" } } ] } ] } } ``` #### Get Historical Data - **Docs**: https://scrappa.co/docs/google-finance-api/google_finance_historical - **Summary**: Get historical price data - **Description**: Get historical price and volume data for a financial instrument. Supports various time ranges from 1 day to maximum available, or custom date ranges with configurable intervals. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `symbol` | string | Yes | Stock symbol (e.g., AAPL) | | `exchange` | string | No | Exchange code (e.g., NASDAQ) | | `range` | integer | No | Time range: 1=1d, 2=5d, 3=1m, 4=6m, 5=YTD, 6=1y, 7=5y, 8=max (default: 6) | | `start_date` | string | No | Start date for custom range (YYYY-MM-DD) | | `end_date` | string | No | End date for custom range (YYYY-MM-DD) | | `interval` | string | No | Data interval: daily, weekly, monthly (default: daily) | | `hl` | string | No | Language code (default: en) | | `gl` | string | No | Country code (default: us) | **Example request:** ``` GET https://scrappa.co/api/google-finance/historical?symbol=AAPL&exchange=NASDAQ&range=6 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "symbol": "AAPL", "exchange": "NASDAQ", "currency": "USD", "previous_close": 275.5, "prices": [ { "date": 1739480400, "close": 241.53, "change": 0, "percent_change": 0, "volume": 53614054 } ] } ``` #### Get Intraday Graph Data - **Docs**: https://scrappa.co/docs/google-finance-api/google_finance_intraday - **Summary**: Get minute-by-minute price data - **Description**: Get intraday minute-by-minute price and volume data for a stock from Google Finance. Returns data points with price, volume, and formatted timestamps. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `symbol` | string | Yes | Stock symbol (e.g., AAPL) | | `exchange` | string | No | Exchange code (e.g., NASDAQ) | | `hl` | string | No | Language code (default: en) | | `gl` | string | No | Country code (default: us) | **Example request:** ``` GET https://scrappa.co/api/google-finance/intraday?symbol=AAPL&exchange=NASDAQ Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "symbol": "AAPL", "exchange": "NASDAQ", "currency": "USD", "graph": [ { "price": 275.41, "currency": "USD", "date": "Feb 12 2026, 09:30 AM UTC-05:00", "volume": 616590 }, { "price": 274.3, "currency": "USD", "date": "Feb 12 2026, 09:31 AM UTC-05:00", "volume": 265661 } ] } ``` #### Get Market Indices - **Docs**: https://scrappa.co/docs/google-finance-api/google_finance_indices - **Summary**: Get major market indices data - **Description**: Get real-time data for major market indices including S&P 500, Dow Jones, NASDAQ, and Russell 2000. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `indices` | string | No | Comma-separated list of index symbols (default: S&P 500, Dow Jones, NASDAQ, Russell 2000) | | `hl` | string | No | Language code (default: en) | | `gl` | string | No | Country code (default: us) | **Example request:** ``` GET https://scrappa.co/api/google-finance/indices?indices=INDEXSP%3A.INX%2CINDEXDJX%3A.DJI Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "indices": [ { "symbol": ".INX", "name": "S&P 500", "exchange": "INDEXSP", "full_symbol": ".INX:INDEXSP", "currency": "USD", "current_price": 6051.97, "price_change": -16.53, "percent_change": -0.27, "previous_close": 6068.5, "price_movement": { "direction": "Down", "value": -16.53, "percentage": -0.27 } } ] } ``` #### Get Markets Overview - **Docs**: https://scrappa.co/docs/google-finance-api/google_finance_markets - **Summary**: Get global markets overview with optional trend filtering - **Description**: Get a comprehensive overview of global financial markets from Google Finance. Without the trend parameter, returns a summary of US, European, and Asian market indices, currencies, cryptocurrencies, and futures. With the trend parameter, returns detailed market trend data (gainers, losers, most active, indexes, climate leaders, cryptocurrencies, currencies) including market_trends and news_results. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `hl` | string | No | Language code (default: en) | | `gl` | string | No | Country code (default: us) | | `trend` | string | No | Market trend filter. One of: indexes, most-active, gainers, losers, climate-leaders, cryptocurrencies, currencies | | `index_market` | string | No | Regional filter for indexes trend. One of: americas, europe-middle-east-africa, asia-pacific. Only used when trend=indexes. | **Example request:** ``` GET https://scrappa.co/api/google-finance/markets?hl=en Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "markets": { "us": [ { "stock": ".DJI:INDEXDJX", "name": "Dow Jones Industrial Average", "symbol": ".DJI", "exchange": "INDEXDJX", "price": 42515.09, "price_movement": { "direction": "Down", "value": -125.69, "percentage": -0.3 } } ], "europe": [ { "stock": "DAX:INDEXDB", "name": "DAX PERFORMANCE-INDEX", "symbol": "DAX", "exchange": "INDEXDB", "price": 22539.98, "price_movement": { "direction": "Up", "value": 74.25, "percentage": 0.33 } } ], "asia": [ { "stock": "NI225:INDEXNIKKEI", "name": "Nikkei 225", "symbol": "NI225", "exchange": "INDEXNIKKEI", "price": 38776.94, "price_movement": { "direction": "Down", "value": -312.04, "percentage": -0.8 } } ], "currencies": [ { "stock": "EUR-USD", "name": "EUR / USD", "price": 1.0457, "from_currency": "EUR", "to_currency": "USD", "price_movement": { "direction": "Up", "value": 0.0012, "percentage": 0.11 } } ], "crypto": [ { "stock": "BTC-USD", "name": "Bitcoin", "price": 96159.8, "from_currency": "BTC", "to_currency": "USD", "price_movement": { "direction": "Down", "value": -1500.2, "percentage": -1.54 } } ], "futures": [ { "stock": "YMW00:CBOT", "name": "Dow Futures", "symbol": "YMW00", "exchange": "CBOT", "price": 42622, "currency": "USD", "price_movement": { "direction": "Up", "value": 47, "percentage": 0.11 } } ], "top_news": null } } ``` #### Search Financial Instruments - **Docs**: https://scrappa.co/docs/google-finance-api/google_finance_search - **Summary**: Search for stocks, ETFs, and crypto - **Description**: Search for financial instruments by name, symbol, or keyword. Returns matching stocks, ETFs, cryptocurrencies, and other tradable assets. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Search query (stock symbol, company name, or crypto) | | `hl` | string | No | Language code (default: en) | | `gl` | string | No | Country code (default: us) | **Example request:** ``` GET https://scrappa.co/api/google-finance/search?q=AAPL&hl=en&gl=us Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "results": [ { "symbol": "AAPL", "exchange": "NASDAQ", "name": "Apple Inc", "type": 0, "currency": "USD", "current_price": 261.73, "price_change": -13.77, "percent_change": -5, "previous_close": 275.5, "country": "US" } ] } ``` ### Google Flights API Search and compare flights from Google Flights. Get real-time prices, airline options, baggage fees, and booking links. #### Airlines List - **Docs**: https://scrappa.co/docs/google-flights-api/google_flights_airlines - **Summary**: Get list of supported airlines - **Description**: Returns a list of supported airlines with their IATA codes and names. Free endpoint. **Example response (truncated):** ```json { "airlines": [ { "code": "AA", "name": "American Airlines" } ] } ``` #### Airports List - **Docs**: https://scrappa.co/docs/google-flights-api/google_flights_airports - **Summary**: Get list of major airports - **Description**: Returns a list of major airports with IATA codes, names, and locations. Free endpoint. **Example response (truncated):** ```json { "airports": [ { "code": "JFK", "name": "John F. Kennedy International Airport", "city": "New York", "country": "United States" } ] } ``` #### Booking Details - **Docs**: https://scrappa.co/docs/google-flights-api/google_flights_booking_details - **Summary**: Get booking details with price insights - **Description**: Get detailed booking information for a specific flight including price insights, price history, fare options, and baggage information. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `booking_token` | string | Yes | The booking token from search results | | `origin` | string | Yes | Origin airport IATA code | | `destination` | string | Yes | Destination airport IATA code | | `departure_date` | string | Yes | Departure date in Y-m-d format | | `airline` | string | Yes | Airline IATA code | | `flight_number` | string | Yes | Flight number | | `adults` | integer | No | Number of adult passengers (1-9, default: 1) | | `children` | integer | No | Number of child passengers (0-9, default: 0) | | `infants_in_seat` | integer | No | Number of infants in seat (0-9, default: 0) | | `infants_on_lap` | integer | No | Number of infants on lap (0-9, default: 0) | | `cabin_class` | string | No | Cabin class: economy, premium_economy, business, or first (default: economy) | | `hl` | string | No | Language code (e.g., en, de, en-US) | | `gl` | string | No | Country/region code (e.g., us, de, gb) | **Example request:** ``` GET https://scrappa.co/api/google-flights/booking-details?booking_token=abc123&origin=JFK&destination=LAX&departure_date=2025-06-15&airline=AA&flight_number=123 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "flight_details": [], "price_insights": [], "fare_options": [], "baggage_info": [] } ``` #### Date Range Search - **Docs**: https://scrappa.co/docs/google-flights-api/google_flights_date_range - **Summary**: Find cheapest flight dates - **Description**: Search across a date range to find the cheapest flight dates. Returns price data for each date combination. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `origin` | string | Yes | Origin airport IATA code | | `destination` | string | Yes | Destination airport IATA code | | `from_date` | string | Yes | Start of date range in Y-m-d format | | `to_date` | string | Yes | End of date range in Y-m-d format | | `trip_duration` | integer | No | Duration of trip in days (1-30, default: 7) | | `adults` | integer | No | Number of adult passengers (1-9, default: 1) | | `children` | integer | No | Number of child passengers (0-9, default: 0) | | `infants_in_seat` | integer | No | Number of infants in seat (0-9, default: 0) | | `infants_on_lap` | integer | No | Number of infants on lap (0-9, default: 0) | | `cabin_class` | string | No | Cabin class: economy, premium_economy, business, or first (default: economy) | | `exclude_basic` | boolean | No | Exclude basic economy fares when searching in economy class (default: false) | | `max_stops` | string | No | Maximum stops: any, nonstop, one_or_fewer, or two_or_fewer (default: any) | | `hl` | string | No | Language code (e.g., en, de, en-US) | | `gl` | string | No | Country/region code (e.g., us, de, gb) | | `currency` | string | No | Currency code for prices (e.g., USD, EUR, GBP) | **Example request:** ``` GET https://scrappa.co/api/google-flights/date-range?origin=JFK&destination=LAX&from_date=2025-06-01&to_date=2025-06-30 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "date_price_combinations": [], "search_metadata": [] } ``` #### One-Way Flight Search - **Docs**: https://scrappa.co/docs/google-flights-api/google_flights_one_way - **Summary**: Search for one-way flights - **Description**: Search for one-way flights between airports. Returns flight options with prices, durations, airlines, and layover information. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `origin` | string | Yes | Origin airport IATA code (e.g., JFK, LAX, ORD) | | `destination` | string | Yes | Destination airport IATA code (e.g., LHR, CDG, SFO) | | `departure_date` | string | Yes | Departure date in Y-m-d format (e.g., 2025-12-25) | | `adults` | integer | No | Number of adult passengers (1-9, default: 1) | | `children` | integer | No | Number of child passengers (0-9, default: 0) | | `infants_in_seat` | integer | No | Number of infants in seat (0-9, default: 0) | | `infants_on_lap` | integer | No | Number of infants on lap (0-9, default: 0) | | `cabin_class` | string | No | Cabin class: economy, premium_economy, business, or first | | `exclude_basic` | boolean | No | Exclude basic economy fares when searching in economy class (default: false) | | `max_stops` | string | No | Maximum stops: any, nonstop, one_or_fewer, or two_or_fewer | | `sort_by` | string | No | Sort by: top_flights, cheapest, departure_time, arrival_time, or duration | | `hl` | string | No | Language code (e.g., en, de, en-US) | | `gl` | string | No | Country/region code (e.g., us, de, gb) | | `airlines` | array | No | Filter by airline IATA codes (e.g., ["AA", "UA", "DL"] or "AA,UA,DL") | | `include_baggage` | boolean | No | Include baggage fee information for the cheapest flight (1 = yes, 0 = no, default: 0) | | `departure_time_min` | integer | No | Minimum departure hour (0-23). Use with departure_time_max to filter by time range. | | `departure_time_max` | integer | No | Maximum departure hour (0-23). Use with departure_time_min to filter by time range. | | `arrival_time_min` | integer | No | Minimum arrival hour (0-23). Use with arrival_time_max to filter by time range. | | `arrival_time_max` | integer | No | Maximum arrival hour (0-23). Use with arrival_time_min to filter by time range. | | `max_duration_minutes` | integer | No | Maximum flight duration in minutes. Filters out flights longer than this. | | `max_price` | integer | No | Maximum price in the search currency. Filters out flights more expensive than this. | **Example request:** ``` GET https://scrappa.co/api/google-flights/one-way?origin=JFK&destination=LAX&departure_date=2025-06-15 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "flights": [], "search_metadata": [] } ``` #### Round-Trip Flight Search - **Docs**: https://scrappa.co/docs/google-flights-api/google_flights_round_trip - **Summary**: Search for round-trip flights - **Description**: Search for round-trip flights. Includes outbound and return flight options with combined pricing. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `origin` | string | Yes | Origin airport IATA code | | `destination` | string | Yes | Destination airport IATA code | | `departure_date` | string | Yes | Departure date in Y-m-d format | | `return_date` | string | Yes | Return date in Y-m-d format | | `adults` | integer | No | Number of adult passengers (1-9) | | `children` | integer | No | Number of child passengers (0-9) | | `infants_in_seat` | integer | No | Number of infants in seat (0-9) | | `infants_on_lap` | integer | No | Number of infants on lap (0-9) | | `cabin_class` | string | No | Cabin class: economy, premium_economy, business, or first | | `exclude_basic` | boolean | No | Exclude basic economy fares when searching in economy class (default: false) | | `max_stops` | string | No | Maximum stops: any, nonstop, one_or_fewer, two_or_fewer | | `sort_by` | string | No | Sort results by: top_flights, cheapest, departure_time, arrival_time, duration | | `hl` | string | No | Language code (e.g., en, de, en-US) | | `gl` | string | No | Country/region code (e.g., us, de, gb) | | `airlines` | array | No | Filter by airline IATA codes (e.g., ["AA", "UA", "DL"] or "AA,UA,DL") | | `include_baggage` | boolean | No | Include baggage fee information for the cheapest flight (1 = yes, 0 = no, default: 0) | | `departure_time_min` | integer | No | Minimum departure hour (0-23). Use with departure_time_max to filter by time range. | | `departure_time_max` | integer | No | Maximum departure hour (0-23). Use with departure_time_min to filter by time range. | | `arrival_time_min` | integer | No | Minimum arrival hour (0-23). Use with arrival_time_max to filter by time range. | | `arrival_time_max` | integer | No | Maximum arrival hour (0-23). Use with arrival_time_min to filter by time range. | | `max_duration_minutes` | integer | No | Maximum flight duration in minutes. Filters out flights longer than this. | | `max_price` | integer | No | Maximum price in the search currency. Filters out flights more expensive than this. | **Example request:** ``` GET https://scrappa.co/api/google-flights/round-trip?origin=JFK&destination=LAX&departure_date=2025-06-15&return_date=2025-06-22 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "flights": [], "search_metadata": [] } ``` ### Google Hotels API Search and compare hotel prices from Google Hotels #### Google Hotels Autocomplete - **Docs**: https://scrappa.co/docs/google-hotels-api/google_hotels_autocomplete - **Summary**: Location and hotel name suggestions for search autocomplete - **Description**:

The Google Hotels Autocomplete API provides real-time location and hotel name suggestions as users type, powered by the same suggestion engine behind Google Hotels. Build type-ahead search experiences for travel apps, hotel booking platforms, and destination discovery tools.

What You Get

Common Use Cases

How It Works

Send a partial query (minimum 2 characters) and the API returns ranked suggestions from Google's hotel database. Use the type parameter to filter results:

Response Type Values

Each suggestion includes a type field indicating the suggestion category:

Each suggestion includes a scrappa_google_hotels_link that you can call directly to get full hotel search results for that location or property — no extra parameter mapping needed.

Scrappa vs. Building Your Own

Google does not offer a public Hotels Autocomplete API. Building this yourself requires reverse-engineering Google's internal batchexecute protocol, handling protobuf-encoded payloads, and maintaining parsers as Google changes their internal format. Scrappa handles all of this, returning clean JSON with a simple REST interface.

**Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Location search query | | `gl` | string | No | 2-letter country code for localization (e.g., us, gb, de, fr) | | `hl` | string | No | 2-letter language code for results (e.g., en, es, fr, de) | | `currency` | string | No | 3-letter currency code used in suggestion links (e.g., USD, EUR, GBP) | | `type` | string | No | Type of suggestions to return: location (cities/locations only), hotel (accommodations only), all (both). Default: hotel | **Example request:** ``` GET https://scrappa.co/api/google-hotels/autocomplete?q=Berlin Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "search_parameters": { "engine": "google_hotels_autocomplete", "q": "Paris", "gl": "us", "hl": "en", "currency": "USD" }, "suggestions": [ { "position": 1, "value": "paris hotel las vegas", "type": "accommodation", "highlighted_words": [ "hotel las vegas" ], "autocomplete_suggestion": "paris hotel las vegas", "scrappa_google_hotels_link": "https://scrappa.co/api/google-hotels/search?q=Las+Vegas%2C+NV&check_in_date=2026-02-27&check_out_date=2026-02-28&adults=2&children=0¤cy=USD&hl=en&gl=us&property_token=ChgIgbj58O-AraJFGgovbS8wMzQ4czYwEAE", "location": "Las Vegas, NV", "thumbnail": "https://lh3.googleusercontent.com/grass/AKc-QJEPi1pQEfr-uPrS56QJayOxIX_eB0VMbaasFAlqvvL0jM_cI_a_D9_lrItRAZpRCCIRP8yh8iZqTQw-WRk7PCoe2Q=w92-h92-n-k-no", "kgmid": "/m/0348s60", "data_cid": "4991312229159558145", "property_token": "ChgIgbj58O-AraJFGgovbS8wMzQ4czYwEAE", "scrappa_link": "https://scrappa.co/api/search?q=paris+hotel+las+vegas&hl=en&gl=us&kgmid=%2Fm%2F0348s60" } ], "response_time_ms": 587 } ``` #### Google Hotels Search - **Docs**: https://scrappa.co/docs/google-hotels-api/google_hotels_search - **Summary**: Search hotels on Google Hotels - **Description**: Search for hotels by location with comprehensive filtering options. Supports price range, star rating, free cancellation, and sorting options. Use the Google Hotels Autocomplete endpoint to get valid location suggestions and property tokens for this endpoint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Location query for hotel search (e.g., "Paris, France", "Near Eiffel Tower") | | `check_in_date` | string | Yes | Check-in date in YYYY-MM-DD format (must be today or future date) | | `check_out_date` | string | Yes | Check-out date in YYYY-MM-DD format (must be after check-in date) | | `adults` | integer | No | Number of adult guests (1-10) | | `children` | integer | No | Number of children (0-6) | | `currency` | string | No | 3-letter currency code for prices (e.g., USD, EUR, GBP) | | `gl` | string | No | 2-letter country code for localization (e.g., us, gb, de, fr) | | `hl` | string | No | 2-letter language code for results (e.g., en, es, fr, de) | | `sort_by` | integer | No | Sort order: 3 (price lowest first), 8 (rating highest first), 13 (most reviewed first) | | `min_price` | integer | No | Minimum price per night filter | | `max_price` | integer | No | Maximum price per night filter (must be greater than min_price) | | `hotel_class` | array | No | Filter by hotel star rating IDs (comma-separated): 2, 3, 4, or 5 | | `rating` | integer | No | Minimum guest rating filter: 7 (3.5+), 8 (4.0+), 9 (4.5+) | | `amenities` | array | No | Filter by amenity IDs (SerpAPI list, comma-separated). Example: 35 (Free Wi-Fi), 9 (Free breakfast), 15 (Bar) | | `free_cancellation` | boolean | No | Filter for hotels with free cancellation (true/false) | | `children_ages` | array | No | Comma-separated children ages (1-17 years old). Count must match children. | | `vacation_rentals` | boolean | No | Filter for vacation rental properties only (Airbnb-style properties) instead of hotels | | `eco_certified` | boolean | No | Filter for eco-certified/sustainable hotels only | | `special_offers` | boolean | No | Filter for hotels with special offers/deals | | `property_types` | array | No | Filter by property type IDs (SerpAPI list, comma-separated). Example: 12 (Beach hotels), 1 (Apartments) | | `brands` | array | No | Filter by brand IDs (use brands[].id from response) | | `bedrooms` | integer | No | Minimum number of bedrooms (1-20, vacation rentals only) | | `bathrooms` | integer | No | Minimum number of bathrooms (1-20, vacation rentals only) | | `next_page_token` | string | No | Pagination token from previous response | | `property_token` | string | No | Property token for a specific hotel (from search results) | **Example request:** ``` GET https://scrappa.co/api/google-hotels/search?q=Paris%2C+France&check_in_date=2025-08-15&check_out_date=2025-08-18¤cy=EUR&gl=fr Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "properties": [] } ``` ### Google Images API Search and scrape images from Google #### Google Images - **Docs**: https://scrappa.co/docs/google-images-api/google_images - **Summary**: Search Google Images - **Description**: Search and scrape image results from Google Images with advanced filtering by size, type, color, and aspect ratio. Returns structured data including thumbnail URLs, full-resolution original image URLs, source attribution, and image dimensions for each result. ### Key Features - **Image metadata extraction** — Get titles, source websites, thumbnails, and original high-resolution image URLs in a single request - **Advanced filtering** — Filter results by image size (large, medium, icon), type (photo, clipart, lineart, gif, face), dominant color (14 options), and aspect ratio (tall, square, wide) - **Localization support** — Target results by language (`hl`) and country (`gl`) for region-specific image search - **Pagination** — Retrieve multiple pages of results to access hundreds of images per query - **Time-based filtering** — Use the `tbs` parameter to find images from the past day, week, month, or year - **Safe search** — Enable or disable explicit content filtering for content-appropriate results ### Common Use Cases - **E-commerce product research** — Gather product images and visual competitive intelligence across marketplaces - **Content creation and curation** — Find reference images, stock photos, and visual assets for blogs, presentations, and marketing materials - **Brand monitoring** — Track where brand logos and product images appear across the web - **Visual dataset collection** — Build image datasets for machine learning training, computer vision projects, and AI model development - **SEO and visual search analysis** — Monitor which images rank for specific queries and analyze visual SERP features - **Market trend analysis** — Identify trending visual styles, design patterns, and popular imagery in any niche **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | The search term for Google Images. Supports natural language queries (e.g., "sunset over mountains") and advanced operators. | | `page` | integer | No | Page number for pagination (default: 1). Each page returns approximately 10 image results. | | `hl` | string | No | ISO 639-1 language code for results (e.g., `en`, `de`, `fr`, `es`, `ja`). Controls the language of titles and source text. If omitted, uses Google's default based on location. | | `gl` | string | No | ISO 3166-1 alpha-2 country code for geo-targeting (e.g., `us`, `de`, `uk`, `jp`). Prioritizes images from websites in the specified country. | | `imgsz` | string | No | Filter by image size. Accepted values: `large` (high-resolution images), `medium` (standard web images), `icon` (small thumbnails and icons). | | `imgtype` | string | No | Filter by image type. Accepted values: `photo` (photographs), `clipart` (clip art), `lineart` (line drawings), `gif` (animated GIFs), `face` (images containing faces). | | `imgcolor` | string | No | Filter by dominant color. Accepted values: `color`, `gray`, `trans` (transparent), `red`, `orange`, `yellow`, `green`, `teal`, `blue`, `purple`, `pink`, `white`, `black`, `brown`. | | `imgar` | string | No | Filter by aspect ratio. Accepted values: `tall` (portrait orientation), `square` (1:1 ratio), `wide` (landscape orientation). | | `tbs` | string | No | Advanced time-based filters using Google's `tbs` syntax. Examples: `qdr:d` (past 24 hours), `qdr:w` (past week), `qdr:m` (past month), `qdr:y` (past year). | | `safe` | string | No | Safe search filtering. Accepted values: `active` (filter explicit content), `off` (no filtering). Recommended to set `active` for public-facing applications. | **Example request:** ``` GET https://scrappa.co/api/google/search?q=coffee Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": [ { "position": 1, "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRwFJxoG4xATI9dZKguBAl_LbsmREXYKpdAtg", "source": "Wikipedia", "title": "Coffee - Wikipedia", "link": "https://en.wikipedia.org/wiki/Coffee", "original": "https://upload.wikimedia.org/wikipedia/commons/e/e4/Latte_and_dark_coffee.jpg", "original_width": 3200, "original_height": 2000, "is_product": false }, { "position": 2, "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTwsIC3x_NQ3ANjgHZrqshWkXgMhNRR_jUHxBq", "source": "Americano Lounge", "title": "What is American Style Coffee? - Americano Lounge", "link": "https://www.americanolounge.com/what-is-american-style-coffee/", "original": "https://www.americanolounge.com/wp-content/uploads/2024/08/american-style-coffee.webp", "original_width": 1920, "original_height": 1280, "is_product": false }, { "position": 3, "thumbnail": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSk45hpbY7alvCv5r0UDuDG6G8uEJu6G7pChSa", "source": "Uno Casa", "title": "Types of Coffee: A Fully-Brewed Coffee Guide", "link": "https://unocasa.com/blogs/tips/types-of-coffee", "original": "https://unocasa.com/cdn/shop/articles/types_of_coffee_1024x.jpg", "original_width": 1024, "original_height": 683, "is_product": false } ] } ``` ### Google Jobs API Search job listings from Google Jobs #### Google Jobs Search - **Docs**: https://scrappa.co/docs/google-jobs-api/google_jobs - **Summary**: Search Google Jobs listings - **Description**: Search job listings from Google Jobs with query and filter options. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Job search query | **Example request:** ``` GET https://scrappa.co/api/google-jobs/search?q=software+engineer Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "jobs": [ { "title": "Software Engineer", "company": "Example Corp" } ] } ``` ### Google Maps API Search businesses, get reviews, photos, directions and more from Google Maps. #### Advanced Search - **Docs**: https://scrappa.co/docs/google-maps-api/advanced_search - **Summary**: Search places with filters and pagination - **Description**: Perform detailed searches for locations, places, and geographic data with advanced filtering options including coordinates, zoom level, result limits, and pagination. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | The search term that will be used by the API. | | `zoom` | string | Yes | The level of detail displayed on the map. | | `lat` | string | No | Latitude coordinate for the search center. | | `lon` | string | No | Longitude coordinate for the search center. | | `limit` | string | No | Maximum number of results to return. | | `page` | string | No | Page number for pagination (0-based). Default: 0 | | `fields` | string | No | Comma-separated list of fields to return (e.g., name,rating,review_count). | | `hl` | string | No | Language code for results (en, de, fr, es). Default: en | | `gl` | string | No | Country/region code for geo-filtering (us, de, uk, jp). | | `google_domain` | string | No | Google domain to use for the search (e.g., google.com, google.de). | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/advanced-search?query=bakery&zoom=13&fields=name%2Crating Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "items": [ { "city": "Houston", "name": "El Bolillo Bakery", "type": "Bakery", "rating": 4.6, "business_id": "0x8640b88f75b395a3:0x8771a1c312c0bd48" } ] } ``` #### Autocomplete - **Docs**: https://scrappa.co/docs/google-maps-api/autocomplete - **Summary**: Get place suggestions as you type - **Description**: The Google Maps Autocomplete API provides automatic query predictions as users type. Helps users find places, addresses, and points of interest quickly. Accepts both "q" and "query" parameters for consistency with other autocomplete endpoints. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | The partial search term to get autocomplete suggestions for. Accepts both "q" (consistent with Google Hotels) and "query". | | `hl` | string | No | Language code for results. Default: en. Examples: en, de, fr, es. Format: ISO 639-1 two-letter language code. | | `gl` | string | No | Country/region code for geo-filtering results. Examples: us, de, uk, jp. Format: ISO 3166-1 alpha-2 country code. | | `ll` | string | No | Latitude and longitude to bias results toward a specific location. Format: "latitude,longitude" (e.g., 40.7128,-74.0060 for New York City). | | `google_domain` | string | No | Google domain to use for the search. Examples: google.com, google.de, google.com.br, google.co.uk. | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/autocomplete?q=bakery Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "search_parameters": { "engine": "google_maps_autocomplete", "q": "bakery", "hl": "en", "gl": null, "google_domain": null }, "suggestions": [ { "type": "place", "place_id": "ChIJo5WzdY-4QIYRSL3AEsOhcYc", "google_id": "0x8640b88f75b395a3:0x8771a1c312c0bd48", "main_text": "Bakery near me", "subtext": "Houston, TX", "main_text_highlights": [ { "offset": 0, "length": 6 } ], "latitude": 29.7604, "longitude": -95.3698, "country": "US" } ], "response_time_ms": 587 } ``` #### Business Details - **Docs**: https://scrappa.co/docs/google-maps-api/google_business_details - **Summary**: Fetch live business details from Google - **Description**: Fetch business details directly from Google Maps including contact info, hours, photos, and reviews summary. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `business_id` | string | Yes | The unique Google Business ID (format: 0x...:0x...). | | `hl` | string | No | Language code for results. Default: en | | `gl` | string | No | Country/region code for geo-filtering. Default: us | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/business-details?business_id=0x8640b88f75b395a3%3A0x8771a1c312c0bd48 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "status": "OK", "business_id": "0x8640b88f75b395a3:0x8771a1c312c0bd48", "data": [ { "business_id": "0x8640b88f75b395a3:0x8771a1c312c0bd48", "name": "Example Business" } ] } ``` #### Business Info - **Docs**: https://scrappa.co/docs/google-maps-api/google_business_info - **Summary**: Get cached business information - **Description**: Retrieve cached business information from the local database. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `business_id` | string | Yes | The unique Google Business ID. | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/business-info?business_id=0x8640b88f75b395a3%3A0x8771a1c312c0bd48 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "name": "Example Business", "business_id": "0x8640b88f75b395a3:0x8771a1c312c0bd48" } ``` #### Directions - **Docs**: https://scrappa.co/docs/google-maps-api/google_maps_directions - **Summary**: Get directions between locations - **Description**: Get directions between two locations with route information including distance, duration, and step-by-step navigation. Supports driving, walking, bicycling, and transit modes. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `origin` | string | Yes | Starting point - address, place name, or coordinates. | | `destination` | string | Yes | Ending point - address, place name, or coordinates. | | `mode` | string | No | Mode: driving, walking, bicycling, or transit. Default: driving | | `hl` | string | No | Language code for results. Default: en | | `gl` | string | No | Country/region code for geo-filtering. | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/directions?origin=New+York%2C+NY&destination=Boston%2C+MA Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "directions": [], "status": "OK", "routes_count": 0 } ``` #### Google Reviews - **Docs**: https://scrappa.co/docs/google-maps-api/google_reviews - **Summary**: Fetch reviews for a Google place - **Description**: Fetch reviews for a specific business including reviewer details, ratings, timestamps, and optional owner responses. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `business_id` | string | Yes | The assigned business id by Google (e.g. 0x60188b88b7d8f7ab:0x2133080e9923eaac). | | `search` | string | No | Filter reviews by keyword. | | `sort` | string | No | Sorting order: 1 for Most Relevant, 2 for Newest, 3 for Highest Rating, 4 for Lowest Rating. | | `page` | string | No | Pagination token. | | `pages` | integer | No | Number of pages to fetch in a single request (1-50). Each page counts as one API credit. When pages > 1, response includes pages_fetched, pages_requested, and error fields. | | `limit` | string | No | Maximum number of reviews to return per page. | | `hl` | string | No | Language code for results. Default: en | | `gl` | string | No | Country/region code for geo-filtering. Default: us | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/reviews?business_id=0x60188b88b7d8f7ab%3A0x2133080e9923eaac Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "items": [ { "review_id": "ChZDSUhNMG9nS0VJQ0FnSUM1bnYzQzJ3EAE", "review_text": [ "Great place with excellent service!" ], "rating": 5, "timestamp": 1704067200, "review_link": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUM1bnYzQzJ3EAE", "review_likes": 12, "author_id": "123456789012345678901", "author_link": "https://www.google.com/maps/contrib/123456789012345678901?hl=en", "author_name": "John Doe", "author_profile_photo": "https://lh3.googleusercontent.com/a-/example_photo.jpg", "author_review_count": 45, "author_reviews_link": "https://www.google.com/maps/contrib/123456789012345678901/reviews", "author_photo_count": 12, "author_local_guide_level": 3, "owner_response_timestamp": null, "owner_response_text": null, "owner_response_language": null, "review_language": [ "en" ], "review_form": [], "images": [] } ], "nextPage": null } ``` #### Photos - **Docs**: https://scrappa.co/docs/google-maps-api/google_maps_photos - **Summary**: Download photos from a Google place - **Description**: Fetch photos for a specific business or place with contributor details and pagination support. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `business_id` | string | Yes | The unique Google Business ID (format: 0x...:0x...). | | `limit` | string | No | Maximum number of photos to return (1-20). | | `page` | string | No | Page token for pagination. | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/photos?business_id=0x8640b88f75b395a3%3A0x8771a1c312c0bd48 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "items": [], "nextPage": null } ``` #### Simple Search - **Docs**: https://scrappa.co/docs/google-maps-api/simple_search - **Summary**: Quick search for places by query - **Description**: Streamlined service for basic searches of locations, places, and points of interest on Google Maps. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | The search term that the API will use. | | `limit` | integer | No | Maximum number of results to return (1-200). | | `page` | integer | No | Page number for pagination (0-based). Default: 0 | | `hl` | string | No | Language code for results. Default: en | | `gl` | string | No | Country/region code for geo-filtering results. | | `google_domain` | string | No | Google domain to use for the search (e.g., google.com, google.de). | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/simple-search?query=restaurants+in+new+york Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "items": [ { "name": "El Bolillo Bakery", "price_level": "\u20ac", "price_level_text": "Inexpensive", "review_count": 3690, "rating": 4.7, "website": "https://www.elbolillobakery.com", "domain": "elbolillobakery.com", "latitude": 29.7604, "longitude": -95.3698, "business_id": "0x8640b88f75b395a3:0x8771a1c312c0bd48", "subtypes": [ "Bakery", "Cafe", "Coffee shop" ], "district": "Downtown", "full_address": "2421 Canal St, Houston, TX 77003", "timezone": "America/Chicago", "short_description": "Popular local bakery known for fresh bread and pastries", "full_description": "El Bolillo Bakery is a Houston favorite offering fresh baked goods daily.", "owner_id": "123456789012345678901", "owner_name": "El Bolillo Bakery (Owner)", "owner_link": "https://maps.google.com/maps/contrib/123456789012345678901", "order_link": "https://www.elbolillobakery.com/order", "google_mid": "/g/1tgb0z0z", "type": "Bakery", "phone_numbers": [ "+1 713-226-8889" ], "place_id": "ChIJo5WzdY-4QIYRSL3AEsOhcYc", "photos_sample": [ { "photo_id": "AF1QipNx1234567890", "photo_url": "https://lh3.googleusercontent.com/p/AF1QipNx...", "photo_url_large": "https://lh5.googleusercontent.com/p/AF1QipNx...", "video_thumbnail_url": null, "latitude": 29.7604, "longitude": -95.3698, "type": "photo" } ], "opening_hours": [ { "day": "Monday", "hours": [ "6:00 AM\u20138:00 PM" ], "date": null, "special_day": null }, { "day": "Tuesday", "hours": [ "6:00 AM\u20138:00 PM" ], "date": null, "special_day": null } ], "current_status": "Open", "attributes": { "service_options": { "Curbside pickup": true, "Delivery": false, "In-store pickup": true, "In-store shopping": true, "Takeout": true } }, "neighborhood": "East Downtown", "street_address_alt": "2421 Canal St", "street_address_full": "2421 Canal Street", "city": "Houston", "zip_code": "77003", "state": "Texas", "country_code": "US" } ] } ``` #### Single Review - **Docs**: https://scrappa.co/docs/google-maps-api/google_single_review - **Summary**: Get a single review by ID - **Description**: Fetch a specific review by its review ID, including full review text, rating, photos, and owner response. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `review_id` | string | Yes | The Google review ID. | | `business_id` | string | Yes | The Google business ID. | **Example request:** ``` GET https://scrappa.co/api/google-maps-api/single-review?review_id=ChZDSUhNMG9nS0VJQ0FnSUNiczl6WE1REAE&business_id=0x60188b88b7d8f7ab%3A0x2133080e9923eaac Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "review": { "review_id": "ChZDSUhNMG9nS0VJQ0FnSUNiczl6WE1REAE", "review_text": [ "Great place with excellent service!" ], "rating": 5, "timestamp": 1704067200, "review_link": "https://www.google.com/maps/reviews/data=!4m8!14m7!1m6!2m5!1sChZDSUhNMG9nS0VJQ0FnSUNiczl6WE1REAE", "review_likes": 12, "author_id": "123456789012345678901", "author_link": "https://www.google.com/maps/contrib/123456789012345678901?hl=en", "author_name": "John Doe", "author_profile_photo": "https://lh3.googleusercontent.com/a-/example_photo.jpg", "author_review_count": 45, "author_reviews_link": "https://www.google.com/maps/contrib/123456789012345678901/reviews", "author_local_guide_level": 3, "owner_response_timestamp": null, "owner_response_text": null, "owner_response_language": null, "review_language": [ "en" ], "review_form": [], "images": [] }, "business_info": null, "error": null } ``` ### Google News API Search and scrape news articles from Google News #### Google News - **Docs**: https://scrappa.co/docs/google-news-api/google_news - **Summary**: Search Google News articles - **Description**: Search and scrape news articles from Google News. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | No | Search term for news (required unless using topic_token, kgmid, publication_token, section_token, or story_token) | | `hl` | string | No | Language code for the search interface (2 characters, e.g., en, de, fr). Default: en | | `gl` | string | No | Country code for geolocation (2 characters, e.g., us, de, uk). Default: us | | `page` | integer | No | Page number for pagination (1-based). Default: 1 | | `start` | integer | No | Starting offset for pagination (0-based). Cannot be used with page parameter. | | `so` | integer | No | Sort order: 0 for relevance, 1 for date. Default: 0 | | `topic_token` | string | No | Token for specific topic browsing (cannot use with q parameter) | | `kgmid` | string | No | Knowledge Graph entity ID (format: /m/... or /g/..., use alone) | | `publication_token` | string | No | Token for specific publication browsing (cannot use with q parameter) | | `section_token` | string | No | Token for specific news section (cannot use with q parameter) | | `story_token` | string | No | Token for specific story cluster (cannot use with q parameter) | **Example request:** ``` GET https://scrappa.co/api/google/search?q=technology Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "news_results": [ { "position": 1, "title": "Example News Article", "link": "https://example.com/news/article", "type": "article", "source": { "name": "Example Source", "title": "Example Source" }, "date": "2 hours ago", "iso_date": "2025-01-15T10:30:00+00:00", "published_at": "2025-01-15 10:30:00 UTC", "thumbnail": "https://news.google.com/api/attachments/example-thumbnail.jpg", "thumbnail_small": "https://news.google.com/api/attachments/example-thumbnail-small.jpg", "snippet": "Article summary text..." } ], "menu_links": [ { "title": "Technology", "link": "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRFZ4ZERBU0FtVnVHZ0pWVXlnQVAB", "topic_token": "CAAqJggKIiBDQkFTRWdvSUwyMHZNRFZ4ZERBU0FtVnVHZ0pWVXlnQVAB" } ], "related_publications": [], "sub_menu_links": [], "highlight": null, "related_searches": [ { "position": 1, "query": "related search term", "link": "https://news.google.com/search?q=related+search+term" } ] } ``` ### Google Search API Search Google and get structured results #### Google Search - **Docs**: https://scrappa.co/docs/google-search-api/search - **Summary**: Search Google - **Description**: Perform a Google search and get structured results including organic results, related searches, knowledge graphs, and more. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `location` | string | No | Location for results (currently ignored by backend) | | `uule` | string | No | Encoded location (deprecated; supported) | | `google_domain` | string | No | Google domain (e.g., google.de) | | `gl` | string | No | Country code (e.g., us, de, fr) | | `cr` | string | No | Restrict results to countries (e.g., countryUS\|countryDE) | | `hl` | string | No | Interface language code | | `lr` | string | No | Restrict results to language (e.g., lang_en) | | `ludocid` | string | No | Google Customer ID for places | | `lsig` | string | No | Knowledge graph map signature | | `kgmid` | string | No | Knowledge graph entity ID (e.g., /g/11b6gq7c8p) | | `si` | string | No | Encrypted cached search parameters | | `ibp` | string | No | Controls rendering layouts and expansions | | `uds` | string | No | Google-provided filter strings | | `tbs` | string | No | Advanced search filters (dates, patents, etc.) | | `as_qdr` | string | No | Simple time range filter (e.g., d, w, m, y) | | `safe` | string | No | Safe search mode (active, off) | | `nfpr` | integer | No | Exclude auto-corrected results (0 or 1) | | `filter` | integer | No | Enable/disable similar/omitted filters (0 or 1) | | `tbm` | string | No | Search type (isch, vid, nws, lcl, shop, pts) | | `start` | integer | No | Result offset for pagination (0-indexed) | | `page` | integer | No | Page number for pagination (0-indexed) | | `amount` | integer | No | Results per page (1-10, may return fewer) | **Example request:** ``` GET https://scrappa.co/api/google-search-api/search?query=best+restaurants+in+Berlin&hl=en&safe=off Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "organic_results": [], "search_information": [], "related_searches": [] } ``` #### Search (Light) - **Docs**: https://scrappa.co/docs/google-search-api/google_search_light - **Summary**: Lightweight Google web search - **Description**: Lightweight web search endpoint. Returns structured JSON search results. Max 200 results per query (10 pages × 20 results). Supports query modifiers like filetype:pdf, site:reddit.com, or "exact phrase". **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query with optional modifiers | | `num` | integer | No | Number of results per page (1-20, default: 10) | | `page` | integer | No | Page number for pagination (1-10, default: 1). Mutually exclusive with "start". Internally converted to a start offset after validation. | | `start` | integer | No | Starting index for offset-based pagination (0-170). Mutually exclusive with "page". | | `hl` | string | No | Interface language code (default: en) | | `safe` | string | No | Safe search: off or active (default: off) | | `lr` | string | No | Restrict results to language (e.g., lang_en) | | `gl` | string | No | Country code for results (e.g., us, de) | | `cr` | string | No | Restrict to country (e.g., countryUS) | | `dateRestrict` | string | No | Date filter (e.g., d7 for last 7 days) | | `sort` | string | No | Sort order (e.g., date) | | `filter` | integer | No | Enable/disable duplicate filtering (0 or 1) | | `rights` | string | No | Filter by usage rights (cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived) | **Example request:** ``` GET https://scrappa.co/api/google-search-light/search?query=artificial+intelligence&num=10 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "organic_results": [ { "position": 1, "title": "Example Search Result", "link": "https://example.com/article", "displayed_link": "example.com/article", "snippet": "This is an example search result snippet that describes the content...", "snippet_highlighted_words": [ "example", "search" ], "thumbnail": "https://example.com/thumbnail.jpg", "rich_snippet": { "image": "https://example.com/image.jpg", "thumbnail": "https://example.com/thumb.jpg" } } ], "people_also_search_for": [ "related query 1", "related query 2", "related query 3" ], "search_information": { "query_displayed": "example search query", "total_results": 1500000, "time_taken": 0.42 }, "pagination": { "current_page": 1, "pages": [ { "page": 1, "start": 0 }, { "page": 2, "start": 10 }, { "page": 3, "start": 20 } ] }, "total_results": 1500000 } ``` #### Search Autocomplete - **Docs**: https://scrappa.co/docs/google-search-api/google_search_autocomplete - **Summary**: Google search suggestions - **Description**: Get search suggestions for a query prefix. Returns up to 10 suggestions based on popular searches. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query prefix | | `hl` | string | No | Language code (default: en) | | `limit` | integer | No | Max suggestions (default: 10) | **Example request:** ``` GET https://scrappa.co/api/google-search-light/autocomplete?query=how+to Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "query": "how to", "suggestions": [] } ``` ### Google Translate API Translate text between 100+ languages #### Google Translate API - **Docs**: https://scrappa.co/docs/google-translate-api/google_translate_api - **Summary**: Translate text between languages - **Description**: Translate text between 100+ languages using Google Translate. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `text` | string | Yes | The text to translate | | `source` | string | Yes | Source language code (e.g., "en", "de") | | `target` | string | Yes | Target language code (e.g., "en", "de") | **Example request:** ``` GET https://scrappa.co/api/google-translate-api/translate?text=Hello&source=en&target=de Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "translated_text": "Hallo" } ``` ### Google Trends API Search and analyze Google Trends data including interest over time, related queries, and autocomplete suggestions #### Google Trends Autocomplete - **Docs**: https://scrappa.co/docs/google-trends-api/google_trends_autocomplete - **Summary**: Get search suggestions - **Description**: Get autocomplete suggestions for a search query. Useful for discovering trending searches and related keywords. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | The partial search query to get suggestions for | | `geo` | string | No | Geographic location code (e.g., "US", "DE", "Worldwide") | | `hl` | string | No | 2-letter language code for results | **Example request:** ``` GET https://scrappa.co/api/google-trends/autocomplete?q=tesla Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "search_parameters": { "keyword": "tesla", "geo": "Worldwide", "hl": "en" }, "suggestions": [ { "value": "tesla stock", "type": "suggestion" }, { "value": "tesla model 3", "type": "suggestion" } ], "response_time_ms": 234 } ``` #### Google Trends Interest Over Time - **Docs**: https://scrappa.co/docs/google-trends-api/google_trends_interest - **Summary**: Get interest over time data - **Description**: Retrieve historical interest data for a keyword over a specified time period. Returns a timeline of interest values (0-100) showing search popularity trends. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | The search keyword to analyze (e.g., "tesla", "bitcoin", "covid") | | `geo` | string | No | Geographic location code (e.g., "US", "DE", "GB", "Worldwide") | | `time_range` | string | No | Time period for data: 1h, 4h, 1d, 7d, 30d, 90d, 1y, 5y, all | | `hl` | string | No | 2-letter language code for results (e.g., en, es, fr, de) | | `search_type` | string | No | Type of search: web, images, news, youtube, shopping | **Example request:** ``` GET https://scrappa.co/api/google-trends/interest?q=tesla&geo=US&time_range=1y Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "search_parameters": { "keyword": "tesla", "geo": "US", "time_range": "today+12-m", "hl": "en", "search_type": "web" }, "timeline_data": [ { "timestamp": 1704067200, "date": "2024-01-01", "value": 45 } ], "interest_over_time": { "average": 52.3, "max_value": 100, "min_value": 12, "data_points": [] }, "response_time_ms": 587 } ``` #### Google Trends Related Queries - **Docs**: https://scrappa.co/docs/google-trends-api/google_trends_related - **Summary**: Get related queries and topics - **Description**: Retrieve queries and topics related to your search term. Shows what else people search for in relation to your keyword. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | The search keyword to analyze | | `geo` | string | No | Geographic location code (e.g., "US", "DE", "Worldwide") | | `time_range` | string | No | Time period for data: 1h, 4h, 1d, 7d, 30d, 90d, 1y, 5y, all | | `hl` | string | No | 2-letter language code for results | | `search_type` | string | No | Type of search: web, images, news, youtube, shopping | **Example request:** ``` GET https://scrappa.co/api/google-trends/related?q=tesla&geo=US Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "search_parameters": { "keyword": "tesla", "geo": "US", "hl": "en", "search_type": "web" }, "related_queries": [ { "query": "tesla stock", "value": 85, "formatted_value": "85%" } ], "related_topics": [ { "topic": "Tesla, Inc.", "type": "Company", "value": 100, "formatted_value": "100%" } ], "response_time_ms": 623 } ``` ### Google Videos API Search and scrape videos from Google #### Google Videos - **Docs**: https://scrappa.co/docs/google-videos-api/google_videos - **Summary**: Search Google Videos - **Description**: Search and scrape video results from Google. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Search term for videos | **Example request:** ``` GET https://scrappa.co/api/google/search?q=tutorial Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "search_information": { "video_results_state": "Results for exact spelling", "query_displayed": "coffee" }, "video_results": [ { "position": 1, "title": "Coffee Brewing Tutorial", "link": "https://www.youtube.com/watch?v=example", "displayed_link": "www.youtube.com > watch", "thumbnail": "https://i.ytimg.com/vi/example/hqdefault.jpg", "snippet": "Learn how to brew coffee step by step.", "duration": "12:34", "date": "3 days ago", "video_link": "https://www.google.com/url?q=https://www.youtube.com/watch?v=example", "rich_snippet": { "top": { "extensions": [ "YouTube", "Epicurious", "2 weeks ago" ], "detected_extensions": { "weeks_ago": 2 } } }, "key_moments": [ { "time": "00:00", "title": "Intro", "link": "https://www.youtube.com/watch?v=example&t=0s" }, { "time": "02:30", "title": "Equipment Setup", "link": "https://www.youtube.com/watch?v=example&t=150s" } ] } ], "found_in_videos": [ { "position": 1, "title": "Coffee Brewing Guide", "link": "https://www.youtube.com/watch?v=found1", "thumbnail": "https://i.ytimg.com/vi/found1/hqdefault.jpg", "key_moment": { "time": "02:34", "title": "Grinding the beans" }, "channel": "Coffee Channel" } ], "short_videos": [ { "position": 1, "title": "Quick Coffee Tips", "source": "YouTube", "thumbnail": "https://i.ytimg.com/vi/short1/hqdefault.jpg", "clip": "https://www.youtube.com/shorts/short1", "link": "https://www.youtube.com/shorts/short1", "extensions": [ "YouTube", "Barista Pro" ], "profile_name": "Barista Pro" } ], "search_parameters": { "engine": "google_videos", "q": "coffee", "google_domain": "google.com", "hl": "en", "gl": "us", "safe": "off" }, "pagination": { "current": 1 }, "scrappa_pagination": { "current": 1 }, "related_searches": [] } ``` ### Immobilienscout24 API Search German real estate listings on Immobilienscout24. #### Location Autocomplete - **Docs**: https://scrappa.co/docs/immobilienscout24-api/immobilienscout24_locations - **Summary**: Location autocomplete - **Description**: Search for locations (cities, districts, postal codes) and get geocodes that can be used in property search. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search term (city, district, or postal code) | | `limit` | integer | No | Maximum results to return (default: 10) | **Example request:** ``` GET https://scrappa.co/api/immobilienscout24/locations?query=Berlin Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "locations": [ { "geocode": "1276003001", "name": "Berlin", "type": "city" }, { "geocode": "1276003001013", "name": "Berlin Mitte", "type": "district" } ] } ``` #### Price Insights - **Docs**: https://scrappa.co/docs/immobilienscout24-api/immobilienscout24_price_insights - **Summary**: Average price per m² - **Description**: Get average price per square meter for a location. Returns rental and purchase prices for apartments and houses. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `location` | string | Yes | City name, district name, or geocode (e.g., "Berlin", "Lichtenrade", "1276003001") | **Example request:** ``` GET https://scrappa.co/api/immobilienscout24/price-insights?location=Berlin Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "location": "Berlin", "geocode": "1276003001", "prices": { "apartment_rent_per_m2": 13.11, "apartment_buy_per_m2": 4173.76, "house_rent_per_m2": 16.37, "house_buy_per_m2": 4376.29 }, "currency": "EUR" } ``` #### Property Details - **Docs**: https://scrappa.co/docs/immobilienscout24-api/immobilienscout24_property - **Summary**: Get property details - **Description**: Get detailed information about a specific property listing including price breakdown, features, images, energy class, and agent contact. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | The property ID from Immobilienscout24 (e.g., "164121830") | **Example request:** ``` GET https://scrappa.co/api/immobilienscout24/property?id=164121830 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "id": "165221493", "title": "Sample listing in Berlin", "description": "Sample property description.", "type": "apartmentrent", "price": { "cold_rent": 2000, "warm_rent": 2440, "deposit": 6000, "currency": "EUR" }, "details": { "rooms": 4, "size_m2": 137, "floor": 3, "available_from": "2026-03-01", "year_built": 2018 }, "address": { "street": "Sample Street 1", "postal_code": "10115", "city": "Berlin", "district": "Mitte", "lat": 52.52, "lon": 13.405 }, "features": [ "Balcony", "Elevator" ], "energy_class": "A+", "images": [ { "url": "https://pictures.immobilienscout24.de/listings/sample.jpg", "caption": "Living room" } ], "agent": { "name": "Sample Agent", "logo_url": "https://pictures.immobilienscout24.de/agents/sample.png" }, "url": "https://www.immobilienscout24.de/expose/165221493", "published_at": null } ``` #### Property Search - **Docs**: https://scrappa.co/docs/immobilienscout24-api/immobilienscout24_search - **Summary**: Search property listings - **Description**: Search for real estate listings on Immobilienscout24 with filters for location, property type, price range, rooms, and size. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `location` | string | Yes | City name, postal code, or geocode (e.g., "Berlin", "10115", "1276003001") | | `type` | string | No | Property type: apartment-rent, apartment-buy, house-rent, house-buy (default: apartment-rent) | | `price_min` | integer | No | Minimum price in EUR | | `price_max` | integer | No | Maximum price in EUR | | `rooms_min` | number | No | Minimum number of rooms | | `rooms_max` | number | No | Maximum number of rooms | | `size_min` | integer | No | Minimum size in m² | | `size_max` | integer | No | Maximum size in m² | | `page` | integer | No | Page number for pagination | | `per_page` | integer | No | Number of results per page (max: 50, default: 20) | **Example request:** ``` GET https://scrappa.co/api/immobilienscout24/search?location=Berlin&type=apartment-rent Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "total_results": 1234, "page": 1, "total_pages": 62, "results": [ { "id": "165221493", "title": "Sample listing in Berlin", "price": 2440, "price_formatted": "2440 EUR", "rooms": 4, "size_m2": 137, "address": "Berlin, Germany", "lat": 52.52, "lon": 13.405, "image_url": "https://pictures.immobilienscout24.de/listings/sample.jpg", "url": "https://www.immobilienscout24.de/expose/165221493", "is_private": false, "published": "10 days ago" } ] } ``` ### Immowelt API Search German real estate listings on Immowelt. #### Location Autocomplete - **Docs**: https://scrappa.co/docs/immowelt-api/immowelt_locations - **Summary**: Location autocomplete - **Description**: Search for locations and get IDs that can be passed back into /immowelt/search as the `location` parameter. Returns coordinate-based suggestions via geocoding, plus optional placeId enrichment. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search term (city, district, or postal code) | | `limit` | integer | No | Maximum results to return (default: 10) | **Example request:** ``` GET https://scrappa.co/api/immowelt/locations?query=Berlin Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "locations": [] } ``` #### Places Data - **Docs**: https://scrappa.co/docs/immowelt-api/immowelt_places_data - **Summary**: Place metadata - **Description**: Fetch place metadata (labels, postal codes, coordinates) for one or more placeIds. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `place_ids` | string | Yes | Comma-separated placeIds (e.g. "AD08DE8634") | | `parent_types` | string | No | Optional comma-separated parent type keys (e.g. "AD08,AD06") | **Example request:** ``` GET https://scrappa.co/api/immowelt/placesData?place_ids=AD08DE8634 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "places": [] } ``` #### Places Hierarchy - **Docs**: https://scrappa.co/docs/immowelt-api/immowelt_places_hierarchy - **Summary**: Place parents - **Description**: Fetch parent hierarchy for a placeId. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `place_id` | string | Yes | Immowelt placeId | **Example request:** ``` GET https://scrappa.co/api/immowelt/placesHierarchy?place_id=AD08DE8634 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "hierarchy": [] } ``` #### Property Details - **Docs**: https://scrappa.co/docs/immowelt-api/immowelt_property - **Summary**: Get cached property details - **Description**: Fetch property details from Scrappa cache populated by the last /immowelt/search call. This avoids calling expose/detail endpoints that may be WAF/DataDome-blocked. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | Estate id (e.g. "estate_") or onlineId (e.g. "2kub55g") | **Example request:** ``` GET https://scrappa.co/api/immowelt/property?id=estate_f1d8e562-d663-429d-9fdd-33919737d3ea Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "property": { "id": "...", "online_id": "...", "title": "..." }, "raw": [] } ``` #### Property Search - **Docs**: https://scrappa.co/docs/immowelt-api/immowelt_search - **Summary**: Search property listings - **Description**: Search for real estate listings on Immowelt with filters for location, property type, price range, rooms, and size. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `location` | string | Yes | City name, postal code, or location ID (e.g., "Berlin", "10115", "1") | | `type` | string | No | Property type: apartment-rent, apartment-buy, house-rent, house-buy (default: apartment-rent) | | `price_min` | integer | No | Minimum price in EUR | | `price_max` | integer | No | Maximum price in EUR | | `rooms_min` | number | No | Minimum number of rooms | | `rooms_max` | number | No | Maximum number of rooms | | `size_min` | integer | No | Minimum size in m^2 | | `size_max` | integer | No | Maximum size in m^2 | | `page` | integer | No | Page number for pagination | | `per_page` | integer | No | Number of results per page (max: 50, default: 20) | **Example request:** ``` GET https://scrappa.co/api/immowelt/search?location=Berlin&type=apartment-rent Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "total_results": 1234, "page": 1, "total_pages": 62, "results": [ { "id": "estate_abc123", "online_id": "2kub55g", "title": "Sample listing in Berlin", "price": 2440, "price_formatted": "2.440 EUR", "rooms": 4, "rooms_max": null, "size_m2": 137, "size_m2_max": null, "address": "Berlin, Germany", "lat": 52.52, "lon": 13.405, "image_url": "https://pictures.immowelt.de/sample.jpg", "url": "https://www.immowelt.de/expose/2kub55g", "is_private": false, "published": "2024-01-15T10:00:00Z" } ] } ``` #### Search Count - **Docs**: https://scrappa.co/docs/immowelt-api/immowelt_count - **Summary**: Total results count - **Description**: Get total listing count for a placeId + distribution + estateType using Immowelt BFF. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `place_id` | string | Yes | Immowelt placeId (e.g. "AD08DE8634" for Berlin) | | `distribution` | string | No | Rent or Buy (default: Rent) | | `estate_type` | string | No | Apartment or House (default: Apartment) | **Example request:** ``` GET https://scrappa.co/api/immowelt/count?place_id=AD08DE8634&distribution=Rent&estate_type=Apartment Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "total_count": 5132 } ``` ### Indeed Jobs API Search job listings from Indeed #### Indeed Jobs Search - **Docs**: https://scrappa.co/docs/indeed-jobs-api/indeed_jobs - **Summary**: Search Indeed job listings - **Description**: Search job listings from Indeed with various filters. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Job search query | | `location` | string | No | Location for job search | | `country` | string | No | 2-letter country code (e.g., US, UK, DE) | | `radius` | integer | No | Search radius (0-100) | | `radius_unit` | string | No | Radius unit (MILES or KILOMETERS) | | `job_type` | string | No | Job type (full_time, part_time, contract, internship, remote) | | `sort` | string | No | Sort order (relevance or date) | | `limit` | integer | No | Results per page (1-100) | | `cursor` | string | No | Pagination cursor from previous response | | `hl` | string | No | Interface language for results. 2-letter language code (e.g., en, de, fr, es). Default: en | | `gl` | string | No | Geolocation/country for localized results. 2-letter country code (e.g., US, DE, GB, FR). Default: US | **Example request:** ``` GET https://scrappa.co/api/indeed/jobs?query=software+engineer&location=Berlin&country=DE&job_type=full_time&limit=20 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "jobs": [ { "id": "a1b2c3d4e5f6", "title": "Senior Software Engineer", "company": { "name": "TechCorp Inc.", "logo": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/128x128/techcorp.png", "website": "https://www.techcorp.com" }, "location": { "city": "San Francisco", "state": "CA", "country": "US", "formatted": "San Francisco, CA", "is_remote": false }, "date_published": "2026-02-01 10:30:00", "apply_url": "https://www.indeed.com/viewjob?jk=a1b2c3d4e5f6" } ], "pagination": { "next_cursor": "eyJwYWdlIjoxfQ==", "has_more": true }, "metadata": { "total_results": 20, "timestamp": "2026-02-03T00:00:00Z" } } } ``` ### Instagram API Scrape Instagram user profiles, posts, and individual post details. Access public Instagram data including images, videos, captions, engagement metrics, and more. #### Instagram Post - **Docs**: https://scrappa.co/docs/instagram-api/instagram_post - **Summary**: Get details of an Instagram post - **Description**: Retrieve detailed information about a specific Instagram post by URL. For best results, use URLs that include the username (e.g., instagram.com/username/p/ABC123/). URLs without username (e.g., instagram.com/p/ABC123/) will attempt automatic username discovery, but this may not always succeed. Returns media URLs, captions, engagement metrics, author info, and tagged users. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | No | Instagram post URL. Recommended format: https://www.instagram.com/username/p/ABC123/ (URLs without username may have limited success) | | `shortcode` | string | No | Instagram post shortcode (e.g., DUBtwxGEqz2). Use when you do not have a full URL. | **Example request:** ``` GET https://scrappa.co/api/instagram/post?url=https%3A%2F%2Fwww.instagram.com%2Finstagram%2Fp%2FDUBtwxGEqz2%2F Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "id": "3819535222330010870", "shortcode": "DUBtwxGEqz2", "media_type": "video", "caption": "Amazing content! #instagram #viral", "hashtags": [ "instagram", "viral" ], "taken_at": "2024-01-15T10:30:00+00:00", "like_count": 125000, "comment_count": 3500, "play_count": 5000000, "media": [ { "type": "video", "thumbnail_url": "https://...", "video_url": "https://...", "video_versions": [] } ], "location": { "id": "123456", "name": "Los Angeles" }, "author": { "id": "25025320", "username": "instagram", "full_name": "Instagram", "profile_pic_url": "https://...", "is_verified": true }, "collaborators": [], "tagged_users": [], "permalink": "https://www.instagram.com/p/DUBtwxGEqz2/" } } ``` #### Instagram User - **Docs**: https://scrappa.co/docs/instagram-api/instagram_user - **Summary**: Get Instagram user profile - **Description**: Retrieve an Instagram user profile including biography, bio links, follower/following counts, and profile picture. Use the separate /user/posts endpoint to fetch the user's posts. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `username` | string | Yes | Instagram username (without @) | **Example request:** ``` GET https://scrappa.co/api/instagram/user?username=instagram Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "user": { "id": "25025320", "username": "instagram", "full_name": "Instagram", "biography": "Discover what's next. \ud83d\udcf8", "bio_links": [ { "title": "", "url": "https://about.instagram.com", "link_type": "external" } ], "external_url": "https://about.instagram.com", "profile_pic_url": "https://...", "profile_pic_url_hd": "https://...", "is_verified": true, "is_private": false, "is_business_account": true, "is_professional_account": true, "category_name": "App Page", "follower_count": 676000000, "following_count": 72, "media_count": 7800, "pronouns": [] } } ``` #### Instagram User Posts - **Docs**: https://scrappa.co/docs/instagram-api/instagram_user_posts - **Summary**: Get Instagram user posts - **Description**: Retrieve an Instagram user's posts with pagination support. Returns post details including media URLs, captions, engagement metrics, and a pagination cursor for fetching more posts. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `username` | string | Yes | Instagram username (without @) | | `max_id` | string | No | Pagination cursor from previous response (next_max_id) | **Example request:** ``` GET https://scrappa.co/api/instagram/user?username=instagram Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "posts": [ { "id": "3819535222330010870", "shortcode": "DUBtwxGEqz2", "media_type": "video", "caption": "Post caption text...", "hashtags": [ "instagram", "reels" ], "taken_at": "2024-01-15T10:30:00+00:00", "like_count": 125000, "comment_count": 3500, "play_count": 5000000, "media": [ { "type": "video", "thumbnail_url": "https://...", "video_url": "https://..." } ], "location": { "id": "123456", "name": "Los Angeles, California" }, "author": { "username": "instagram" }, "permalink": "https://www.instagram.com/instagram/p/DUBtwxGEqz2/" } ], "posts_count": 12, "more_available": true, "next_max_id": "QVFDcF..." } ``` ### Jameda API Search doctors, get reviews, profiles, appointment availability, and more from Jameda - Germany's leading medical directory #### Jameda Appointment Slots (DEPRECATED) - **Docs**: https://scrappa.co/docs/jameda-api/jameda_slots - **Summary**: DEPRECATED - Booking API has changed - **Description**: WARNING: This endpoint is currently broken. The booking-service.jameda.de domain no longer exists. Jameda migrated to a new v3 API that requires different parameters and OAuth authentication. Use the doctor-details endpoint to get booking_ids (doctor_id + address_id) which can be used with the new API. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `profile_id` | string | No | Doctor profile ID (deprecated - new API uses doctor_id + address_id) | | `service_id` | string | No | Service ID (optional) | | `from` | string | No | Start datetime in ISO8601 format | | `to` | string | No | End datetime in ISO8601 format | | `insuranceType` | string | No | Filter by insurance type: statutory or private | **Example request:** ``` GET https://scrappa.co/api/jameda/slots?profile_id=81157780 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "error": "Gone", "message": "This endpoint is deprecated. The booking-service.jameda.de domain no longer exists.", "migration_info": { "new_api": "https://www.jameda.de/api/v3/doctors/{doctor_id}/addresses/{address_id}/slots", "required_params": [ "doctor_id", "address_id", "start", "end" ], "authentication": "OAuth bearer token required", "how_to_get_ids": "Use the /api/jameda/doctor-details endpoint to get booking_ids (doctor_id + address_id)" } } ``` #### Jameda Doctor Details - **Docs**: https://scrappa.co/docs/jameda-api/jameda_doctor_details - **Summary**: Get doctor profile and reviews - **Description**: Get detailed doctor information, reviews, and ratings from Jameda. The doctor_url parameter accepts multiple formats: full URL (https://www.jameda.de/dr-name/specialty/city), path with leading slash (/dr-name/specialty/city), or path without leading slash (dr-name/specialty/city). All formats are normalized internally. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `doctor_url` | string | Yes | Doctor URL path or full URL (e.g., /dr-name/specialty/city or https://www.jameda.de/dr-name/specialty/city) | **Example request:** ``` GET https://scrappa.co/api/jameda/doctor-details?doctor_url=%2Fmeike-hutzenlaub%2Forthopaede%2Faachen Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [], "meta": { "url": "https://www.jameda.de/meike-hutzenlaub/orthopaede/aachen", "duration_ms": 123.45, "scraped_at": "2026-01-01T00:00:00Z" } } ``` #### Jameda Doctor Reviews - **Docs**: https://scrappa.co/docs/jameda-api/jameda_reviews - **Summary**: Get doctor reviews - **Description**: Get patient reviews and ratings for a specific doctor on Jameda. The doctor_url parameter accepts multiple formats: full URL (https://www.jameda.de/dr-name/specialty/city), path with leading slash (/dr-name/specialty/city), or path without leading slash (dr-name/specialty/city). All formats are normalized internally. Full pagination is supported - use the page parameter to navigate through all reviews. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `doctor_url` | string | Yes | Doctor URL path or full URL (e.g., /dr-name/specialty/city or https://www.jameda.de/dr-name/specialty/city) | | `page` | integer | No | Page number (1-500) | | `sort` | string | No | Sort order applied locally to available reviews: newest, oldest, highest, lowest | | `rating` | string | No | Filter by rating (1-5), comma-separated for multiple (e.g., "4,5") | | `per_page` | integer | No | Results per page (1-100) applied locally | **Example request:** ``` GET https://scrappa.co/api/jameda/reviews?doctor_url=%2Fmeike-hutzenlaub%2Forthopaede%2Faachen Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [], "meta": { "pagination": { "currentPage": 1, "totalPages": 5, "totalReviews": 50, "resultsPerPage": 10, "hasNextPage": true, "hasPreviousPage": false } } } ``` #### Jameda Doctor Services (DEPRECATED) - **Docs**: https://scrappa.co/docs/jameda-api/jameda_services - **Summary**: DEPRECATED - Booking API has changed - **Description**: WARNING: This endpoint is currently broken. The booking-service.jameda.de domain no longer exists. Use the doctor-details endpoint to get booking_ids instead. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `profile_id` | string | No | Doctor profile ID | **Example request:** ``` GET https://scrappa.co/api/jameda/services?profile_id=81157780 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "error": "Gone", "message": "This endpoint is deprecated. The booking-service.jameda.de domain no longer exists.", "migration_info": { "new_api": "https://www.jameda.de/api/v3/doctors/{doctor_id}/addresses/{address_id}/services/calendar", "required_params": [ "doctor_id", "address_id" ], "authentication": "OAuth bearer token required", "how_to_get_ids": "Use the /api/jameda/doctor-details endpoint to get booking_ids (doctor_id + address_id)" } } ``` #### Jameda Location Autocomplete - **Docs**: https://scrappa.co/docs/jameda-api/jameda_autocomplete_location - **Summary**: Get location suggestions - **Description**: Get autocomplete suggestions for locations. Both "q" and "query" parameters are accepted for backward compatibility, but "q" is preferred. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Location search query (preferred parameter). When building URLs manually, encode special characters (ä=%C3%A4, ö=%C3%B6, ü=%C3%BC). Libraries like URLSearchParams and http_build_query handle this automatically. | **Example request:** ``` GET https://scrappa.co/api/jameda/autocomplete-location?q=M%C3%BCnchen Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "suggests": [] } ``` #### Jameda Search - **Docs**: https://scrappa.co/docs/jameda-api/jameda_search - **Summary**: Search doctors on Jameda - **Description**: Search for doctors on Jameda by specialty or doctor name with optional location. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Search query (specialty or doctor name). When building URLs manually, encode special characters (ä=%C3%A4, ö=%C3%B6, ü=%C3%BC). Libraries like URLSearchParams and http_build_query handle this automatically. | | `loc` | string | No | City or location (optional). When building URLs manually, encode special characters (ä=%C3%A4, ö=%C3%B6, ü=%C3%BC). Libraries like URLSearchParams and http_build_query handle this automatically. | | `page` | integer | No | Page number (1-500) | | `per_page` | integer | No | Results per page (1-28) | **Example request:** ``` GET https://scrappa.co/api/jameda/search?q=Zahnarzt&loc=Berlin Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [], "meta": { "page": 1, "duration_ms": 123.45 } } ``` #### Jameda Service Autocomplete - **Docs**: https://scrappa.co/docs/jameda-api/jameda_autocomplete_service - **Summary**: Get service suggestions - **Description**: Get autocomplete suggestions for medical services and specialties. Both "q" and "query" parameters are accepted for backward compatibility, but "q" is preferred. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Service or specialty search query (max 100 characters, preferred parameter). When building URLs manually, encode special characters (ä=%C3%A4, ö=%C3%B6, ü=%C3%BC). Libraries like URLSearchParams and http_build_query handle this automatically. | **Example request:** ``` GET https://scrappa.co/api/jameda/autocomplete-service?q=Zahnarzt Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "suggests": [ { "header": "Fachbereiche & Symptome", "list": [] } ] }, "meta": { "query": "Zahnarzt", "duration_ms": 123.45, "source": "jameda_elements" } } ``` ### Kleinanzeigen API Search listings on Kleinanzeigen (eBay Kleinanzeigen) #### Kleinanzeigen Details - **Docs**: https://scrappa.co/docs/kleinanzeigen-api/kleinanzeigen_details - **Summary**: Get listing details - **Description**: Get details for a specific Kleinanzeigen listing. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `ad_id` | string | Yes | The unique identifier of the Kleinanzeigen ad | **Example request:** ``` GET https://scrappa.co/api/kleinanzeigen/details?ad_id=2987654321 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "title": "Example Listing", "price": "\u20ac50" } ``` #### Kleinanzeigen Search - **Docs**: https://scrappa.co/docs/kleinanzeigen-api/kleinanzeigen_search - **Summary**: Search Kleinanzeigen listings - **Description**: Search for listings on Kleinanzeigen. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `location` | string | No | Location filter (e.g., Berlin) | | `page` | integer | No | Page number for pagination (1-100) | | `category` | string | No | Category filter (e.g., elektronik, auto) | | `price_min` | integer | No | Minimum price filter in EUR | | `price_max` | integer | No | Maximum price filter in EUR | **Example request:** ``` GET https://scrappa.co/api/kleinanzeigen/search?query=iphone&location=Berlin&page=1&category=elektronik&price_min=50&price_max=500 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "listings": [] } ``` #### Kleinanzeigen Shipping Options - **Docs**: https://scrappa.co/docs/kleinanzeigen-api/kleinanzeigen_shipping - **Summary**: Get shipping options - **Description**: Get available shipping options for Kleinanzeigen. **Example response (truncated):** ```json { "options": [] } ``` ### Kununu API Search companies, get reviews, profiles, and company details from Kununu #### Kununu Company Details - **Docs**: https://scrappa.co/docs/kununu-api/kununu_company_details - **Summary**: Get company details - **Description**: Get detailed company information and statistics from Kununu. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `country` | string | Yes | Country code (de, at, ch) | | `company_slug` | string | Yes | Company slug (e.g., "bmwgroup", "sap-se") | **Example request:** ``` GET https://scrappa.co/api/kununu/company-details?country=de&company_slug=bmwgroup Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "company": [] } ``` #### Kununu Industries - **Docs**: https://scrappa.co/docs/kununu-api/kununu_industries - **Summary**: List available industries - **Description**: Get list of industry categories on Kununu. **Example response (truncated):** ```json { "success": true, "data": [ { "id": 1, "name": "Banken / Finanzdienstleistungen" } ], "meta": { "total": 44, "description": "All available Kununu industry categories with their IDs" } } ``` #### Kununu Profiles - **Docs**: https://scrappa.co/docs/kununu-api/kununu_profiles - **Summary**: Get company profiles - **Description**: Get company profiles from Kununu. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `page` | integer | No | Page number for pagination (default: 1) | | `countries` | array | No | Country codes filter (de, at, ch) | | `industry` | integer | No | Industry ID filter (1-44) | **Example request:** ``` GET https://scrappa.co/api/kununu/profiles?page=1 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "uuid": "company-uuid", "name": "Example Company", "slug": "example-company", "url": "https://www.kununu.com/de/example-company", "logo": "https://example.com/logo.png", "industry": 1, "searchImage": "https://example.com/search-image.jpg", "location": { "city": "Munich", "countryCode": "de" }, "ratings": { "overall": 4.2, "rounded": 4 }, "reviewCount": 150, "totalJobs": 25, "isTopCompany": true, "benefits": [] } ], "meta": { "pagination": { "currentPage": 1, "totalPages": 10, "resultsStart": 0, "resultsEnd": 20, "totalResults": 200 }, "duration_ms": 123.45 } } ``` #### Kununu Reviews - **Docs**: https://scrappa.co/docs/kununu-api/kununu_reviews - **Summary**: Fetch company reviews - **Description**: Get reviews for a specific company on Kununu. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `country` | string | Yes | Country code (de, at, ch) | | `company_slug` | string | Yes | Company slug (e.g., "bmw-group", "sap-se") | | `company_id` | string | Yes | Company UUID | | `page` | integer | No | Page number for pagination (default: 1) | | `review_type` | string | No | Type of reviews: "employees" or "candidates" (default: "employees") | | `sort` | string | No | Sort order: "worst", "best", "newest", "oldest" | | `score_filters[]` | array | No | Filter by ratings: "excellent", "good", "satisfactory", "subpar" | | `recommended_filters[]` | array | No | Filter by recommendation: "yes" or "no" | | `jobstatus_filters[]` | array | No | Filter by employment status: "current" or "former" | | `position_filters[]` | array | No | Filter by position: "employee", "manager", "apprentice", "student", "intern", "freelancer", "contractor" | | `department_filters[]` | array | No | Filter by department: "administration", "sales", "legal", "operations", "recruiting", "communication", "product", "logistic", "it", "management", "research", "controlling", "design", "procurement" | | `response_filters[]` | array | No | Filter by employer response: "yes" or "no" | | `date_filters[]` | array | No | Filter by review age: "24months", "12months", "6months", "30days" | | `fetch_factor_scores` | boolean | No | Include detailed factor ratings in response (adds ratings array with items like {"id": "workLifeBalance", "score": 4.5, "roundedScore": 5.0, "text": "Work-life balance"}) | **Example request:** ``` GET https://scrappa.co/api/kununu/reviews?country=de&company_slug=bmw-group&company_id=3f2504e0-4f89-11d3-9a0c-0305e82c3301 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "uuid": "review-uuid", "type": "employer", "typeVersion": "v1_dach", "source": null, "title": "Great team", "score": 4.2, "roundedScore": 4, "createdAt": "2026-01-01T00:00:00.000Z", "updatedAt": "2026-01-02T00:00:00.000Z", "displayStatus": "published", "multipleReview": false, "apprenticeshipJob": false, "position": "employee", "department": "research", "texts": [ { "id": "positive", "text": "Great team environment" }, { "id": "suggestion", "text": "Better coffee" } ], "responses": [ { "id": "response-1", "text": "Thank you for your feedback", "createdAt": "2026-01-03T00:00:00.000Z", "author": "HR Team" } ], "reactions": { "agree": { "count": 5 }, "helpful": { "count": 3 } }, "company": { "uuid": "company-uuid", "name": "Example Company", "slug": "example-company", "location": { "city": "Munich", "state": "Bavaria", "countryCode": "de" } } } ], "meta": { "pagination": { "currentPage": 1, "totalPages": 1, "resultsStart": 0, "resultsEnd": 1, "totalResults": 1 }, "filters": { "score": { "excellent": 123, "good": 456, "satisfactory": 78, "subpar": 12 }, "recommended": { "yes": 789, "no": 101 }, "jobstatus": { "current": 234, "former": 567 }, "position": { "employee": 890, "manager": 123 }, "department": { "it": 456, "sales": 789 }, "response": { "yes": 321, "no": 654 } }, "duration_ms": 123.45, "cached": false } } ``` #### Kununu Search - **Docs**: https://scrappa.co/docs/kununu-api/kununu_search - **Summary**: Search companies on Kununu - **Description**: Search for companies on Kununu by keywords or company names. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `limit` | integer | No | Max results (1-100) | | `offset` | integer | No | Number of results to skip (for pagination) | | `countries[]` | array | No | Country codes filter | | `industry` | integer | No | Industry ID filter (1-44) | **Example request:** ``` GET https://scrappa.co/api/kununu/search?query=BMW Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "id": "company-uuid", "uuid": "company-uuid", "name": "Example Company", "slug": "example-company", "url": "https://www.kununu.com/de/example-company", "logo": "https://example.com/logo.png", "industry": 1, "searchImage": "https://example.com/search-image.jpg", "location": { "city": "Munich", "countryCode": "de" }, "ratings": { "overall": 4.2, "rounded": 4 }, "reviewCount": 150, "totalJobs": 25, "isTopCompany": true, "benefits": [] } ], "meta": { "pagination": { "currentPage": 1, "totalPages": 20, "resultsStart": 1, "resultsEnd": 10, "totalResults": 200, "limit": 10, "offset": 0 }, "filters": { "countries": [ "de", "at", "ch" ] }, "duration_ms": 123.45, "cached": false, "cached_at": null } } ``` ### LinkedIn API Scrape LinkedIn profiles, companies, posts, and jobs #### LinkedIn Company - **Docs**: https://scrappa.co/docs/linkedin-api/linkedin_company - **Summary**: Get company information - **Description**: Scrape LinkedIn company page information. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | LinkedIn company URL | | `use_cache` | boolean | No | Whether to use cached results (default: false) | | `maximum_cache_age` | integer | No | Maximum age of cached results in seconds | **Example request:** ``` GET https://scrappa.co/api/linkedin/company?url=https%3A%2F%2Fwww.linkedin.com%2Fcompany%2Fmicrosoft%2F Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "company": [] } ``` #### LinkedIn Job - **Docs**: https://scrappa.co/docs/linkedin-api/linkedin_job - **Summary**: Get job posting details - **Description**: Scrape public LinkedIn job posting information including title, company, location, description, and application details. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | LinkedIn job URL | | `use_cache` | boolean | No | Whether to use cached results (default: false) | | `maximum_cache_age` | integer | No | Maximum age of cached results in seconds | **Example request:** ``` GET https://scrappa.co/api/linkedin/job?url=https%3A%2F%2Fwww.linkedin.com%2Fjobs%2Fview%2F4193260076 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "job_id": "4193260076", "title": "Teamleitung SAP Consulting Development (all genders)", "company_name": "adesso SE", "company_url": "https://www.linkedin.com/company/adesso-se", "location": "Dortmund, Germany", "description": "

We are looking for an experienced team lead to drive our SAP consulting practice...

", "employment_type": "FULL_TIME", "date_posted": "2024-11-22", "valid_through": "2025-01-31", "url": "https://www.linkedin.com/jobs/view/4193260076", "apply_url": null, "cached": false, "cached_at": null } ``` #### LinkedIn Post - **Docs**: https://scrappa.co/docs/linkedin-api/linkedin_post - **Summary**: Get post details - **Description**: Get details from a LinkedIn post or article. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | LinkedIn post URL | | `use_cache` | boolean | No | Whether to use cached results (default: false) | | `maximum_cache_age` | integer | No | Maximum age of cached results in seconds | **Example request:** ``` GET https://scrappa.co/api/linkedin/post?url=https%3A%2F%2Fwww.linkedin.com%2Fposts%2Fjohn-doe_technology-innovation-activity-1234567890 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "post": { "media": [ { "url": "https://media.licdn.com/image1.jpg", "type": "image" } ], "author": { "name": "John Doe", "headline": "Software Engineer at TechCorp", "profileUrl": "https://www.linkedin.com/in/john-doe" }, "content": "Excited to share our latest product update...", "postUrl": "https://www.linkedin.com/posts/john-doe_technology-innovation-activity-1234567890", "hashtags": [ "#technology", "#innovation" ], "engagement": { "likes": 342, "comments": 28, "reposts": 15, "total": 385 }, "publishedAt": "2024-01-15T10:30:00+00:00", "comments": [ { "author": "Jane Smith", "text": "Great post! Thanks for sharing.", "date": "2024-01-15T11:00:00+00:00" } ] }, "cached": false, "cached_at": null }, "message": "LinkedIn post data retrieved successfully" } ``` #### LinkedIn Profile - **Docs**: https://scrappa.co/docs/linkedin-api/linkedin_profile - **Summary**: Get LinkedIn profile data - **Description**: Scrape public LinkedIn profile information including experience, education, and skills. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | LinkedIn profile URL | **Example request:** ``` GET https://scrappa.co/api/linkedin/profile?url=https%3A%2F%2Fwww.linkedin.com%2Fin%2Fwilliamhgates%2F Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "name": "Bill Gates", "image": "https://media.licdn.com/dms/image/v2/C4E03AQH...", "location": "Seattle, WA", "followers": 35000000, "connections": "500+", "about": "Co-chair of the Bill & Melinda Gates Foundation...", "job_titles": [ "Co-chair", "Founder", "Co-founder" ], "experience": [ { "company": "Bill & Melinda Gates Foundation", "url": "https://www.linkedin.com/company/bill-&-melinda-gates-foundation", "start_date": 2000, "end_date": null } ], "education": [ { "school": "Harvard University", "url": "https://www.linkedin.com/school/harvard-university", "start_date": 1973, "end_date": 1975 } ], "articles": [ { "title": "The Future of Innovation", "url": "https://www.linkedin.com/pulse/future-innovation", "date_published": "2024-01-15", "likes": 12500, "image": "https://media.licdn.com/article-image.jpg" } ], "activity": [ { "title": "Shared a post about climate change", "activityType": "Shared post", "link": "https://www.linkedin.com/posts/activity-123", "image": "https://media.licdn.com/activity-image.jpg" } ], "publications": [ { "name": "How to Avoid a Climate Disaster", "url": "https://www.linkedin.com/pulse/climate-disaster" } ], "projects": [ { "name": "Breakthrough Energy", "url": "https://www.linkedin.com/projects/breakthrough-energy", "dateRange": "2015 - Present", "description": "Investing in clean energy innovation", "contributors": [ { "name": "John Smith", "link": "https://www.linkedin.com/in/johnsmith", "image": "https://media.licdn.com/contributor.jpg" } ] } ], "recommendations": [ { "name": "Jane Doe", "link": "https://www.linkedin.com/in/janedoe", "image": "https://media.licdn.com/recommender.jpg", "text": "Bill is an inspiring leader..." } ], "similar_profiles": [ { "name": "Satya Nadella", "url": "https://www.linkedin.com/in/satya-nadella", "location": "Redmond, WA" } ], "skills": [ "Philanthropy", "Technology", "Leadership", "Public Speaking" ], "cached": false } ``` #### LinkedIn Search - **Docs**: https://scrappa.co/docs/linkedin-api/linkedin_search - **Summary**: Search LinkedIn via Google - **Description**: Search LinkedIn profiles and content via Google. Returns structured results from LinkedIn pages indexed by Google. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query for LinkedIn content | | `num` | integer | No | Number of results (1-20, default: 10) | | `page` | integer | No | Page number for pagination (1-10). Mutually exclusive with start. | | `start` | integer | No | Starting index for pagination (0-170). Mutually exclusive with page. | | `hl` | string | No | 2-letter language code for interface (e.g., en, de, fr). | | `lr` | string | No | Restrict results to a language (format: lang_xx). | | `gl` | string | No | 2-letter country code for geolocation (e.g., us, de). | | `cr` | string | No | Restrict results to a country (format: countryXX). | | `safe` | string | No | Adult content filtering (active or off). | | `dateRestrict` | string | No | Filter by date range (d7, w1, m1, y1). | | `sort` | string | No | Sort by date (date, date:r, date:d). | | `filter` | integer | No | Enable/disable duplicate filtering (0 or 1). | | `rights` | string | No | Usage rights filter (cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived). | **Example request:** ``` GET https://scrappa.co/api/linkedin/search?query=software+engineer Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "organic_results": [], "search_information": [] } ``` ### Pinterest API Search pins and boards on Pinterest #### Pinterest Search - **Docs**: https://scrappa.co/docs/pinterest-api/pinterest_search - **Summary**: Search Pinterest pins - **Description**: Search for pins on Pinterest by keyword. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query for Pinterest pins | | `limit` | integer | No | Number of results to request from Pinterest (max 250). Default: 250. Note: Pinterest may return a different number of results than requested. | | `bookmark` | string | No | Pagination token from a previous response. | **Example request:** ``` GET https://scrappa.co/api/pinterest/search?query=home+decor&limit=25 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "pins": [ { "is_video": false, "video_url": null, "video_duration": null } ], "nextBookmark": null } ``` ### Redfin API Search real estate listings and property data from Redfin #### Redfin Locations - **Docs**: https://scrappa.co/docs/redfin-api/redfin_locations - **Summary**: Search for locations - **Description**: Search for locations (cities, ZIP codes, neighborhoods) and get region IDs for use with the search endpoint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | City, ZIP code, or neighborhood name | **Example request:** ``` GET https://scrappa.co/api/redfin/locations?query=Seattle%2C+WA Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "locations": [] } } ``` #### Redfin Property - **Docs**: https://scrappa.co/docs/redfin-api/redfin_property - **Summary**: Get property details - **Description**: Get detailed information about a specific Redfin property. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `property_id` | integer | Yes | Redfin property ID (e.g., 60791456 from URL /home/60791456) | **Example request:** ``` GET https://scrappa.co/api/redfin/property?property_id=60791456 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": [] } ``` #### Redfin Search - **Docs**: https://scrappa.co/docs/redfin-api/redfin_search - **Summary**: Search Redfin listings - **Description**: Search for real estate listings on Redfin using a region_id, region_type, and market from the locations endpoint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `region_id` | integer | Yes | Region identifier from /api/redfin/locations. | | `region_type` | integer | Yes | Region type: 1=neighborhood, 2=ZIP, 5=county, 6=city. | | `market` | string | Yes | Market identifier from /api/redfin/locations (e.g., seattle, socal, dc, nyc). | | `min_price` | integer | No | Minimum price filter | | `max_price` | integer | No | Maximum price filter | | `num_beds` | integer | No | Minimum number of bedrooms | | `num_baths` | number | No | Minimum number of bathrooms | | `property_types` | string | No | Comma-separated property types (1-8). | | `status` | integer | No | Listing status: 1=active, 9=all, 130=pending, 131=active+pending. | | `sold_within_days` | integer | No | Include properties sold within this many days (1-365). Required for some regions like Seattle. | | `num_homes` | integer | No | Number of results per page (max 450). | | `page` | integer | No | Page number for pagination. | **Example request:** ``` GET https://scrappa.co/api/redfin/search?region_id=16163®ion_type=6&market=seattle&sold_within_days=30 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "listings": [] } ``` #### Redfin Valuation - **Docs**: https://scrappa.co/docs/redfin-api/redfin_valuation - **Summary**: Get property valuation - **Description**: Get home valuation estimate using Redfin's automated valuation model (AVM). Property ID can be found in search results or extracted from Redfin property URLs (e.g., /home/194191988). **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `property_id` | integer | Yes | Redfin property ID (e.g., 194191988 from URL /home/194191988) | | `listing_id` | integer | No | Redfin listing ID (optional) | **Example request:** ``` GET https://scrappa.co/api/redfin/valuation?property_id=194191988 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "predictedValue": 500000 } } ``` ### SimilarWeb API Get website traffic and analytics data #### SimilarWeb - **Docs**: https://scrappa.co/docs/similarweb-api/similarweb - **Summary**: Website traffic analytics and rankings - **Description**:

Get website traffic analytics, rankings, and engagement metrics for any domain. Returns global/country rankings, monthly traffic estimates, traffic source breakdown, and top keywords.

**Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `domain` | string | Yes |

The domain to analyze. Can be provided with or without protocol/www prefix (e.g., example.com, https://www.example.com).

| **Example response (truncated):** ```json { "title": "Google", "domain": "google.com", "category": "Computers_Electronics_and_Technology/Search_Engines", "site_name": "google.com", "engagement": { "visits": 82900000000, "bounce_rate": 0.28, "time_on_site": 634.34, "page_per_visit": 8.48 }, "global_rank": 1, "country_code": 840, "country_rank": 1, "top_keywords": [ { "share": 0.15, "volume": 673000000, "keyword": "google" } ], "top_countries": [ { "share": 0.24, "country_code": "US" }, { "share": 0.05, "country_code": "IN" } ], "traffic_sources": { "mail": 0.009, "direct": 0.77, "search": 0.11, "social": 0.025, "referrals": 0.08 } } ``` ### Startpage Search API Privacy-focused anonymous search engine #### Startpage Search - **Docs**: https://scrappa.co/docs/startpage-api/startpage_search - **Summary**: Search the web using Startpage - **Description**: Search the web using Startpage, a privacy-focused search engine that provides anonymous search results without tracking users. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | The search query string. Example: `privacy tips` | | `language` | string | No | Language filter for search results. Values: `english`, `deutsch`, `french`, `spanish`, `italian`, `portuguese`, `dutch`, `russian`, `chinese`, `japanese`, `arabic`, `all`. Default: `english` | | `page` | integer | No | Page number for pagination. Range: 0-10. Default: 0 | | `safe_search` | boolean | No | Safe search filter to exclude adult content. Values: `true`, `false`. Default: `false` | **Example request:** ``` GET https://scrappa.co/api/startpage/search?query=privacy+tips Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": [ { "position": 1, "title": "Privacy Tips - Example", "description": "Example search result demonstrating the response format from Startpage.", "url": "https://example.com/privacy-tips", "domain": "example.com" } ], "people_also_search_for": [], "people_also_ask": [], "knowledge_graph": null, "see_results_about": null, "twitter_card": null, "total_results": 1, "source": "startpage" } ``` ### Statista API Search statistics, get chart data, and access statistical content from Statista #### Statista Autocomplete - **Docs**: https://scrappa.co/docs/statista-api/statista_autocomplete - **Summary**: Get autocomplete suggestions from Statista - **Description**: Get search autocomplete suggestions from Statista for a given term. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `term` | string | Yes | Search term for autocomplete | **Example request:** ``` GET https://scrappa.co/api/statista/autocomplete?term=electric Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "label": "electric vehicles", "value": "electric vehicles" }, { "label": "electric cars", "value": "electric cars" } ], "meta": { "term": "electric", "total_results": 2, "cached": false, "duration_ms": 123.45 } } ``` #### Statista Chart Detail - **Docs**: https://scrappa.co/docs/statista-api/statista_chart_detail - **Summary**: Get details for a specific Statista chart - **Description**: Get detailed information for a specific Statista Chart of the Day, including title, description, source, and structured data. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `chart_id` | integer | Yes | The chart ID | | `slug` | string | No | URL slug for the chart (optional) | **Example request:** ``` GET https://scrappa.co/api/statista/chart-detail?chart_id=12345&slug=electric-vehicles Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "title": "The Rise of Electric Vehicles", "description": "This chart shows the global rise of electric vehicle adoption.", "image_url": "https://cdn.statista.com/chart/12345.jpg", "source": "Statista", "date": "Jan 15, 2026", "author": "Statista Research Department" }, "meta": { "chart_id": 12345, "cached": false, "duration_ms": 456.78 } } ``` #### Statista Chart of the Day - **Docs**: https://scrappa.co/docs/statista-api/statista_chart_of_the_day - **Summary**: Get daily chart listings from Statista - **Description**: Get the Chart of the Day listings from Statista, including infographics and daily data visualizations. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `page` | integer | No | Page number (default: 1) | **Example request:** ``` GET https://scrappa.co/api/statista/chart-of-the-day?page=1 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "id": 12345, "title": "The Rise of Electric Vehicles", "link": "https://www.statista.com/chartoftheday/12345/electric-vehicles/", "image_url": "https://cdn.statista.com/chart/12345.jpg", "date": "Jan 15, 2026", "description": "This chart shows the global rise of electric vehicle adoption." } ], "meta": { "page": 1, "total_results": 10, "cached": false, "duration_ms": 345.67 } } ``` #### Statista Desktop Content - **Docs**: https://scrappa.co/docs/statista-api/statista_desktop_content - **Summary**: Get desktop content for a Statista statistic - **Description**: Get the desktop content (chart embed data) for a specific Statista statistic, including chart data and table data. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `statistic_id` | integer | Yes | The statistic ID | **Example request:** ``` GET https://scrappa.co/api/statista/desktop-content?statistic_id=1291862 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "title": "Number of electric vehicles in use worldwide", "html_content": "
...
", "chart_data": [ { "name": "2025", "y": 40000000 } ], "table_data": [ { "headers": [ "Year", "Number of EVs" ], "rows": [ [ "2025", "40,000,000" ] ] } ] }, "meta": { "statistic_id": 1291862, "cached": false, "duration_ms": 345.67 } } ``` #### Statista Search - **Docs**: https://scrappa.co/docs/statista-api/statista_search - **Summary**: Search Statista for statistics and studies - **Description**: Search for statistics, studies, infographics, and datasets on Statista. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `page` | integer | No | Page number (default: 1) | **Example request:** ``` GET https://scrappa.co/api/statista/search?query=electric+vehicles Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "id": 1291862, "title": "Number of electric vehicles in use worldwide", "link": "/statistics/1291862/electric-vehicles-in-use-worldwide/", "description": "This statistic shows the number of electric vehicles in use worldwide.", "type": "statistic", "date": "2026-01-15", "premium": false, "subject": "Transportation & Logistics", "image_url": "https://cdn.statista.com/statistics/1291862.png" } ], "meta": { "query": "electric vehicles", "page": 1, "total_results": 150, "total_pages": 10, "cached": false, "duration_ms": 234.56 } } ``` #### Statista Statistics - **Docs**: https://scrappa.co/docs/statista-api/statista_statistics - **Summary**: Get a Statista statistics page - **Description**: Get detailed information from a Statista statistics page, including title, description, source, table data, and structured data. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `statistic_id` | integer | Yes | The statistic ID | | `slug` | string | No | URL slug for the statistic (optional) | **Example request:** ``` GET https://scrappa.co/api/statista/statistics?statistic_id=1291862&slug=electric-vehicles-in-use-worldwide Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "title": "Number of electric vehicles in use worldwide from 2016 to 2025", "description": "This statistic shows the number of electric vehicles in use worldwide.", "image_url": "https://cdn.statista.com/statistics/1291862.png", "source": "IEA", "published_date": "Jan 15, 2026", "table_data": [ { "headers": [ "Year", "Number of EVs" ], "rows": [ [ "2025", "40,000,000" ] ] } ] }, "meta": { "statistic_id": 1291862, "cached": false, "duration_ms": 567.89 } } ``` ### Stepstone Jobs API Search job listings from Stepstone across Germany, Austria, Netherlands, and Belgium #### Jobs Autosuggest - **Docs**: https://scrappa.co/docs/stepstone-jobs-api/stepstone_autosuggest - **Summary**: Autocomplete job titles, sectors, and locations - **Description**: Get autocomplete suggestions for job search queries. Returns matching job sectors and locations from Stepstone. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search input to autocomplete (e.g. "Soft", "Berl") | | `country` | string | No | Country code: de (Germany), at (Austria), nl (Netherlands), be (Belgium). Default: de | | `limit` | integer | No | Max suggestions per type (1–20, default: 10) | **Example request:** ``` GET https://scrappa.co/api/stepstone/autosuggest?query=Software&country=de&limit=10 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "suggestions": { "sectors": [ { "id": "1", "label": "Software Development" }, { "id": "2", "label": "Software Engineering" } ], "locations": [ { "id": "berlin", "label": "Berlin" } ] }, "metadata": { "query": "Software", "country": "de", "timestamp": "2026-03-20T10:00:00Z" } } } ``` #### Jobs Search - **Docs**: https://scrappa.co/docs/stepstone-jobs-api/stepstone_jobs - **Summary**: Search Stepstone job listings - **Description**: Search job listings on Stepstone with keyword, location, and filter support. Covers Germany (de), Austria (at), Netherlands (nl), and Belgium (be). **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Job title, skill, or keyword (e.g. "Software Engineer", "Python") | | `location` | string | No | City or region (e.g. "Berlin", "München") | | `country` | string | No | Country code: de (Germany), at (Austria), nl (Netherlands), be (Belgium). Default: de | | `sort` | string | No | Sort order: relevance (default) or date | | `radius` | integer | No | Search radius in kilometres (e.g. 30) | | `job_type` | string | No | Filter by type: full_time, part_time, internship, freelance | | `work_from_home` | boolean | No | Filter for remote/work-from-home jobs (true/false) | | `date_posted` | integer | No | Maximum age of posting in days: 1, 3, 7, 30 | | `page` | integer | No | Page number for pagination (default: 1) | | `limit` | integer | No | Max results to return (1–100, default: 25) | **Example request:** ``` GET https://scrappa.co/api/stepstone/jobs?query=Software+Engineer&location=Berlin&country=de&sort=date&limit=25 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "jobs": [ { "id": "12345678", "title": "Senior Software Engineer (m/w/d)", "url": "https://www.stepstone.de/stellenangebote--Senior-Software-Engineer-Berlin--12345678-inline.html", "company": { "id": 9876, "name": "TechGmbH", "logo_url": "https://cdn.stepstone.de/logo/9876.png", "url": "https://www.stepstone.de/cmp/techgmbh" }, "location": { "formatted": "Berlin", "city": "Berlin", "region": null, "country": null }, "salary": null, "date_posted": "2026-03-19T08:00:00+01:00", "description": "We are looking for a Senior Software Engineer...", "skills": [ "Python", "Docker", "Kubernetes" ], "labels": [ "Home-Office m\u00f6glich" ], "work_from_home": true, "is_highlighted": false, "is_sponsored": false } ], "pagination": { "current_page": 1, "total_pages": 210, "total_jobs": 5234, "has_more": true, "next_page": 2 }, "metadata": { "query": "Software Engineer", "location": "Berlin", "country": "de", "timestamp": "2026-03-20T10:00:00Z" } } } ``` ### TikTok API Access TikTok video, user, music, feed, comment, challenge, playlist, collection, and ad data through the configured RapidAPI upstream. #### Ad Details - **Docs**: https://scrappa.co/docs/tiktok/tiktok_ads_details - **Summary**: Get ad details - **Description**: Resolve a TikTok Creative Center ad URL into ad metadata. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | TikTok Creative Center ad URL. | **Example request:** ``` GET https://scrappa.co/api/tiktok/ads?url=https%3A%2F%2Fads.tiktok.com%2Fbusiness%2Fcreativecenter%2Ftopads%2F7221117041168252930%2F Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Challenge Details - **Docs**: https://scrappa.co/docs/tiktok/tiktok_challenges_details - **Summary**: Get challenge details - **Description**: Fetch challenge metadata by challenge ID or challenge name. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `challenge_id` | string | No | TikTok challenge identifier. | | `challenge_name` | string | No | Challenge slug or name. | **Example request:** ``` GET https://scrappa.co/api/tiktok/challenges?challenge_id=33380&challenge_name=cosplay Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Challenge Posts - **Docs**: https://scrappa.co/docs/tiktok/tiktok_challenges_posts - **Summary**: Get videos for a challenge - **Description**: Fetch TikTok posts for a challenge by challenge ID or challenge name. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `challenge_id` | string | No | TikTok challenge identifier. | | `challenge_name` | string | No | Challenge slug or name. | | `region` | string | No | Optional region code. | **Example request:** ``` GET https://scrappa.co/api/tiktok/challenges?challenge_id=33380&count=10&cursor=0®ion=US Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Challenge Search - **Docs**: https://scrappa.co/docs/tiktok/tiktok_challenges_search - **Summary**: Search challenges - **Description**: Search TikTok challenges by keyword. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `keywords` | string | Yes | Challenge search keywords. | | `count` | integer | No | Number of results to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/challenges?keywords=cosplay&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Collection Details - **Docs**: https://scrappa.co/docs/tiktok/tiktok_collections_details - **Summary**: Get collection details - **Description**: Fetch TikTok collection metadata. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `collection_id` | string | Yes | TikTok collection identifier. | **Example request:** ``` GET https://scrappa.co/api/tiktok/collections?collection_id=7214174961873849130 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Collection Posts - **Docs**: https://scrappa.co/docs/tiktok/tiktok_collections_posts - **Summary**: Get collection videos - **Description**: Fetch TikTok posts from a collection. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `collection_id` | string | Yes | TikTok collection identifier. | | `count` | integer | No | Number of videos to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/collections?collection_id=7214174961873849130&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Comment List - **Docs**: https://scrappa.co/docs/tiktok/tiktok_comments_list - **Summary**: Get comments for a video - **Description**: Fetch comments for a TikTok video URL. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | TikTok video URL. | | `count` | integer | No | Number of comments to return. | | `cursor` | string | No | Pagination cursor. | **Example request:** ``` GET https://scrappa.co/api/tiktok/comments?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7568510388342443294&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Comment Replies - **Docs**: https://scrappa.co/docs/tiktok/tiktok_comments_replies - **Summary**: Get replies for a comment - **Description**: Fetch replies for a TikTok comment. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `comment_id` | string | Yes | TikTok comment identifier. | | `video_id` | string | No | Optional TikTok video identifier. | | `count` | integer | No | Number of replies to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/comments?comment_id=7093219663211053829&video_id=7093219391759764782&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Feed By Region - **Docs**: https://scrappa.co/docs/tiktok/tiktok_feed_list - **Summary**: Get feed videos by region - **Description**: Fetch TikTok feed videos for a specific supported region. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `region` | string | Yes | Region code such as US or JP. | | `count` | integer | No | Number of videos to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/feed?region=JP&count=10 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Feed Search - **Docs**: https://scrappa.co/docs/tiktok/tiktok_feed_search - **Summary**: Search videos by keyword - **Description**: Search TikTok feed videos by keywords with optional region and sorting filters. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `keywords` | string | Yes | Feed search keywords. | | `region` | string | No | Optional region code such as US or JP. | | `count` | integer | No | Number of results to return. | | `cursor` | string | No | Pagination cursor for continuing a previous feed search. | | `publish_time` | integer | No | Optional publish-time filter supported by the upstream. | | `sort_type` | integer | No | Optional upstream sort type value for feed search ordering. | **Example request:** ``` GET https://scrappa.co/api/tiktok/feed?keywords=basketball®ion=US&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Music Details - **Docs**: https://scrappa.co/docs/tiktok/tiktok_music_details - **Summary**: Get music details - **Description**: Fetch TikTok music metadata by music URL or ID. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | TikTok music URL or music ID. | **Example request:** ``` GET https://scrappa.co/api/tiktok/music?url=7002634556977908485 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Music Posts - **Docs**: https://scrappa.co/docs/tiktok/tiktok_music_posts - **Summary**: Get videos for a music track - **Description**: Fetch TikTok posts that use a specific music track. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `music_id` | string | Yes | TikTok music identifier. | | `count` | integer | No | Number of videos to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/music?music_id=7002634556977908485&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Playlist Details - **Docs**: https://scrappa.co/docs/tiktok/tiktok_playlists_details - **Summary**: Get playlist details - **Description**: Fetch TikTok playlist or mix metadata. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `mix_id` | string | Yes | TikTok mix or playlist identifier. | **Example request:** ``` GET https://scrappa.co/api/tiktok/playlists?mix_id=7533060692223982382 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Playlist Posts - **Docs**: https://scrappa.co/docs/tiktok/tiktok_playlists_posts - **Summary**: Get playlist videos - **Description**: Fetch TikTok posts from a playlist or mix. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `mix_id` | string | Yes | TikTok mix or playlist identifier. | | `count` | integer | No | Number of videos to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/playlists?mix_id=7533060692223982382&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### Regions - **Docs**: https://scrappa.co/docs/tiktok/tiktok_regions - **Summary**: Get supported regions - **Description**: List the region codes available for feed-based TikTok endpoints. **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [ "US", "JP", "DE" ] } ``` #### TikTok Video - **Docs**: https://scrappa.co/docs/tiktok/tiktok_video - **Summary**: Get TikTok video info - **Description**: Resolve a TikTok video, photo post, short URL, or raw video ID into metadata and playback URLs from the configured RapidAPI upstream. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | TikTok video URL, short URL, photo URL, or raw video ID. | | `hd` | boolean | No | Request the HD playback URL when available. Accepts true/false or 1/0. | **Example request:** ``` GET https://scrappa.co/api/tiktok/video?url=https%3A%2F%2Fwww.tiktok.com%2F%40tiktok%2Fvideo%2F7568510388342443294&hd=1 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": { "title": "Example TikTok", "play": "https://example.com/play.mp4", "wmplay": "https://example.com/wmplay.mp4", "hdplay": "https://example.com/hdplay.mp4" } } ``` #### User Collections - **Docs**: https://scrappa.co/docs/tiktok/tiktok_collections_list - **Summary**: Get collections by user - **Description**: Fetch TikTok collections created by a user. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | | `count` | integer | No | Number of collections to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/collections?unique_id=tyler3497&user_id=6631770475491115014&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Favorites - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_favorites - **Summary**: Get user favorite videos - **Description**: Fetch public favorite videos for a TikTok user when available upstream. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | | `count` | integer | No | Number of favorites to return. | | `cursor` | string | No | Pagination cursor for the favorites list. | | `time` | integer | No | Optional favorites time marker when provided by the upstream. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?unique_id=%40tiktok&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Followers - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_followers - **Summary**: Get user followers - **Description**: Fetch the follower list for a TikTok user. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | | `time` | integer | No | Follower pagination token/time marker. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?user_id=107955&count=50&time=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Following - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_following - **Summary**: Get user following list - **Description**: Fetch the accounts a TikTok user follows. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | | `time` | integer | No | Following pagination token/time marker. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?user_id=107955&count=50&time=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Playlists - **Docs**: https://scrappa.co/docs/tiktok/tiktok_playlists_list - **Summary**: Get playlists by user - **Description**: Fetch TikTok playlists created by a user. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | | `count` | integer | No | Number of playlists to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/playlists?unique_id=%40tiktok&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Posts - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_posts - **Summary**: Get posts by user - **Description**: Fetch public TikTok posts for a user by unique ID or user ID. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | | `count` | integer | No | Number of posts to return. | | `cursor` | string | No | Pagination cursor for fetching the next page of results. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?unique_id=%40tiktok&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Profile - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_profile - **Summary**: Get user profile - **Description**: Fetch public TikTok profile data by unique ID or user ID. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?unique_id=%40tiktok Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Search - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_search - **Summary**: Search TikTok users - **Description**: Search public TikTok users by keywords. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `keywords` | string | Yes | Search text for TikTok users. | | `count` | integer | No | Number of results to return. | | `cursor` | string | No | Pagination cursor. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?keywords=tiktok&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### User Story - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_story - **Summary**: Get user story - **Description**: Fetch TikTok story data for a user by unique ID or user ID. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `unique_id` | string | No | TikTok username, with or without @. | | `user_id` | string | No | Numeric TikTok user ID. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user?unique_id=%40isi.cos Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` ### TrustedShops API Get shop reviews and ratings from TrustedShops #### TrustedShops Markets - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_markets - **Description**: Get all available TrustedShops markets with their country codes and names. This is a free endpoint that returns a list of all supported European markets on TrustedShops. #### TrustedShops Reviews - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_reviews - **Summary**: Get shop reviews - **Description**: Get reviews for a specific shop on TrustedShops. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `tsid` | string | Yes | TrustedShops shop ID | **Example request:** ``` GET https://scrappa.co/api/trustedshops/reviews?tsid=XFB15FFBDE1DEE7A55D292A7D48598A6A Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "reviews": [] } ``` #### TrustedShops Search - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_search - **Summary**: Search shops on TrustedShops - **Description**: Search for shops on TrustedShops platform. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Shop search query | | `page` | integer | No | Page number for pagination (0-100) | | `market` | string | No | Market code filter (DEU, GBR, AUT, CHE, NLD, ESP, ITA, FRA, BEL, POL, PRT) | **Example request:** ``` GET https://scrappa.co/api/trustedshops/search?q=amazon&page=0&market=DEU Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "metaData": { "totalShopCount": 4227, "totalPageCount": 212 }, "shops": [], "categories": [] } ``` #### TrustedShops Shop Profile - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_shop - **Summary**: Get shop profile details - **Description**: Get shop profile and details from TrustedShops. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `tsid` | string | Yes | TrustedShops ID | **Example request:** ``` GET https://scrappa.co/api/trustedshops/shop?tsid=X123 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "shop": [] } ``` ### Trustpilot API Search businesses and get reviews from Trustpilot #### Trustpilot Businesses - **Docs**: https://scrappa.co/docs/trustpilot-api/trustpilot_businesses - **Summary**: Search multiple businesses - **Description**: Search for businesses on Trustpilot with filters. Filters are applied after fetch; pagination counts reflect Trustpilot results. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `category` | string | Yes | Category slug from the Categories endpoint (e.g. electronics_technology). Use the slug field from /api/trustpilot/categories response | | `page` | integer | No | Page number (1-999) | | `sort` | string | No | reviews_count or latest_review | | `claimed` | boolean | No | Filter claimed businesses | | `country` | string | No | Country code (ISO-2) | | `limit` | integer | No | Max results per page (1-50) | | `trustscore` | float | No | Minimum trustscore (3.0, 4.0, 4.5) | **Example request:** ``` GET https://scrappa.co/api/trustpilot/businesses?category=electronics Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "businesses": [] } ``` #### Trustpilot Categories - **Docs**: https://scrappa.co/docs/trustpilot-api/trustpilot_categories - **Summary**: List business categories - **Description**: Get list of business categories on Trustpilot. **Example response (truncated):** ```json { "categories": [] } ``` #### Trustpilot Company Details - **Docs**: https://scrappa.co/docs/trustpilot-api/trustpilot_company_details - **Summary**: Get company details - **Description**: Get detailed company profile from Trustpilot. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `company_domain` | string | Yes | Company domain | | `locale` | string | No | Locale (e.g. en-US, de-DE) | **Example request:** ``` GET https://scrappa.co/api/trustpilot/company-details?company_domain=amazon.com Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "company": [] } ``` #### Trustpilot Company Reviews - **Docs**: https://scrappa.co/docs/trustpilot-api/trustpilot_company_reviews - **Summary**: Get company reviews - **Description**: Get reviews for a company on Trustpilot. Filters are applied after fetch; pagination counts reflect Trustpilot results. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `company_domain` | string | Yes | Company domain | | `page` | integer | No | Page number (1-999) | | `verified` | boolean | No | Filter verified reviews | | `with_replies` | boolean | No | Only reviews with replies | | `sort` | string | No | How to sort reviews: use "relevance" for relevance sort, omit parameter for most recent (default: most recent) | | `query` | string | No | Search within review text/title | | `rating` | string | No | Comma-separated ratings (e.g. 4,5) | | `locale` | string | No | Locale (e.g. en-US, de-DE) | | `fields` | string | No | Comma-separated fields to include (e.g., reviews,businessUnit.displayName). Use dot notation for nested fields. Omit to get all fields. | **Example request:** ``` GET https://scrappa.co/api/trustpilot/company-reviews?company_domain=amazon.com Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "reviews": [] } ``` #### Trustpilot Company Search - **Docs**: https://scrappa.co/docs/trustpilot-api/trustpilot_company_search - **Summary**: Search companies on Trustpilot - **Description**: Search for companies on Trustpilot by name or keyword. Filters are applied after fetch; pagination counts reflect Trustpilot results. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `page` | integer | No | Page number (1-999) | | `country` | string | No | Country code (ISO-2) | | `min_rating` | string | No | Minimum rating (any, 3, 4, 4.5) | | `min_review_count` | string | No | Minimum reviews (any, 25, 50, 100, 250, 500) | | `locale` | string | No | Locale (e.g. en-US, de-DE) | **Example request:** ``` GET https://scrappa.co/api/trustpilot/company-search?query=amazon Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "businessUnits": [] } ``` #### Trustpilot Countries - **Docs**: https://scrappa.co/docs/trustpilot-api/trustpilot_countries - **Summary**: List available countries - **Description**: Get list of countries available on Trustpilot for filtering businesses. **Example response (truncated):** ```json { "countries": [] } ``` ### Vinted API Access Vinted marketplace data including product search, item details, user profiles, and categories across multiple European countries. #### Categories - **Docs**: https://scrappa.co/docs/vinted-api/vinted_categories - **Summary**: Get all catalog categories - **Description**: Get all available catalog categories with their subcategories. Use the returned catalog IDs with the search endpoint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `country` | string | No | Country code for Vinted domain. Defaults to FR. | **Example request:** ``` GET https://scrappa.co/api/vinted/categories?country=DE Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "catalogs": [] } ``` #### Get Filters - **Docs**: https://scrappa.co/docs/vinted-api/vinted_filters - **Summary**: Get available catalog filters - **Description**: Get available filter options for a category including brands, sizes, colors, materials, and conditions. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `catalog_ids` | string | No | Category IDs to get filters for (comma-separated) | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | **Example request:** ``` GET https://scrappa.co/api/vinted/filters?country=DE Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "filters": [] } ``` #### Item Details - **Docs**: https://scrappa.co/docs/vinted-api/vinted_item_details - **Summary**: Get detailed item information - **Description**: Get detailed information about a specific Vinted listing including title, description, photos, pricing, seller profile, item condition, brand, size, and category. Supports 19 countries across Europe and the US. Use together with the Search Items endpoint to discover items, then fetch full details for each result. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `item_id` | string | Yes | The Vinted item ID | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | **Example request:** ``` GET https://scrappa.co/api/vinted/item-details?item_id=1234567890 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "item": [] } ``` #### Item Shipping - **Docs**: https://scrappa.co/docs/vinted-api/vinted_item_shipping - **Summary**: Get shipping details for an item - **Description**: Get available shipping options and costs for a specific item. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `item_id` | string | Yes | The Vinted item ID | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | **Example request:** ``` GET https://scrappa.co/api/vinted/item-shipping?item_id=1234567890 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "shipping": [] } ``` #### Search Items - **Docs**: https://scrappa.co/docs/vinted-api/vinted_search - **Summary**: Search for items on Vinted marketplace - **Description**: Search and filter items on Vinted marketplace. Supports full-text search, category filtering, brand filtering, size/material/status filtering, price range, and sorting options. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | No | Search query text (e.g., "nike shoes") | | `country` | string | No | Country code for Vinted domain (FR, DE, BE, IT, ES, NL, etc.). Defaults to FR. | | `page` | integer | No | Page number for pagination. Defaults to 1. | | `per_page` | integer | No | Number of items per page (max 100). Defaults to 24. | | `order` | string | No | Sort order: relevance, newest_first, price_low_to_high, price_high_to_low | | `catalog_ids` | string | No | Category IDs to filter by (comma-separated) | | `brand_ids` | string | No | Brand IDs to filter by (comma-separated) | | `size_ids` | string | No | Size IDs to filter by (comma-separated) | | `color_ids` | string | No | Color IDs to filter by (comma-separated) | | `material_ids` | string | No | Material IDs to filter by (comma-separated) | | `status_ids` | string | No | Status IDs to filter by (comma-separated) | | `price_from` | number | No | Minimum price filter (inclusive). Items below this price will be filtered out from results. | | `price_to` | number | No | Maximum price filter (inclusive). Items above this price will be filtered out from results. | **Example request:** ``` GET https://scrappa.co/api/vinted/search?query=nike+shoes&country=DE Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "items": [], "pagination": [] } ``` #### Search Suggestions - **Docs**: https://scrappa.co/docs/vinted-api/vinted_suggestions - **Summary**: Get search autocomplete suggestions - **Description**: Get autocomplete suggestions for a search query. Useful for implementing search-as-you-type functionality. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Partial search query to get suggestions for | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | **Example request:** ``` GET https://scrappa.co/api/vinted/suggestions?query=nik Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "suggestions": [] } ``` #### Similar Items - **Docs**: https://scrappa.co/docs/vinted-api/vinted_similar_items - **Summary**: Get similar items - **Description**: Get items similar to a specific item, typically from the same seller or category. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `item_id` | string | Yes | The Vinted item ID | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | | `page` | integer | No | Page number for pagination. Defaults to 1. | **Example request:** ``` GET https://scrappa.co/api/vinted/similar-items?item_id=1234567890 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "items": [], "pagination": { "current_page": 1, "total_pages": 5, "total_entries": 100 } } ``` #### User Items - **Docs**: https://scrappa.co/docs/vinted-api/vinted_user_items - **Summary**: Get items listed by a user - **Description**: Get items listed by a specific user in their wardrobe/closet. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `user_id` | string | Yes | The Vinted user ID | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | | `page` | integer | No | Page number for pagination | | `per_page` | integer | No | Number of items per page (max 100). Defaults to 24. | | `order` | string | No | Sort order: relevance, newest_first, price_low_to_high, price_high_to_low | **Example request:** ``` GET https://scrappa.co/api/vinted/user-items?user_id=12345678 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "items": [], "pagination": [] } ``` #### User Profile - **Docs**: https://scrappa.co/docs/vinted-api/vinted_user_profile - **Summary**: Get user profile information - **Description**: Get public profile information for a Vinted user including ratings, review count, and items listed. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `user_id` | string | Yes | The Vinted user ID | | `country` | string | No | Country code for Vinted domain. Defaults to FR. | **Example request:** ``` GET https://scrappa.co/api/vinted/user-profile?user_id=12345678 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "user": [] } ``` ### Web Scraper API Scrape any website and extract structured data #### Impressum Extraction - **Docs**: https://scrappa.co/docs/web-scraper/impressum_extraction - **Summary**: Extract structured data from impressum pages - **Description**: Dynamically extracts specified fields from a domain's impressum page. Uses Brave Search to find the impressum, fetches the page, and uses AI to extract the requested fields. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `domain` | string | Yes | The domain to search for impressum (e.g., example.com) | | `fields` | string | Yes | Comma-separated list of field names to extract (e.g., company_name,address,email,vat_id) | | `language` | string | No | Language code for extracted values (e.g., de, en, fr). Country names and other localizable values will be returned in this language. | **Example request:** ``` GET https://scrappa.co/api/web-scraper/impressum-extract?domain=example.com&fields=company_name%2Caddress%2Cemail%2Cvat_id&language=de Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "company_name": "Example GmbH", "address": "Musterstra\u00dfe 1, 12345 Berlin", "email": "info@example.com", "vat_id": "DE123456789" }, "impressum_url": "https://example.com/impressum", "error": null } ``` #### Web Scraper - **Docs**: https://scrappa.co/docs/web-scraper/web_scraper - **Summary**: Scrape any URL and extract structured data like title, links, emails, and more - **Description**: Fetch any URL and extract structured data including title, meta description, keywords, favicon, social links, all links on the page, emails, phone numbers, images, body text, and detected languages. Returns the site's HTTP status code separately so you can distinguish site errors (404, 500) from infrastructure errors. Use response_type=markdown to get only the page content as clean markdown. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | The URL to scrape (must include protocol, e.g., https://example.com) | | `include_html` | boolean | No | Set to true to include the raw HTML in the response. Default: false. Ignored when response_type=markdown | | `response_type` | string | No | Set to "markdown" to return only the page content as clean markdown text. When set to markdown, only the markdown content is returned (not JSON). Default: json | **Example request:** ``` GET https://scrappa.co/api/web-scraper/scrape?url=https%3A%2F%2Fexample.com Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "site_status_code": 200, "url": "https://example.com", "final_url": "https://www.example.com", "data": { "title": "Example Domain", "description": "This domain is for use in illustrative examples.", "keywords": [], "favicon": "https://example.com/favicon.ico", "social_links": { "linkedin": null, "twitter": null, "facebook": null, "instagram": null, "youtube": null, "tiktok": null }, "extracted_keywords": [ "domain", "example", "illustrative" ], "links": [ "https://www.iana.org/domains/example" ], "emails": [], "phone_numbers": [], "images": [], "body_text": "Example Domain This domain is for use in illustrative examples in documents.", "languages_detected": [ "en" ], "html": null } } ``` ### YouTube API YouTube API - search videos, channels, comments, and more #### YouTube Basic Info - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_info - **Summary**: Basic video metadata - **Description**:

Get basic video information from YouTube with a lightweight response. This endpoint provides essential video metadata without additional features like comments or related videos.

#### YouTube Channel Community - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_channel_community - **Summary**: Get community posts - **Description**: Get community posts from a YouTube channel. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `channel_id` | string | Yes | YouTube channel ID (alias: channelId) | | `channelId` | string | Yes | YouTube channel ID (alias: channel_id) | | `continuation` | string | No | Token for pagination from previous response | **Example request:** ``` GET https://scrappa.co/api/youtube-external/channel-community?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "posts": [ { "id": "post123", "text": "Community post content...", "publishedTime": "2 days ago", "likeCount": 5000 } ], "pagination": { "continuationToken": "eyJ...", "hasMore": true } } ``` #### YouTube Channel Info - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_channel - **Summary**: Channel profile and stats - **Description**: Get channel information including subscriber count, video count, and description. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `channel_id` | string | Yes | YouTube channel ID (alias: channelId) | | `channelId` | string | Yes | YouTube channel ID (alias: channel_id) | **Example request:** ``` GET https://scrappa.co/api/youtube-external/channel?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "id": "UCX6OQ3DkcsbYNE6H8uQQuVA", "name": "MrBeast", "description": "SUBSCRIBE FOR A COOKIE!", "subscriberCount": "467M subscribers 948 videos", "videoCount": "Unavailable", "viewCount": "Unavailable", "thumbnail": "https://yt3.googleusercontent.com/...", "banner": "https://yt3.googleusercontent.com/...", "country": "US", "verified": true } ``` #### YouTube Channel Playlists - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_channel_playlists - **Summary**: Get channel playlists - **Description**: Get playlists created by a YouTube channel. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `channel_id` | string | Yes | YouTube channel ID (alias: channelId) | | `channelId` | string | Yes | YouTube channel ID (alias: channel_id) | **Example request:** ``` GET https://scrappa.co/api/youtube-external/channel-playlists?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "playlists": [ { "id": "PLplaylist123", "title": "Playlist Title", "videoCount": 25, "thumbnail": "https://i.ytimg.com/..." } ], "pagination": { "hasMore": true } } ``` #### YouTube Channel Videos - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_channel_videos - **Summary**: List channel uploads - **Description**: Get videos uploaded by a YouTube channel. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `channel_id` | string | Yes | YouTube channel ID (alias: channelId) | | `channelId` | string | Yes | YouTube channel ID (alias: channel_id) | | `limit` | integer | No | Number of videos (default: 10, max: 30) | | `page` | integer | No | Page number (default: 1, max: 10) | | `sort` | string | No | Sort order: newest, popular, oldest (default: newest) | | `continuation` | string | No | Token for pagination from previous response | **Example request:** ``` GET https://scrappa.co/api/youtube-external/channel-videos?channel_id=UCX6OQ3DkcsbYNE6H8uQQuVA Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "channelId": "UCX6OQ3DkcsbYNE6H8uQQuVA", "sort": "newest", "videos": [ { "id": "pAnGwRiQ4-4", "title": "$1 vs $1,000,000,000 Futuristic Tech!" } ], "pagination": { "continuationToken": "eyJjaGFubmVsSWQiOiJVQ1g2T1EzRGtjc2JZTkU2SDh1UVF1VkEiLCJzb3J0IjoibmV3ZXN0IiwicGFnZSI6MX0.6ce89d9d", "hasMore": true, "page": 1, "pageSize": 10 } } ``` #### YouTube Comments - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_comments - **Summary**: Fetch video comments - **Description**: Get comments from a YouTube video. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `video_id` | string | Yes | YouTube video ID | | `limit` | integer | No | Number of comments | **Example request:** ``` GET https://scrappa.co/api/youtube-external/comments?video_id=dQw4w9WgXcQ Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "videoId": "dQw4w9WgXcQ", "videoTitle": "Rick Astley - Never Gonna Give You Up", "sort": "top", "comments": [ { "id": "UgzG...", "text": "This is a comment...", "author": "Username", "authorChannelId": "UCxxxxx", "likeCount": 1000, "publishedTime": "2 years ago" } ], "pagination": { "totalComments": 2500000, "hasMore": true }, "metadata": { "commentsDisabled": false } } ``` #### YouTube Locales - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_locales - **Description**: External YouTube API endpoint for YouTube Locales. #### YouTube Playlist - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_playlist - **Summary**: Get playlist videos - **Description**: Get videos from a YouTube playlist. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `playlist_id` | string | Yes | YouTube playlist ID | **Example request:** ``` GET https://scrappa.co/api/youtube-external/playlist?playlist_id=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "playlistId": "PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf", "title": "Playlist Title", "description": "Playlist description", "videoCount": 10, "videos": [ { "id": "video123", "title": "Video Title", "channel": { "name": "Channel Name" } } ], "pagination": { "hasMore": true } } ``` #### YouTube Proxies - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_proxies - **Description**: External YouTube API endpoint for YouTube Proxies. #### YouTube Related Videos - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_related - **Summary**: Get related videos - **Description**: Get videos related to a specific YouTube video. Returns up to 20 related videos by default. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `video_id` | string | Yes | YouTube video ID | | `limit` | integer | No | Number of videos (default: 20, max: 50) | **Example request:** ``` GET https://scrappa.co/api/youtube-external/related?video_id=dQw4w9WgXcQ Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "videoId": "dQw4w9WgXcQ", "count": 20, "videos": [ { "id": "yPYZpwSpKmA", "title": "Rick Astley - Together Forever (Official Video) [4K Remaster]", "thumbnail": "https://i.ytimg.com/vi/yPYZpwSpKmA/hqdefault.jpg", "duration": "3:24", "viewCount": "196M views", "publishedTime": "16 years ago", "channel": { "id": null, "name": "Rick Astley", "thumbnail": null, "verified": false }, "badges": [], "isLive": false } ] } ``` #### YouTube Search - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_search - **Summary**: Search YouTube videos - **Description**: Search for videos on YouTube with customizable result limits. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `limit` | integer | No | Number of results (default: 10, max: 20) | | `page` | integer | No | Page number (default: 1, max: 10) | | `continuation` | string | No | Token for pagination from previous response | | `type` | string | No | Filter by content type: video, channel, playlist, movie, all (default: all). | | `hl` | string | No | Language code (e.g., en). | | `gl` | string | No | Country code (e.g., US). | | `order` | string | No | Sort order: date, rating, relevance, viewCount. | | `videoDuration` | string | No | Filter by duration: short, medium, long. | | `publishedAfter` | string | No | Return videos published after a date/time (best-effort; any valid date string, RFC3339 recommended). | | `publishedBefore` | string | No | Return videos published before a date/time (best-effort; any valid date string, RFC3339 recommended). | | `safeSearch` | string | No | Content filtering: moderate, none, strict. | **Example request:** ``` GET https://scrappa.co/api/youtube-external/search?query=programming+tutorial Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "results": [ { "type": "video", "id": "dQw4w9WgXcQ", "title": "Rick Astley - Never Gonna Give You Up (Official Video)", "description": "The official video for Never Gonna Give You Up by Rick Astley.", "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg", "duration": "3:33", "viewCount": "1.7B views", "publishedTime": "16 years ago", "channel": { "id": "UCuAXFkgsw1L7xaCfnd5JJOw", "name": "Rick Astley", "thumbnail": "https://yt3.ggpht.com/example.jpg", "verified": false, "isVerifiedArtist": true, "url": "https://www.youtube.com/@RickAstleyYT" }, "badges": [], "isLive": false, "isShort": false, "isPremium": false } ], "pagination": { "continuationToken": "eyJ...", "hasMore": true, "page": 1, "pageSize": 10 }, "query": "programming tutorial", "filters": { "type": "all", "sort": "relevance", "hl": "en", "gl": "US" } } ``` #### YouTube Suggestions - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_suggestions - **Summary**: Search autocomplete suggestions - **Description**: Get search autocomplete suggestions from YouTube. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Search query | | `hl` | string | No | Language code (e.g., en). | | `gl` | string | No | Country code (e.g., US). | **Example request:** ``` GET https://scrappa.co/api/youtube-external/suggestions?query=how+to Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "query": "how to", "locale": { "hl": "en", "gl": "US" }, "suggestions": [ "how to cook", "how to code", "how to draw", "how to make slime", "how to play guitar" ] } ``` #### YouTube Trending - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_trending - **Summary**: Get trending videos - **Description**: Get trending videos from YouTube by category and region. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `type` | string | No | Trending category: now, music, gaming, movies | | `gl` | string | No | Country code (e.g., US, DE) | | `hl` | string | No | Language code (e.g., en) | **Example request:** ``` GET https://scrappa.co/api/youtube-external/trending?type=music&gl=US Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "results": [ { "type": "video", "id": "dQw4w9WgXcQ", "title": "Rick Astley - Never Gonna Give You Up (Official Video)", "description": "The official video for Never Gonna Give You Up by Rick Astley.", "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg", "duration": "3:33", "viewCount": "1.7B views", "publishedTime": "16 years ago", "channel": { "id": "UCuAXFkgsw1L7xaCfnd5JJOw", "name": "Rick Astley", "thumbnail": "https://yt3.ggpht.com/example.jpg", "verified": false, "isVerifiedArtist": true, "url": "https://www.youtube.com/@RickAstleyYT" }, "badges": [ "New" ], "isLive": false, "isShort": false, "isPremium": false } ], "pagination": { "hasMore": true }, "filters": { "type": "music", "sort": "view_count", "hl": "en", "gl": "US" }, "type": "music", "source": "trending", "locale": { "hl": "en", "gl": "US" } } ``` #### YouTube Video Chapters - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_chapters - **Summary**: Get video chapters - **Description**: Get chapters/timestamps from a YouTube video. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `video_id` | string | Yes | YouTube video ID | **Example request:** ``` GET https://scrappa.co/api/youtube-external/chapters?video_id=dQw4w9WgXcQ Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "videoId": "dQw4w9WgXcQ", "hasChapters": true, "chapters": [ { "title": "Introduction", "startTime": 0, "startTimeMillis": 0, "thumbnail": "https://i.ytimg.com/..." } ] } ``` #### YouTube Video Info - **Docs**: https://scrappa.co/docs/youtube-api/youtube_external_video - **Summary**: Get full video details - **Description**: Get comprehensive video metadata from YouTube including views, likes, description, and channel info. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `video_id` | string | Yes | YouTube video ID (alias: videoId) | | `videoId` | string | Yes | YouTube video ID (alias: video_id) | **Example request:** ``` GET https://scrappa.co/api/youtube-external/video?video_id=dQw4w9WgXcQ Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "id": "dQw4w9WgXcQ", "videoId": "dQw4w9WgXcQ", "title": "Rick Astley - Never Gonna Give You Up (Official Video)", "description": "The official video for Never Gonna Give You Up by Rick Astley.", "thumbnail": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg", "duration": "3:33", "viewCount": "1,741,182,393 views", "shortViewCount": null, "likeCount": 18788542, "publishDate": "Oct 25, 2009", "uploadDate": "16 years ago", "channel": { "id": "UCuAXFkgsw1L7xaCfnd5JJOw", "name": "Rick Astley", "thumbnail": "https://yt3.ggpht.com/example.jpg", "url": "https://www.youtube.com/@RickAstleyYT", "subscriberCount": "4.45M subscribers", "isVerified": false, "isVerifiedArtist": true, "badges": [ { "type": "BADGE_STYLE_TYPE_VERIFIED_ARTIST", "tooltip": "Official Artist Channel" } ] }, "hashtags": [ "#RickAstley", "#NeverGonnaGiveYouUp" ], "keywords": [ "rick astley", "Never Gonna Give You Up" ], "category": "Music", "isLiveContent": false, "isLive": false, "isUnlisted": false, "isFamilySafe": true, "isPremium": false, "isPrivate": false, "isAgeRestricted": false, "isCrawlable": true, "isUpcoming": false, "isPostLiveDvr": false, "isLiveDvrEnabled": false, "isLowLatencyLiveStream": false, "hasLivechat": false, "chapters": [], "captions": [ { "language": "en", "name": "English", "isAutoGenerated": false, "isTranslatable": true } ], "embed": { "iframeUrl": "https://www.youtube.com/embed/dQw4w9WgXcQ", "width": 1280, "height": 720, "isEmbeddable": true }, "relatedVideos": [ { "id": "yPYZpwSpKmA", "title": "Rick Astley - Together Forever", "thumbnail": "https://i.ytimg.com/vi/yPYZpwSpKmA/hqdefault.jpg", "duration": "3:24", "viewCount": "196M views", "publishedTime": "16 years ago", "channel": { "name": "Rick Astley", "verified": false }, "badges": [], "isLive": false } ], "storyboards": [ { "templateUrl": "https://i.ytimg.com/sb/dQw4w9WgXcQ/storyboard3_L0/default.jpg", "thumbnailWidth": 48, "thumbnailHeight": 27, "thumbnailCount": 100, "columns": 10, "rows": 10 } ], "regionInfo": { "availableCountries": null, "blockedCountries": null, "isPlayable": true, "status": "OK", "reason": null, "embeddable": true }, "comments": { "count": "1.2M comments", "teaser": "Great song!" }, "playabilityStatus": { "status": "OK", "reason": null, "embeddable": true, "audioOnlyPlayability": null }, "annotations": [ { "id": "5dad8f5d-0000-20c2-8451-883d24f8e7cc", "type": "PlayerAnnotationsExpanded", "allowSwipeDismiss": true, "featuredChannel": { "id": null, "name": null, "thumbnail": null } } ], "autoplay": { "countDownSecs": 5, "sets": 1 }, "cards": [ { "id": null, "title": "", "subtitle": "", "thumbnail": null, "url": null, "type": "Card", "endpoint": null } ], "endScreen": { "startMs": 201451, "elements": [ { "id": "720b1b77-5167-4d00-a42e-b8e715efaef1", "type": "EndscreenElement", "style": "CHANNEL", "title": "Rick Astley", "thumbnail": "https://yt3.ggpht.com/vewxKdtll-rntHAMDPY_Qa6hPac3-J2sCFFUwvGSSR0i7hB4g5rNfF39lCEcjGvsYI0RWx7V1A=s400-c-k-c0x00ffffff-no-rj", "endpoint": { "type": "NavigationEndpoint", "payload": { "browseId": "UCuAXFkgsw1L7xaCfnd5JJOw" } }, "metadata": { "text": "2026 UK & Ireland Reflection Tour\nTickets are on sale now.", "rtl": false } } ] }, "hasStreamingData": true, "license": null, "merchandise": null, "playerConfig": { "audioConfig": { "loudnessDb": 0.9899998, "perceptualLoudnessDb": -13.01, "enablePerFormatLoudness": true }, "maxBitrate": "0" }, "playerOverlays": { "endScreen": { "title": "You may also like...", "results": [ { "id": "yPYZpwSpKmA", "title": "Rick Astley - Together Forever (Official Video) [4K Remaster]", "thumbnail": "https://i.ytimg.com/vi/yPYZpwSpKmA/hqdefault.jpg", "endpoint": { "type": "NavigationEndpoint", "name": "watchEndpoint", "payload": { "videoId": "yPYZpwSpKmA", "playlistId": "RDyPYZpwSpKmA" }, "metadata": { "url": "/watch?v=yPYZpwSpKmA&list=RDyPYZpwSpKmA&start_radio=1", "page_type": "WEB_PAGE_TYPE_WATCH", "api_url": "/player" } } } ] }, "autoplay": { "title": "Up next", "videoId": "VegzlNRGSvI", "videoTitle": "Rick Astley megamix", "shortViewCount": "4.8M views", "published": "8 years ago", "countDownSecsForFullscreen": 3, "preferImmediateRedirect": false, "author": { "id": "UCQWt05fNgL1uCvufSqXG3OQ", "name": "Gary Douglas", "thumbnail": null } }, "shareButton": { "tooltip": "Share", "iconType": "SHARE", "isDisabled": false }, "decoratedPlayerBar": { "markersMap": [] } }, "streamingDataExpires": [], "topComments": false } ``` ## Error Handling | HTTP Code | Meaning | |-----------|---------| | 200 | Success | | 400 | Bad request — invalid or missing parameters | | 401 | Unauthorized — invalid or missing API key | | 402 | Payment required — insufficient credits | | 404 | Not found — endpoint or resource not found | | 422 | Validation error — check parameter constraints | | 429 | Rate limited — too many requests | | 500 | Server error — retry or contact support | ## Resources - Quick Start: https://scrappa.co/docs - Authentication Guide: https://scrappa.co/docs/authentication - Error Handling: https://scrappa.co/docs/error-handling - API Playground: https://scrappa.co/docs/playground - OpenAPI Spec: https://scrappa.co/docs/api.json - Pricing: https://scrappa.co/pricing - MCP Integration: https://scrappa.co/docs/mcp-integration