# Web scraper APIs that return structured JSON

Pick a prebuilt scraper for TikTok, X, Instagram or Google. Send one request. Get clean, structured data back.

[Browse scrapers](/scrapers/)

[See pricing](/pricing/)

Or press ⌘ K inside Apify to run one now

230,000 users and 246 million runs across the 26 Apidojo scrapers on Apify

## Fast, reliable and effortless

Stop maintaining scrapers that break on every redesign, and stop renting proxies to keep them alive.

### Structured output, not raw HTML

Every scraper returns typed JSON with documented fields. You never write a parser, and a site redesign is our problem rather than yours.

0 parsers to maintain

### No proxy layer to operate

Rotation, retries and blocking are handled inside the actor. There is nothing for you to configure and no IP pool to rent.

99.7% run success, last 30 days

### Built for throughput

Concurrency is the default rather than a paid tier. Pull a full follower list, a hashtag or a channel catalogue in one run.

600 posts per second at peak

### Priced on results

You pay per record returned, so a blocked request costs nothing. No credit arithmetic and no seat minimums.

from $0.30 per 1,000 records

Figures as published by API Dojo, September 2026. Per-scraper pages carry the measurement conditions and a verification date for each number.

## From nothing to structured data

One request

-   Rotate
-   Retry
-   Parse

Failed attempts are not billed. Selector breakage stops here.

Typed JSON

01

### Pick a scraper

Choose the platform you need. Each one publishes its inputs, its output fields and its limits before you commit to anything.

02

### Send one request

Authenticate with a token and post your input. There is no browser to manage, no proxy to rent and no queue to build.

```bash
$ curl -X POST \
    "https://api.apify.com/v2/acts/apidojo~tiktok-profile-scraper/\
     run-sync-get-dataset-items?token=$APIFY_TOKEN" \
    -H "Content-Type: application/json" \
    -d '{"usernames":["nasa"],"maxItems":2}'
```

03

### Read structured JSON

Results come back as typed records you can insert straight into a database, a warehouse or an automation step.

```json
[
  {
    "id": "7524427347697896726",
    "title": "Webb has imaged the Sombrero galaxy...",
    "views": 489994,
    "likes": 18968,
    "comments": 267,
    "uploadedAtFormatted": "2026-09-08T14:02:11.000Z",
    "channel": { "username": "nasa", "followers": 99361540 },
    "postPage": "https://www.tiktok.com/@nasa/video/7524427347697896726"
  }
]
```

## Five scrapers in production

Each one publishes its inputs, its output fields and its price. Every figure below is visible on the Apify marketplace without an account.

### Twitter Scraper

Access tweets, profiles, threads and search results from Twitter (X) at scale. Extract engagement metrics, author details, media and conversation data. Built for social listening, brand monitoring, sentiment analysis and trend research.

[Read the reference](/scrapers/twitter-scraper/)

**$0.40 per 1,000 tweets** Price

**164.2M runs** Lifetime runs

**102,420 users** Used by

