# Scrappa — Full API Reference for LLMs > Scrappa is a web scraping API platform providing structured JSON data from 30+ sources (Google, YouTube, LinkedIn, Trustpilot, 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/search-light?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 Comparison guide: https://scrappa.co/post/best-mcp-servers-web-scraping ## API Endpoints ### Arbeitsagentur Jobs API Access Germany's official Federal Employment Agency job listings. Search millions of German job postings with powerful filters including location, job type, working hours, and employment type. #### Job Detail - **Docs**: https://scrappa.co/docs/arbeitsagentur-jobs-api/arbeitsagentur_jobs_detail - **Summary**: Get the full upstream Arbeitsagentur job detail object by reference number - **Description**: Fetch the detailed Arbeitsagentur job payload for a single listing, including the full description, employer website, and contact details when the upstream source provides them. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `refnr` | string | Yes | Arbeitsagentur reference number for the listing, usually returned from the Job Search endpoint | **Example request:** ``` GET https://scrappa.co/api/arbeitsagentur/job?refnr=12345-abc Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "referenznummer": "12345-abc", "titel": "Software Entwickler (m/w/d)", "stellenbeschreibung": "
Full description
", "arbeitgeberWebseite": "https://example.com", "kontakt": { "name": "Max Mustermann", "telefonnummer": "+49 30 123456", "email": "max@example.com" } } } ``` #### Job Search - **Docs**: https://scrappa.co/docs/arbeitsagentur-jobs-api/arbeitsagentur_jobs_search - **Summary**: Search German job listings from the Federal Employment Agency (Bundesagentur für Arbeit) - **Description**: Search job listings from Germany's Federal Employment Agency with powerful filters. Supports filtering by keyword (was), location (wo), search radius (umkreis), offer type (angebotsart), working hours (arbeitszeit), publication date (veroeffentlichtseit), occupational field (berufsfeld), employer (arbeitgeber), contract type (befristung), temporary work (zeitarbeit), and pagination (page, size). **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `was` | string | No | Job title, keyword, or occupation to search for (e.g. "Software Entwickler") | | `wo` | string | No | Location to search in, e.g. city name or postal code (e.g. "Berlin" or "10115") | | `umkreis` | integer | No | Search radius in kilometers around the specified location (e.g. 25) | | `angebotsart` | integer | No | Type of job offer: 1 = employment, 2 = self-employment, 4 = apprenticeships/dual study, 34 = internship/trainee | | `arbeitszeit` | string | No | Working hours type: vz = full-time, tz = part-time, snw = shift/night/weekend, ho = home office, mj = mini job | | `veroeffentlichtseit` | integer | No | Filter by publication date in days (e.g. 1 = last 24 hours, 7 = last week, 30 = last month) | | `berufsfeld` | string | No | Occupational field code to filter results by profession category | | `arbeitgeber` | string | No | Filter by employer/company name | | `befristung` | integer | No | Contract duration: 1 = fixed-term, 2 = permanent/unlimited | | `zeitarbeit` | boolean | No | Include temporary work positions: 1 (yes) or 0 (no) | | `page` | integer | No | Page number for pagination (starts at 1) | | `size` | integer | No | Number of results per page (1-100) | | `pav` | boolean | No | Include listings from private employment agencies: 1 (yes) or 0 (no) | **Example request:** ``` GET https://scrappa.co/api/arbeitsagentur/jobs?was=Software+Entwickler&wo=Berlin&umkreis=25&page=1&size=10 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "stellenangebote": [ { "refnr": "de:dJobAngebot:10000001", "titel": "Software Entwickler (m/w/d)", "beruf": "Softwareentwickler/-in", "arbeitgeber": "TechGmbH", "arbeitsort": { "ort": "Berlin", "plz": "10115", "region": "Berlin", "land": "Deutschland", "koordinaten": { "lat": 52.52, "lon": 13.405 } }, "eintrittsdatum": "2026-03-01", "aktuelleVeroeffentlichungsdatum": "2026-02-20T08:00:00", "externeUrl": "https://www.arbeitsagentur.de/jobsuche/jobdetail/10000001" } ], "maxErgebnisse": "120", "page": 1, "size": 10, "facetten": [] } } ``` #### Location Search - **Docs**: https://scrappa.co/docs/arbeitsagentur-jobs-api/arbeitsagentur_location_search - **Summary**: Search for German locations by postal code or city name - **Description**: Search for valid German location identifiers used as input for the Job Search endpoint. Look up locations by postal code (plz) or search term (suchwort) to obtain structured location data. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `plz` | string | No | German postal code to look up (e.g. "10115") | | `suchwort` | string | No | City or location name to search for (e.g. "Berlin") | **Example request:** ``` GET https://scrappa.co/api/arbeitsagentur/locations?plz=10115 Header: X-API-KEY: your_api_key ``` ### Booking.com API Hotel data extracted from public Booking.com pages — search results, property details, destination resolution, visible prices, rooms, photos, facilities, and review score fields. #### Booking.com Bulk Prices - **Docs**: https://scrappa.co/docs/booking-api/booking_bulk_prices - **Summary**: Run up to two dated Booking.com price searches in one request - **Description**: Accepts a small batch of Booking.com search parameter objects and returns visible price cards for each search. The default server limit is intentionally small to protect the Booking proxy/WAF path. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `searches` | array | Yes | JSON array of search objects. Each object requires ss, checkin, and checkout. | **Example request:** ``` GET https://scrappa.co/api/booking/bulk-prices Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "results": [] } } ``` #### Booking.com Destinations - **Docs**: https://scrappa.co/docs/booking-api/booking_destinations - **Summary**: Resolve Booking.com destination ids from a search query - **Description**: Fetches a lightweight Booking.com search page and returns the resolved destination URL, destination id, and destination type when Booking exposes them. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Destination query, e.g. Paris or New York. | | `lang` | string | No | UI language hint (e.g. en-us, de). | | `currency` | string | No | 3-letter currency code (e.g. EUR, USD). | **Example request:** ``` GET https://scrappa.co/api/booking/destinations?q=Paris&lang=en-us¤cy=EUR Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "suggestions": [] } } ``` #### Booking.com Facilities - **Docs**: https://scrappa.co/docs/booking-api/booking_facilities - **Summary**: Extract facilities and policies from a Booking.com hotel page - **Description**: Returns visible facility, amenity, and policy text when those sections are rendered in the public hotel page HTML. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | No | Full Booking.com hotel URL (e.g. https://www.booking.com/hotel/fr/ritz-paris.html). Either url OR (country + slug) is required. | | `country` | string | No | 2-letter country code (e.g. fr, us, de). Used together with slug. | | `slug` | string | No | Hotel slug from the Booking.com URL (e.g. ritz-paris). The trailing .html is optional. | **Example request:** ``` GET https://scrappa.co/api/booking/facilities?country=fr&slug=muguet Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "facilities": [], "policies": [] } } ``` #### Booking.com Hotel - **Docs**: https://scrappa.co/docs/booking-api/booking_hotel - **Summary**: Get hotel details from a Booking.com property page - **Description**: Fetches a Booking.com property page and returns structured data extracted from the page (title, canonical URL, JSON-LD Hotel schema, OpenGraph metadata, aggregate rating). Pass either a full Booking.com hotel URL via "url", or a country + slug pair (e.g. country=fr, slug=ritz-paris). **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | No | Full Booking.com hotel URL (e.g. https://www.booking.com/hotel/fr/ritz-paris.html). Either url OR (country + slug) is required. | | `country` | string | No | 2-letter country code (e.g. fr, us, de). Used together with slug. | | `slug` | string | No | Hotel slug from the Booking.com URL (e.g. ritz-paris). The trailing .html is optional. | **Example request:** ``` GET https://scrappa.co/api/booking/hotel?country=fr&slug=ritz-paris Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "hotel_schema": null } } ``` #### Booking.com Photos - **Docs**: https://scrappa.co/docs/booking-api/booking_photos - **Summary**: Extract public image URLs from a Booking.com hotel page - **Description**: Returns public image URLs exposed through JSON-LD and social metadata on a Booking.com property page. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | No | Full Booking.com hotel URL (e.g. https://www.booking.com/hotel/fr/ritz-paris.html). Either url OR (country + slug) is required. | | `country` | string | No | 2-letter country code (e.g. fr, us, de). Used together with slug. | | `slug` | string | No | Hotel slug from the Booking.com URL (e.g. ritz-paris). The trailing .html is optional. | **Example request:** ``` GET https://scrappa.co/api/booking/photos?country=fr&slug=muguet Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "photos": [] } } ``` #### Booking.com Prices - **Docs**: https://scrappa.co/docs/booking-api/booking_prices - **Summary**: Extract visible price cards from Booking.com search results - **Description**: Returns visible price text from dated Booking.com search result cards. This is a public-page signal, not guaranteed inventory. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `ss` | string | Yes | Destination, e.g. "Paris" or "New York". | | `checkin` | string | Yes | Check-in date (YYYY-MM-DD). Required for price cards to render. | | `checkout` | string | Yes | Check-out date (YYYY-MM-DD). Required for price cards to render. | | `group_adults` | integer | No | Number of adults (1-30). Defaults to Booking.com default. | | `group_children` | integer | No | Number of children (0-20). | | `no_rooms` | integer | No | Number of rooms (1-30). | | `dest_id` | integer | No | Booking.com destination id when known (e.g. -1456928 for Paris). Helps Booking render resolved city result pages. | | `dest_type` | string | No | Booking.com destination type when known: city, region, district, hotel, landmark, or airport. | | `lang` | string | No | UI language hint (e.g. en-us, de). | | `currency` | string | No | 3-letter currency code (e.g. EUR, USD). | **Example request:** ``` GET https://scrappa.co/api/booking/prices?ss=Paris&checkin=2026-06-01&checkout=2026-06-04&group_adults=2&dest_id=-1456928&dest_type=city Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "prices": [] } } ``` #### Booking.com Review Scores - **Docs**: https://scrappa.co/docs/booking-api/booking_review_scores - **Summary**: Extract aggregate review score fields from a Booking.com hotel page - **Description**: Returns the public aggregate rating fields exposed on a Booking.com property page. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | No | Full Booking.com hotel URL (e.g. https://www.booking.com/hotel/fr/ritz-paris.html). Either url OR (country + slug) is required. | | `country` | string | No | 2-letter country code (e.g. fr, us, de). Used together with slug. | | `slug` | string | No | Hotel slug from the Booking.com URL (e.g. ritz-paris). The trailing .html is optional. | **Example request:** ``` GET https://scrappa.co/api/booking/review-scores?country=fr&slug=muguet Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "aggregate_rating": null } } ``` #### Booking.com Rooms - **Docs**: https://scrappa.co/docs/booking-api/booking_rooms - **Summary**: Extract visible room cards from a Booking.com hotel page - **Description**: Returns visible room names, prices, occupancy, and bed text when Booking renders room availability for the supplied dates. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | No | Full Booking.com hotel URL (e.g. https://www.booking.com/hotel/fr/ritz-paris.html). Either url OR (country + slug) is required. | | `country` | string | No | 2-letter country code (e.g. fr, us, de). Used together with slug. | | `slug` | string | No | Hotel slug from the Booking.com URL (e.g. ritz-paris). The trailing .html is optional. | | `checkin` | string | No | Check-in date (YYYY-MM-DD). | | `checkout` | string | No | Check-out date (YYYY-MM-DD). | | `group_adults` | integer | No | Number of adults (1-30). | | `group_children` | integer | No | Number of children (0-20). | | `no_rooms` | integer | No | Number of rooms (1-30). | | `lang` | string | No | UI language hint (e.g. en-us, de). | | `currency` | string | No | 3-letter currency code (e.g. EUR, USD). | **Example request:** ``` GET https://scrappa.co/api/booking/rooms?country=fr&slug=muguet&checkin=2026-07-04&checkout=2026-07-06&group_adults=2 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "rooms": [] } } ``` #### Booking.com Search - **Docs**: https://scrappa.co/docs/booking-api/booking_search - **Summary**: Search hotels on Booking.com - **Description**: Fetches a Booking.com search results page and returns structured property cards (name, URL, image, review score, location, price). For best results pass checkin + checkout dates: bare location-only queries on Booking.com redirect to the empty form page. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `ss` | string | Yes | Destination, e.g. "Paris" or "New York". | | `checkin` | string | No | Check-in date (YYYY-MM-DD). Required for property cards to render. | | `checkout` | string | No | Check-out date (YYYY-MM-DD). Required for property cards to render. | | `group_adults` | integer | No | Number of adults (1-30). Defaults to Booking.com default. | | `group_children` | integer | No | Number of children (0-20). | | `no_rooms` | integer | No | Number of rooms (1-30). | | `dest_id` | integer | No | Booking.com destination id when known (e.g. -1456928 for Paris). Helps Booking render resolved city result pages. | | `dest_type` | string | No | Booking.com destination type when known: city, region, district, hotel, landmark, or airport. | | `lang` | string | No | UI language hint (e.g. en-us, de). | | `currency` | string | No | 3-letter currency code (e.g. EUR, USD). | **Example request:** ``` GET https://scrappa.co/api/booking/search?ss=Paris&checkin=2026-06-01&checkout=2026-06-04&group_adults=2&dest_id=-1456928&dest_type=city Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "results": [] } } ``` #### Booking.com Search by URL - **Docs**: https://scrappa.co/docs/booking-api/booking_search_by_url - **Summary**: Parse a copied Booking.com search URL - **Description**: Accepts a Booking.com search, city, region, district, landmark, or airport URL and returns the same structured result-card payload as the search endpoint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `url` | string | Yes | Full Booking.com search or destination URL. | **Example request:** ``` GET https://scrappa.co/api/booking/search-by-url?url=https%3A%2F%2Fwww.booking.com%2Fsearchresults.html%3Fss%3DParis Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "data": { "results": [] } } ``` ### Domain Availability API Check whether domains are registered using RDAP #### Domain Availability - **Docs**: https://scrappa.co/docs/domain-availability-api/domain_availability - **Summary**: Check whether a domain is registered or probably available - **Description**: Check a domain against the authoritative RDAP server listed in the IANA bootstrap registry. RDAP can identify registered domains and can indicate that a domain is probably available when the registry returns not found. Registrar checkout availability, premium pricing, aftermarket inventory, reserved names, and registration restrictions require registrar or registry availability data. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `domain` | string | Yes | The fully qualified domain name to check. Example: `example.com` | **Example request:** ``` GET https://scrappa.co/api/domains/availability?domain=example.com Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "domain": "example.com", "available": false, "registered": true, "status": "registered", "confidence": "high", "source": "rdap", "rdap_url": "https://rdap.verisign.com/com/v1/domain/example.com", "rdap_status_code": 200, "rdap_events": [], "nameservers": [] } ``` ### 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**: Use the Google Finance quote API when you need a single ticker-level response for a stock, ETF, or other Google Finance instrument. The endpoint returns current price fields, market status, previous close, day range, year range, market cap, P/E ratio, dividend yield, company profile details, financial statement rows, related news, and discovery tickers as structured JSON. This page is built for developers comparing stock quote APIs, finance quote JSON endpoints, and Google Finance data extraction workflows. Start with [Search Financial Instruments](/docs/google-finance-api/google_finance_search) when you only know a company name, then call this quote endpoint with the resolved symbol and exchange. Pair quote data with [Historical Data](/docs/google-finance-api/google_finance_historical) for backtests, [Intraday Graph Data](/docs/google-finance-api/google_finance_intraday) for charting, and [Markets Overview](/docs/google-finance-api/google_finance_markets) for broader market context. **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. Pair this with the [Google Finance quote API](/docs/google-finance-api/google_finance_quote) when you need current price, company details, key statistics, financials, and news for the same ticker. **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. Use the [Google Finance quote API](/docs/google-finance-api/google_finance_quote) alongside intraday charts when you also need quote summary fields, key statistics, company information, financials, and news. **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. For individual stock detail after checking market benchmarks, use the [Google Finance quote API](/docs/google-finance-api/google_finance_quote). **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. When a market mover needs deeper ticker-level data, open the [Google Finance quote API](/docs/google-finance-api/google_finance_quote). **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. After resolving the symbol and exchange, use the [Google Finance quote API](/docs/google-finance-api/google_finance_quote) to fetch the complete stock profile, key stats, financials, and news. **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 request:** ``` GET https://scrappa.co/api/flights/airlines Header: X-API-KEY: your_api_key ``` **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 request:** ``` GET https://scrappa.co/api/flights/airports Header: X-API-KEY: your_api_key ``` **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/flights/booking-details?booking_token=abc123&origin=JFK&destination=LAX&departure_date=2026-09-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/flights/date-range?origin=JFK&destination=LAX&from_date=2026-09-01&to_date=2026-09-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., 2026-09-15) | | `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/flights/one-way?origin=JFK&destination=LAX&departure_date=2026-09-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/flights/round-trip?origin=JFK&destination=LAX&departure_date=2026-09-15&return_date=2026-09-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.
scrappa_google_hotels_link to fetch full hotel search resultskgmid), and property tokens for deeper lookupshl and gl parametersSend a partial query (minimum 2 characters) and the API returns ranked suggestions from Google's hotel database. Use the type parameter to filter results:
hotel (default) — Returns only accommodation suggestions (specific hotels, resorts, hostels)location — Returns only geographic suggestions (cities, regions, landmarks)all — Returns both hotel and location suggestions togetherEach suggestion includes a type field indicating the suggestion category:
accommodation — Hotels, resorts, hostels, and other lodging propertieslocation — Cities, regions, landmarks, and geographic areasEach 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.
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.
Full Kununu 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 Jobs Search - **Docs**: https://scrappa.co/docs/linkedin-api/linkedin_jobs_search - **Summary**: Search LinkedIn jobs via Google Search - **Description**: Search public LinkedIn job listings using the normal Google Search stack with an automatic `site:linkedin.com/jobs/view/` constraint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `query` | string | Yes | Job search query. Company, seniority, and location keywords can be included directly in the query. | | `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/jobs/search?query=software+engineer+berlin Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "organic_results": [], "search_information": [] } ``` #### 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 | | `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/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 Home Valuation (AVM) - **Docs**: https://scrappa.co/docs/redfin-api/redfin_valuation - **Summary**: Redfin AVM estimates with value range, comparable sales, and property specs - **Description**:Get Redfin automated home valuation data for a specific US property. The endpoint is designed for AVM-style workflows where you already have a Redfin property_id from search results or a property details lookup and need a structured estimate, low/high value range, last sale context, and comparable-property signals.
The response can include the predicted home value, estimated low and high bounds, last sold price, last sold date, beds, baths, square footage, lot size, year built, and comparable sales. These fields are useful for building home equity calculators, pricing research tools, investment screening dashboards, portfolio monitoring, and homeowner-facing value estimate experiences.
Start with Redfin Location Search when you need region IDs, then use Redfin Property Search to find candidate listings and extract the property_id. For a known property, call Redfin Property Details first when you need richer listing context before requesting this valuation endpoint.
Use property search when you need a list of homes in a city, ZIP code, county, or neighborhood. Use Redfin Home Valuation when your workflow centers on one property and needs an estimated value range, comparable sales, and property attributes for underwriting, pricing analysis, or automated real estate reports.
**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": 850000, "predictedValueLow": 800000, "predictedValueHigh": 900000, "lastSoldPrice": 750000, "lastSoldDate": "2020-05-15", "numBeds": 3, "numBaths": 2, "sqFt": { "value": 1800 }, "lotSize": { "value": 4500 }, "yearBuilt": 1920, "comparables": [ { "address": "456 Oak Ave", "price": 875000, "beds": 3, "baths": 2, "sqFt": 1850 } ] } } ``` #### 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": [] } ``` ### SimilarWeb API Get website traffic and analytics data #### SimilarWeb Traffic - **Docs**: https://scrappa.co/docs/similarweb-api/similarweb - **Summary**: Website traffic analytics - **Description**: Get website traffic analytics, rankings, and engagement metrics for any domain. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `domain` | string | Yes | The domain to analyze. Protocols and www prefixes are stripped automatically. | **Example request:** ``` GET https://scrappa.co/api/similarweb?domain=google.com Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "domain": "google.com", "site_name": "google.com", "title": "Google", "category": "computers_electronics_and_technology/search_engines", "global_rank": { "Rank": 1 }, "country_rank": { "Country": 840, "CountryCode": "US", "Rank": 1 }, "engagement": { "visits": "84172772881", "time_on_site": "592.7030576468261", "page_per_visit": "8.358154686471503", "bounce_rate": "0.28502974800803477", "month": "12", "year": "2025" } } ``` ### Startpage Search API Privacy-focused anonymous search engine #### Startpage Search API - **Docs**: https://scrappa.co/docs/startpage-api/startpage_search - **Summary**: Startpage Search API docs for anonymous SERP results in JSON - **Description**: Startpage API documentation for developers who need Startpage search results in JSON. Scrappa's `GET /api/startpage/search` endpoint returns anonymous Startpage web results with titles, descriptions, URLs, domains, and pagination metadata. ## Startpage API for search results Use this Startpage API endpoint when you want Startpage results in an API response instead of maintaining your own scraper. It fits SERP monitoring, privacy-first search products, research pipelines, rank tracking, compliance review tools, and automation workflows that need anonymous web search data. ## What you get from the Startpage API Each response includes ranked organic results with `position`, `title`, `description`, `url`, and `domain`, plus `total_results` and `source`. You can use `language`, `page`, and `safe_search` to request localized or filtered Startpage result sets for privacy-focused search products, SEO analysis, and market research. ## How to call the Startpage Search API Send a `GET` request to `/api/startpage/search` with a required `query` parameter and your Scrappa API key in the `x-api-key` header. Add `language=english`, `page=0`, and `safe_search=true` when you need reproducible first-page results for monitoring, testing, or customer-facing search features. ## Startpage response fields for developers Use `position` to preserve ranking order, `title` and `description` for result previews, `url` for destination links, and `domain` for grouping or deduplication. The `source` field identifies the response as `startpage`, which helps when you combine this endpoint with Google Search or other Scrappa search APIs in the same pipeline. ## When to use Startpage instead of other search APIs Choose this endpoint when you need Google-quality results through a privacy proxy and do not want user-level personalization or tracking signals affecting the result set. That makes it useful for neutral SERP monitoring, compliance-sensitive products, and teams comparing multiple search engines from one Scrappa account. ## Implementation and indexing notes The Startpage Search API is a REST endpoint, so it works with backend jobs, browser-based admin tools, AI agents, and scheduled rank-tracking workflows. For authentication details, see the [API authentication guide](/docs/authentication). To test a request in the browser before writing code, open the [API playground](/docs/playground) or compare usage against the [pay-as-you-go scraping API guide](/post/pay-as-you-go-scraping-api). ## Related search workflow docs Use [Google Search API](/docs/google-search-api/search) when you need Google web results. For a broader overview of pricing, positioning, and usage, see the [Startpage API overview](/apis/startpage-api). **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" } ``` ### 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": [ { "value": "1", "label": "Software Development" }, { "value": "2", "label": "Software Engineering" } ], "locations": [ { "value": "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/details?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/details?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/posts?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/search?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/details?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/posts?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/list?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/replies?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/list?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/search?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/details?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/posts?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/details?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/posts?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 request:** ``` GET https://scrappa.co/api/tiktok/regions Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [ "US", "JP", "DE" ] } ``` #### Similar Users - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_similar - **Summary**: Get similar users - **Description**: Discover users related to a TikTok account 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 users to return. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user/similar?unique_id=ovaksss&user_id=6821796598806348805&count=20 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### TikTok User Followers - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_followers - **Summary**: Get TikTok follower lists - **Description**: Fetch TikTok follower lists as structured JSON for audience research, influencer discovery, creator vetting, and social graph analysis. Use a username or numeric user ID to inspect who follows a public TikTok account, page through follower data, and enrich creator intelligence workflows. **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 followers to return, from 1 to 50. | | `time` | integer | No | Follower pagination token/time marker. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user/followers?user_id=107955&count=50&time=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` #### TikTok User Search API - **Docs**: https://scrappa.co/docs/tiktok/tiktok_user_search - **Summary**: Search TikTok users by keyword as JSON - **Description**: Use Scrappa's TikTok user search API to find public TikTok accounts by username, brand name, creator niche, product category, or keyword. The `GET /api/tiktok/user/search` endpoint returns matching user records as structured JSON with cursor-based pagination, so developer teams can build creator discovery, influencer research, social listening, and profile enrichment workflows without maintaining a TikTok search scraper. ## TikTok user search API for creator discovery Search keywords such as a creator niche, brand term, campaign phrase, location, product category, or username fragment to discover public TikTok accounts. This endpoint is useful when you need a TikTok username search API for influencer databases, creator marketplaces, social CRM enrichment, competitor account discovery, or brand safety review queues. ## What the TikTok user search response returns The response includes a `users` array with account identifiers and profile fields such as `user_id`, `unique_id`, `nickname`, `avatar`, `follower_count`, and `verified` when the upstream returns them. Use `unique_id` as the human-readable TikTok handle, `user_id` as the stable account identifier for follow-up API calls, `follower_count` for audience-size filtering, and `verified` to separate official or notable accounts from lookalikes. ## How to call the TikTok User Search API Send a `GET` request to `/api/tiktok/user/search` with the required `keywords` parameter and your Scrappa API key in the `x-api-key` header. Add `count` to control page size and pass the returned `cursor` into the next request when `hasMore` is true. ## Common TikTok user search workflows Start with this endpoint when you need a seed list of accounts, then enrich or analyze those users with adjacent TikTok endpoints. Discover creators by niche, fetch profile details with the [TikTok User Profile API](/docs/tiktok/tiktok_user_profile), review recent videos with the [TikTok User Posts API](/docs/tiktok/tiktok_user_posts), inspect follower or following graphs with [TikTok Followers API](/docs/tiktok/tiktok_user_followers), or compare account discovery against keyword video search through the [TikTok Feed Search API](/docs/tiktok/tiktok_feed_search). ## Related TikTok API docs For the full endpoint family, pricing context, and TikTok API use cases, see the [TikTok API overview](/apis/tiktok-api). For authentication details, use the [API authentication guide](/docs/authentication). To test a request before writing code, open the [API playground](/docs/playground). **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `keywords` | string | Yes | Search text for public TikTok users. Use a username fragment, brand name, creator niche, product category, or campaign keyword. | | `count` | integer | No | Number of user matches to return for the page, up to 50. | | `cursor` | string | No | Pagination cursor from the previous response. Pass this value with the same `keywords` query when `hasMore` is true. | **Example request:** ``` GET https://scrappa.co/api/tiktok/user/search?keywords=skincare+creator&count=10&cursor=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "processed_time": 0.74, "data": { "users": [ { "user_id": "107955", "unique_id": "tiktok", "nickname": "TikTok", "avatar": "https://example.com/avatar.jpeg", "follower_count": 88900000, "verified": true }, { "user_id": "6821796598806348805", "unique_id": "example.creator", "nickname": "Example Creator", "avatar": "https://example.com/creator.jpeg", "follower_count": 245000, "verified": false } ], "hasMore": true, "cursor": "10" } } ``` #### 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/list?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/favorites?unique_id=%40tiktok&count=10&cursor=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/following?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/list?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/posts?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/profile?unique_id=%40tiktok 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/story?unique_id=%40isi.cos Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "code": 0, "msg": "success", "data": [] } ``` ### TrustedShops API Get TrustedShops shop discovery, market, category, profile, review, and rating data for European e-commerce intelligence. #### TrustedShops Categories - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_categories - **Summary**: Get all shop categories - **Description**: Get available TrustedShops shop categories for a specific market and return category names, IDs, total shop counts, and URL path values as structured JSON. Use [TrustedShops Markets](/docs/trustedshops-api/trustedshops_markets) to choose a supported country code first. Then pass a returned `urlPath` value to [TrustedShops Category Shops](/docs/trustedshops-api/trustedshops_category_shops) to browse shops inside that category. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `market` | string | No | Market code filter (DEU, GBR, AUT, CHE, NLD, ESP, ITA, FRA, BEL, POL, PRT). Default: DEU | **Example request:** ``` GET https://scrappa.co/api/trustedshops/categories?market=DEU Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "categories": [ { "name": "Bekleidung", "urlPath": "bekleidung", "id": 23, "totalCount": 9678 } ] } ``` #### TrustedShops Category Shops - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_category_shops - **Summary**: Get shops by category - **Description**: Browse shops within a TrustedShops category and market, then return paginated merchant profiles with TSIDs, names, ratings, review counts, certification state, categories, and profile URLs. Use [TrustedShops Categories](/docs/trustedshops-api/trustedshops_categories) first to get valid category `urlPath` values for a market. Use [TrustedShops Shop Profile](/docs/trustedshops-api/trustedshops_shop) or [TrustedShops Reviews](/docs/trustedshops-api/trustedshops_reviews) when you want to enrich or monitor shops returned by this category browsing endpoint. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `category` | string | Yes | Category URL path (e.g. bekleidung). Use the Categories endpoint to get available values. | | `page` | integer | No | Page number for pagination (0-500). Default: 0 | | `market` | string | No | Market code filter (DEU, GBR, AUT, CHE, NLD, ESP, ITA, FRA, BEL, POL, PRT). Default: DEU | **Example request:** ``` GET https://scrappa.co/api/trustedshops/category-shops?category=bekleidung&page=0&market=DEU Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "metaData": { "totalShopCount": 9678, "totalPageCount": 484 }, "shops": [], "categories": [] } ``` #### TrustedShops Markets - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_markets - **Summary**: List supported TrustedShops markets - **Description**: List every TrustedShops market supported by Scrappa and return the country names plus ISO alpha-3 market codes required by market-aware endpoints. This free metadata endpoint helps you choose valid country filters before running shop search, category discovery, or category browsing requests. Use [TrustedShops Search](/docs/trustedshops-api/trustedshops_search) when you already know a shop or brand name. Use [TrustedShops Categories](/docs/trustedshops-api/trustedshops_categories) to fetch category URL paths for a market, then call [TrustedShops Category Shops](/docs/trustedshops-api/trustedshops_category_shops) to page through shops in that category. **Example request:** ``` GET https://scrappa.co/api/trustedshops/markets Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "markets": [ { "code": "DEU", "name": "Germany" }, { "code": "GBR", "name": "United Kingdom" } ], "total_markets": 11 }, "message": "TrustedShops markets retrieved successfully" } ``` #### TrustedShops Reviews - **Docs**: https://scrappa.co/docs/trustedshops-api/trustedshops_reviews - **Summary**: Get shop reviews - **Description**: Fetch review records for a specific TrustedShops shop by TSID and return structured review data for reputation monitoring, product quality analysis, review dashboards, and merchant intelligence workflows. Use [TrustedShops Search](/docs/trustedshops-api/trustedshops_search) to find the TSID for a shop name or domain first. Call [TrustedShops Shop Profile](/docs/trustedshops-api/trustedshops_shop) when you need profile metadata for the same merchant, including its target market and profile-level fields. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `tsid` | string | Yes | TrustedShops shop ID | **Example request:** ``` GET https://scrappa.co/api/trustedshops/reviews/{tsid}?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 TrustedShops shop profiles - **Description**: Search TrustedShops shop profiles by brand name, domain, or merchant keyword and return matching European e-commerce shops as structured JSON. Each result can include the shop name, TSID, TrustedShops profile URL, rating summary, review count, category assignments, certification state, and market-specific metadata. Use this endpoint when you need to resolve a human search term into TrustedShops identifiers before calling [TrustedShops Shop Profile](/docs/trustedshops-api/trustedshops_shop) or [TrustedShops Reviews](/docs/trustedshops-api/trustedshops_reviews). Pair search with [TrustedShops Markets](/docs/trustedshops-api/trustedshops_markets) to choose the right country code and [TrustedShops Categories](/docs/trustedshops-api/trustedshops_categories) when building category-level shop discovery workflows. **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**: Fetch a single TrustedShops shop profile by TSID and return merchant-level profile data as structured JSON. The response is useful when you need to enrich a known TrustedShops ID with the shop URL, display name, language, target market, and profile metadata before joining it to reviews or search results. Start with [TrustedShops Search](/docs/trustedshops-api/trustedshops_search) if you need to discover the TSID from a shop name or domain. Use [TrustedShops Reviews](/docs/trustedshops-api/trustedshops_reviews) for review-level records from the same TSID, or [TrustedShops Markets](/docs/trustedshops-api/trustedshops_markets) to validate the market codes used across the TrustedShops docs cluster. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `tsid` | string | Yes | TrustedShops ID | **Example request:** ``` GET https://scrappa.co/api/trustedshops/shop/{tsid}?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 request:** ``` GET https://scrappa.co/api/trustpilot/categories Header: X-API-KEY: your_api_key ``` **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 for Trustpilot page localization (e.g. en-US, de-DE). Review language defaults to languages=all unless the languages parameter is set. | **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. Review language defaults to languages=all; pass a 2-letter language code such as languages=de for German reviews. **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 | Sort order. Valid values: "relevance" for Trustpilot relevance ranking or "recency" for newest reviews first. No other sort values are accepted. | | `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) | | `languages` | string | No | Review language filter. Defaults to "all". Use "all" to fetch reviews in all languages, or a 2-letter code like en or de. Trustpilot expects language codes here, not locale codes: use de, not 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&languages=all 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 request:** ``` GET https://scrappa.co/api/trustpilot/countries Header: X-API-KEY: your_api_key ``` **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": [] } ``` #### Countries - **Docs**: https://scrappa.co/docs/vinted-api/vinted_countries - **Summary**: List supported Vinted market codes - **Description**: Get the supported Vinted countries, TLDs, and currencies. Use this free endpoint to discover valid `country` values before making paid Vinted API calls. **Example request:** ``` GET https://scrappa.co/api/vinted/countries Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "countries": [ { "code": "FR", "name": "France", "tld": "fr", "currency": "EUR" }, { "code": "DE", "name": "Germany", "tld": "de", "currency": "EUR" }, { "code": "US", "name": "United States", "tld": "com", "currency": "USD" } ], "total_countries": 19 }, "message": "Vinted countries retrieved successfully" } ``` #### 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 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": [] } ``` #### Vinted API Item Details - **Docs**: https://scrappa.co/docs/vinted-api/vinted_item_details - **Summary**: Public API alternative for Vinted item details - **Description**: Looking for official Vinted API documentation or a public API for item details? Vinted does not provide a generally available public API for developers. Scrappa provides a documented Vinted item details API endpoint that returns listing title, description, photos, pricing, shipping costs, seller profile, item condition, brand, size, category, favorites, and view counts as structured JSON across 19 countries. Use this endpoint when a Vinted search result needs to become a complete product record for resale analytics, price monitoring, catalog enrichment, fraud review, or seller-quality scoring. A typical workflow is to find item IDs with the Vinted Search Items endpoint, enrich each listing with Item Details, compare alternatives with Similar Items, and check delivery context with Item Shipping. Item Details is the enrichment step in a Vinted data workflow. Search results are useful for discovery, but the item details response is where applications can inspect the listing description, gallery, seller reputation, favorites, views, availability, category, condition, brand, size, total item price, shipping price, service fee, source URL, and image fields before storing or scoring a product record. **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&country=DE Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": { "item": { "id": "1234567890", "title": "Nike Air Max 90", "description": "Great condition Nike Air Max 90 sneakers. Barely worn and shipped in the original box.", "price": { "amount": 45, "currency": "EUR" }, "total_item_price": 50.49, "shipping_price": 3.49, "service_fee": 2, "brand": "Nike", "category": "Shoes", "size": "EU 42", "color": "Black", "condition": "Very good", "condition_title": "Very good", "url": "https://www.vinted.de/items/1234567890-nike-air-max-90", "availability": "InStock", "image_url": "https://images1.vinted.net/t/01_01234_example/image.jpg", "photos": [ { "url": "https://images1.vinted.net/t/01_01234_example/image.jpg" }, { "url": "https://images1.vinted.net/t/02_01234_example/image.jpg" }, { "url": "https://images1.vinted.net/t/03_01234_example/image.jpg" } ], "seller": { "id": 98765432, "login": "seller123", "feedback_count": 50, "feedback_reputation": 4.8 }, "favourite_count": 15, "view_count": 234 } }, "message": "Item details retrieved successfully", "meta": { "duration_ms": 123.45, "scraped_at": "2026-02-01T00:00:00.000Z", "cached": false } } ``` ### 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?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?url=https%3A%2F%2Fexample.com&include_html=0 Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "site_status_code": 200, "url": "https://example.com", "final_url": "https://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 } } ``` ### WLW API Search for B2B suppliers, products, and companies on wlw.de (Wer liefert was) #### WLW Search - **Docs**: https://scrappa.co/docs/wlw-api/wlw_search - **Summary**: Search B2B suppliers and products on WLW - **Description**: Search for B2B suppliers, products, and services on wlw.de (Wer liefert was). Supports filtering by country, category, employee count, supplier type, location, price range, and more. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `q` | string | Yes | Search query (e.g., "agentur", "software", "logistik") | | `page` | integer | No | Page number (default: 1) | | `per_page` | integer | No | Results per page (1-50, default: 15) | | `country` | string | No | Country code for site context: DE (Germany), AT (Austria), CH (Switzerland). Default: DE | | `countries` | string | No | Filter results by country codes (comma-separated, e.g., "DE,AT") | | `category` | string | No | Filter by category ID (returned in filters of search results) | | `supplier_type` | string | No | Filter by supplier type (comma-separated, e.g., "producer,dealer,service_provider") | | `attributes` | string | No | Filter by attribute codes (comma-separated, returned in filters) | | `verified` | boolean | No | Only show verified suppliers (true/false) | | `top_responder` | boolean | No | Only show top responders (true/false) | | `latitude` | number | No | Location filter: latitude coordinate | | `longitude` | number | No | Location filter: longitude coordinate | | `radius` | integer | No | Location filter: search radius in km (requires latitude/longitude) | | `sort` | string | No | Sort order: "relevance" (default), "recency", "trending", "distance" (requires location) | | `language` | string | No | Language code (default: de) | **Example request:** ``` GET https://scrappa.co/api/wlw/search?q=agentur&country=DE Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "success": true, "data": [ { "id": "product-uuid", "name": "Digital Marketing Agentur", "description": "Full-service digital marketing agency...", "slug": "digital-marketing-agentur-12345678", "category": "616529", "price": { "min": 500, "currency": "EUR", "kind": "from" }, "images": [ { "url": "https://example.com/image.png" } ], "sell_points": [ "Professional team", "Fast delivery" ], "company": { "id": "12345678", "uuid": "company-uuid", "name": "Example GmbH", "slug": "example-gmbh-12345678", "logo": "https://example.com/logo.png", "country_code": "DE", "founding_year": "2010", "distribution_area": "international", "is_customer": true, "certificates_count": 3 } } ], "meta": { "pagination": { "current_page": 1, "total_pages": 142, "per_page": 15, "total_results": 2129 }, "filters": { "categories": [], "countries": [], "employee_counts": [], "supplier_types": [], "attributes": [] }, "duration_ms": 345.67, "cached": false, "cached_at": null } } ``` ### YouTube API YouTube API - search videos, channels, comments, and more #### YouTube Channel Community - **Docs**: https://scrappa.co/docs/youtube-api/youtube_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/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_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/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_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/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_channel_videos - **Summary**: List YouTube channel uploads as JSON - **Description**: Use the YouTube Channel Videos API when you need a channel upload feed in structured JSON. Send a channel ID and Scrappa returns video IDs, titles, thumbnails, duration, view counts, publish timing, short/live flags, the selected sort order, and pagination metadata. ## YouTube channel uploads API This endpoint is built for developers who need to collect videos from a specific YouTube channel without maintaining browser automation or reverse-engineering YouTube page markup. It fits creator monitoring, competitive content research, media databases, video discovery tools, sponsorship workflows, and analytics jobs that need repeatable channel-level video lists. ## What the channel videos response includes Each response includes a `videos` array with upload-level fields such as `id`, `title`, `thumbnail`, `duration`, `viewCount`, and `publishedTime`. The `pagination` object exposes `page`, `pageSize`, `hasMore`, and a `continuationToken` when more results are available, so you can crawl large channels incrementally instead of relying on a single oversized request. ## Sorting and pagination Use `sort=newest` for monitoring fresh uploads, `sort=popular` for finding the channel's top-performing videos, and `sort=oldest` when you need a historical crawl from the beginning of a channel. Set `limit` to control page size, then pass the returned `continuation` token or page through your next request when `hasMore` is true. ## Related YouTube API workflow Start with [YouTube Channel Info](/docs/youtube-api/youtube_channel) when you need the channel name, handle, subscriber count, and profile metadata before collecting uploads. Use [YouTube Video Info](/docs/youtube-api/youtube_video) to enrich individual video IDs, [YouTube Comments](/docs/youtube-api/youtube_comments) for audience response, and [YouTube Playlist](/docs/youtube-api/youtube_playlist) when videos are organized by playlist instead of the channel uploads tab. **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/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_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/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 - **Summary**: List supported locales - **Description**: Get the available locale combinations supported by the external YouTube service. **Example request:** ``` GET https://scrappa.co/api/youtube-external/locales Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "locales": [ { "hl": "en", "gl": "US" }, { "hl": "de", "gl": "DE" } ] } ``` #### YouTube Playlist - **Docs**: https://scrappa.co/docs/youtube-api/youtube_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/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 Related Videos - **Docs**: https://scrappa.co/docs/youtube-api/youtube_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/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_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/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_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/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_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/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_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/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_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/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 } ``` #### YouTube Video Transcript - **Docs**: https://scrappa.co/docs/youtube-api/youtube_transcript - **Summary**: Get transcript segments and full text - **Description**: Get the transcript for a YouTube video. Also available as /api/youtube/{videoId}/transcript and the matching legacy /api/youtube-external/* aliases. **Parameters:** | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `video_id` | string | Yes | YouTube video ID (aliases: videoId, id) | | `videoId` | string | Yes | YouTube video ID (aliases: video_id, id) | | `id` | string | Yes | YouTube video ID (aliases: video_id, videoId) | | `language` | string | No | Transcript language code or name (alias: lang). | | `lang` | string | No | Transcript language code or name (alias: language). | | `hl` | string | No | Language code for localized upstream video info lookups (e.g., en). | | `gl` | string | No | Country code for localized upstream video info lookups (e.g., US). | **Example request:** ``` GET https://scrappa.co/api/youtube/transcript?video_id=dQw4w9WgXcQ&language=es Header: X-API-KEY: your_api_key ``` **Example response (truncated):** ```json { "videoId": "dQw4w9WgXcQ", "language": "es", "languageName": "Spanish", "sourceLanguage": "en", "sourceLanguageName": "English", "isAutoGenerated": true, "isTranslated": true, "availableLanguages": [ { "language": "en", "name": "English", "isAutoGenerated": true, "isTranslatable": true } ], "translationLanguages": [ { "language": "es", "name": "Spanish" } ], "transcript": [ { "text": "Hola mundo", "startMs": 1000, "durationMs": 2000, "endMs": 3000, "startTime": 1 } ], "text": "Hola mundo" } ``` ## 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 - Best MCP Servers for Web Scraping: https://scrappa.co/post/best-mcp-servers-web-scraping