[Verify on Apify](https://apify.com/apidojo/tweet-scraper)

### TikTok Scraper

Collect TikTok videos, profiles, hashtags, comments, sounds and locations. Extract view, like, share and bookmark counts alongside creator follower data. Built for influencer discovery, campaign tracking and market analysis.

[Read the reference](/scrapers/tiktok-scraper/)

**$0.30 per 1,000 posts** Price

**14.4M runs** Lifetime runs

**11,204 users** Used by

[Verify on Apify](https://apify.com/apidojo/tiktok-scraper)

### Instagram Scraper

Pull Instagram posts, reels, profiles, hashtags and locations. Extract captions, like and comment counts, media URLs, paid-partnership flags and owner details. Built for creator vetting, competitor tracking and audience research.

[Read the reference](/scrapers/instagram-scraper/)

**$0.50 per 1,000 posts** Price

**9.8M runs** Lifetime runs

**9,281 users** Used by

[Verify on Apify](https://apify.com/apidojo/instagram-scraper)

### YouTube Scraper

Extract YouTube videos, channels, playlists, comments and transcripts. Collect view counts, subscriber figures, descriptions, tags and availability by country. Built for content research, competitive benchmarking and media monitoring.

[Read the reference](/scrapers/youtube-scraper/)

**$0.50 per 1,000 videos** Price

**6.5M runs** Lifetime runs

**30,241 users** Used by

[Verify on Apify](https://apify.com/apidojo/youtube-scraper)

### Google Search Scraper

Read Google search results as structured records: organic listings, positions, titles, links and snippets. Query by keyword, language and location. Built for rank tracking, SERP monitoring and keyword research.

[Read the reference](/scrapers/google-search-scraper/)

**$2.00 per 1,000 queries** Price

**59,027 runs** Lifetime runs

**1,313 users** Used by

[Verify on Apify](https://apify.com/apidojo/google-search-scraper)

## Every field, documented before you buy

No scraper ships without a published output reference. Pick one and read the exact shape of what comes back.

**Twitter**

**TikTok**

**Instagram**

**YouTube**

| Field | Type | Nullable | Description |
| --- | --- | --- | --- |
| id | string | no | Tweet identifier, stable across requests. |
| text | string | no | Full tweet body. |
| createdAt | string | no | Creation timestamp, Twitter date format. |
| likeCount | number | no | Likes at the time of collection. |
| retweetCount | number | no | Retweets at the time of collection. |
| replyCount | number | no | Replies at the time of collection. |
| quoteCount | number | no | Quote tweets at the time of collection. |
| bookmarkCount | number | no | Bookmarks at the time of collection. |
| lang | string | no | Detected language code. |
| isReply | boolean | no | Whether the tweet replies to another. |
| author | object | no | userName, name, id, followers, following, isVerified, isBlueVerified, profilePicture. |

[Published at apify.com/apidojo/tweet-scraper](https://apify.com/apidojo/tweet-scraper)

| Field | Type | Nullable | Description |
| --- | --- | --- | --- |
| id | string | no | Post identifier. |
| title | string | no | Post caption including hashtags. |
| views | number | no | Play count at the time of collection. |
| likes | number | no | Likes at the time of collection. |
| comments | number | no | Comment count. |
| shares | number | no | Share count. |
| bookmarks | number | no | Saves at the time of collection. |
| hashtags | array | no | Hashtags parsed out of the caption. |
| uploadedAtFormatted | string | no | ISO 8601 upload timestamp. |
| channel | object | no | username, name, bio, avatar, verified, followers, following, videos, likes. |
| video | object | no | width, height, ratio, duration, url, cover, thumbnail. |
| song | object | yes | id, title, artist. Null when the post has no attached sound. |

[Published at apify.com/apidojo/tiktok-scraper](https://apify.com/apidojo/tiktok-scraper)

| Field | Type | Nullable | Description |
| --- | --- | --- | --- |
| id | string | no | Post identifier. |
| code | string | no | Short code used in the public post URL. |
| url | string | no | Canonical post URL. |
| createdAt | string | no | ISO 8601 creation timestamp. |
| caption | string | yes | Post caption. Null when the post has none. |
| likeCount | number | no | Likes at the time of collection. |
| commentCount | number | no | Comment count. |
| isPinned | boolean | no | Whether the post is pinned to the profile. |
| isPaidPartnership | boolean | no | Whether the post carries a paid partnership label. |
| owner | object | no | username, fullName, id, profilePicUrl, isPrivate, isVerified. |

[Published at apify.com/apidojo/instagram-scraper](https://apify.com/apidojo/instagram-scraper)

| Field | Type | Nullable | Description |
| --- | --- | --- | --- |
| id | string | no | Channel identifier. |
| name | string | no | Channel display name. |
| url | string | no | Canonical channel URL. |
| description | string | yes | Channel description. |
| subscriberCount | string | no | Subscribers as displayed, for example "244M subscribers". |
| videosCount | string | no | Video count as displayed. |
| isVerified | boolean | no | Whether the channel carries a verification badge. |
| isFamilySafe | boolean | no | Whether the channel is marked family safe. |
| thumbnails | array | no | Avatar variants with url, width and height. |
| tags | array | no | Channel keywords. |
| availableCountries | array | no | Country codes where the channel is available. |

[Published at apify.com/apidojo/youtube-channel-information-scraper](https://apify.com/apidojo/youtube-channel-information-scraper)

## The same job, done three ways

The difference is not speed on a graph, it is how much of the work stays in your codebase.

|  | Building it yourself | Other scraping APIs | Apidojo |
| --- | --- | --- | --- |
| Proxies | You rent pools and manage rotation and bans | Pool included, rotation still tuned by you | Rotation runs inside the actor, nothing to configure |
| Parsing | You write every selector | Raw HTML back, the parser stays yours | Typed JSON with documented fields |
| Site redesigns | Your bug, your weekend | Your bug, your weekend | Selector breakage stops on our side |
| Failed requests | You pay for the infrastructure regardless | Billed per request, failures included | Billed per record returned, failures unbilled |
| Retries | You write the backoff logic | Retries count against your quota | Handled in the run and not charged |
| Time to first record | Days of setup | Hours, plus parser work | One authenticated request |

Every scraper is published on the Apify marketplace, where run history, pricing and reviews are visible without an account. Browse them at apify.com/apidojo.

## Runs where your pipeline already lives

-   ### Apify

    Every scraper ships as an actor on the Apify marketplace, with scheduling, storage and webhooks included.

-   ### n8n

    Drop a scraper into a workflow node and pipe structured records straight into the next step.

-   ### Make

    Trigger a run from any Make scenario and map output fields onto the modules that follow.

-   ### Zapier

    Connect a scraper to several thousand apps without writing or hosting any code.

## What teams say after the switch

The pattern in the feedback is consistent: the scrapers stop being something anyone has to think about.

230K

users across the 26 Apidojo scrapers on Apify

[Browse the scrapers](/scrapers/)

-   > We stopped fixing scrapers entirely. Apidojo runs reliably every single time, without fail.

    Priya Shah Automation Lead

-   > Data quality improved instantly. Structured fields, clean outputs, and zero duplicates every run.

    Chris Tan Data Quality Lead

-   > The reliability is unmatched. It feels like having a full internal data team on autopilot.

    Liam O'Connor CTO

-   > The speed shocked our team. We collected thousands of records in seconds without issues.

    Jonas Weber Analytics Manager

-   > Costs dropped dramatically overnight. Apidojo delivers fast, stable results at a great price.

    Hannah Reed Ops Director

-   > Apidojo boosted our entire pipeline. We finally gather accurate data consistently, without interruptions.

    Emily Zhang Strategy Director

## Guides worth your afternoon

[All articles](/blog/)

[How to Scrape Instagram Data in 2026](/blog/instagram-scraping/how-to-scrape-instagram/)

Instagram scraping

### How to Scrape Instagram Data in 2026

What Instagram data you can scrape, the 3 ways to collect it, which apidojo actor fits each task, limits, costs and Python code.

Apidojo16 Oct 2026 4 min read

[Instagram API in 2026: Graph API and Alternatives](/blog/instagram-api/instagram-api-guide/)

Instagram API

### Instagram API in 2026: Graph API and Alternatives

What Instagram's official API can and can't do after the Basic Display shutdown, its login types and limits, and scraper alternatives.

Apidojo 3 min

[Best Instagram Scrapers in 2026, Compared](/blog/instagram-api/best-instagram-scrapers/)

Instagram API

### Best Instagram Scrapers in 2026, Compared

Compare Instagram scrapers and APIs by pricing model, cost per 100,000 posts, coverage and limits, and pick the right one.

Apidojo 3 min

## Web scraper API questions

The ones a developer actually asks before signing up, answered without hedging.

[See pricing](/pricing/)

### What is a web scraper API?

A web scraper API collects data from a public web page and returns it over HTTP, so you do not run browsers or proxies yourself. Two kinds exist. A generic scraping API fetches a page and hands back raw HTML for you to parse. A structured scraper API, which is what API Dojo provides, parses the page for you and returns typed JSON fields.

### What data can I extract with a web scraping API?

Anything published publicly on a supported platform: posts, profiles, follower lists, product listings, prices, reviews, search results and place data. Content behind a login, and personal data that is not publicly posted, are out of scope.

### Is web scraping legal?

Collecting publicly available information is broadly permitted in many jurisdictions, but the answer depends on what you collect, where you operate and how you use it. Personal data brings obligations under regimes such as the GDPR, and a platform’s terms of service may restrict automated access independently of the law. This is general information rather than legal advice. Take advice on your specific use case.

### How is this different from ScraperAPI or ScrapingBee?

Those are proxy and rendering APIs. They fetch a URL and return the HTML, and writing plus maintaining the parser stays your job. API Dojo ships one prebuilt scraper per platform and returns parsed records, so when a site changes its markup the fix happens on our side. If you need arbitrary pages across the open web, a generic API is the better tool. If you need a specific platform, a dedicated scraper is far less work.

### Do I need to write a parser or maintain selectors?

No. Each scraper publishes its output fields with types and example values, and those fields are the contract. Selector maintenance is handled upstream.

### Do I need my own proxies?

No. Rotation, retries and block handling run inside the scraper. There is no proxy pool to rent and nothing to configure.

### What happens when a request fails?

Failed attempts are retried inside the run and are not billed, because pricing is per record returned rather than per request made. A run that returns nothing costs nothing.

### Can I use it without writing code?

Yes. The n8n, Make and Zapier integrations run a scraper from a visual workflow and pass structured records to the next step. Apify adds scheduling and storage without any code either.

![apidojo logo icon](/apidojo-logo-icon.png)Apidojo

## Pick a scraper and run it today.

Every scraper has a page with its inputs, its output fields and its price. Choose one, then start a run from its Apify listing.

No sales call. Apify’s free plan runs any scraper in demo mode.

[Browse the scrapers](/scrapers/)

-   Documented Every input and output field published before you spend anything.
-   Unbilled Billed per result or per query, through your Apify account. No subscription.
-   Maintained Selector breakage stops on our side, not in your codebase.
