Social data API benchmark: SignalShelf vs ScrapeCreators
We ran the same requests through our real app and against ScrapeCreators’ API, timed each one, and compared response shapes. Here is the method, every number, and the raw data so you can check it.
Results
Run finished 2026-11-03 13:17 UTC. Medians use only endpoints where both APIs returned HTTP 200.
| Metric | Result |
|---|---|
| Paths tested through the real app | 170 (145 ScrapeCreators-compatible + 25 Outscraper-compatible) |
| Endpoints both APIs answered (HTTP 200) | 119 |
| Median response, SignalShelf | 1.44 s |
| Median response, ScrapeCreators | 3.96 s |
| SignalShelf faster on | 102 of 119 endpoints |
| Response shape: full top-level key match | 120 of 120 endpoints with a reference sample |
| Repeat call served from cache | 152 of 152 passing paths |
Method
Date: 3 November 2026. ScrapeCreators reference calls were made first (between about 10:48 and 12:26 UTC); our run finished at 13:17 UTC. Calls were sequential, not interleaved.
Client: one machine in India for both sides. Each endpoint was called once per API (n = 1).
SignalShelf side: our production app code booted on that machine with a fresh, empty database (no warm store, no cache), so every first call did real work: auth, validation, live fetch from the source, billing. Outbound traffic went through a datacenter proxy pool or direct HTTP.
ScrapeCreators side: their public API (api.scrapecreators.com) with our own key.
Inputs: one fixed public input per endpoint, for example handle=stoolpresidente for /v1/tiktok/profile. Where ScrapeCreators returned data, our call reused the exact same parameters.
Time: client wall-clock from sending the request to receiving the full JSON body.
“Faster” means our time was lower than theirs on that endpoint. Medians and the faster count only include endpoints where both APIs returned HTTP 200.
Shape match: the share of ScrapeCreators’ top-level response keys that also appear in ours (wrapper keys like success and credits_remaining excluded).
Each passing path was called a second time to confirm caching. Those repeat calls are excluded from all timings.
Caveats
Point in time: one run, one day. Latency on both sides varies by hour, input and source.
One client location (India) and one call per endpoint. This is not a load test.
Our app ran on the test machine itself, so our times don’t include the network hop to a hosted API that ScrapeCreators’ times do. A hosted deployment adds that hop.
We don’t know whether ScrapeCreators served any response from its own cache.
Shape match checks top-level keys, not every nested field or value.
Only ScrapeCreators was speed-tested. We have not timed Outscraper, Apify, Bright Data, EnsembleData, Data365, SerpApi or any other provider, and make no speed claims about them.
Check it yourself
Raw data: every row below, as JSON, at /compare/benchmark.json (internal cost fields removed; it contains no keys).
Script: scripts/smoke-guest-e2e.mjs in the SignalShelf codebase boots the real app, replays every path, and writes docs/guest/E2E_RESULTS.json, which this page is built from.
Without our code: time any endpoint on both APIs with your own keys, as below. Use 1,000 free credits + 5,000 to earn on our side.
P="/v1/tiktok/profile?handle=stoolpresidente"
curl -s -o /dev/null -w "SignalShelf %{time_total}s\n" "$SIGNALSHELF_BASE_URL$P" -H "x-api-key: $SIGNALSHELF_API_KEY"
curl -s -o /dev/null -w "ScrapeCreators %{time_total}s\n" "https://api.scrapecreators.com$P" -H "x-api-key: $SCRAPECREATORS_API_KEY"Every endpoint
One row per path. "—" means that side had no successful reference call to time. Error codes on our side are mostly test-harness inputs (for example a missing required parameter), kept here unedited.
| Path | SignalShelf | ScrapeCreators | Faster | Shape match |
|---|---|---|---|---|
| /amazon-products | HTTP 400 INVALID_PARAMETER | — | — | — |
| /amazon-reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
| /amazon/products | HTTP 400 INVALID_PARAMETER | — | — | — |
| /amazon/products-v2 | HTTP 400 INVALID_PARAMETER | — | — | — |
| /amazon/reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
| /appstore-reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
| /appstore/reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
| /google-maps-photos | 3075 ms | — | — | — |
| /google-maps-reviews | 10218 ms | — | — | — |
| /google-maps-search | 1503 ms | — | — | — |
| /google-play-reviews | 286 ms | — | — | — |
| /google-play/reviews | 4 ms | — | — | — |
| /google-search | 2200 ms | — | — | — |
| /google-search-news | 900 ms | — | — | — |
| /google-search-v3 | 2269 ms | — | — | — |
| /maps/photos-v3 | 2779 ms | — | — | — |
| /maps/reviews-v2 | 9 ms | — | — | — |
| /maps/reviews-v3 | 8885 ms | — | — | — |
| /maps/search | 4 ms | — | — | — |
| /maps/search-v2 | 4 ms | — | — | — |
| /maps/search-v3 | 4 ms | — | — | — |
| /tripadvisor-reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
| /trustpilot | HTTP 400 INVALID_PARAMETER | — | — | — |
| /trustpilot-reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
| /trustpilot/reviews | HTTP 400 INVALID_PARAMETER | — | — | — |
/v1/amazon/product | 2006 ms | — | — | — |
/v1/amazon/reviews | 2141 ms | — | — | — |
/v1/amazon/shop | 1821 ms | 8998 ms | SignalShelf | 100% |
/v1/app-store/app | 174 ms | — | — | — |
/v1/app-store/reviews | 37 ms | — | — | — |
/v1/cosmos/cluster | 392 ms | 4368 ms | SignalShelf | 100% |
/v1/cosmos/cluster/posts | 777 ms | 3610 ms | SignalShelf | 100% |
/v1/cosmos/post | 810 ms | 3466 ms | SignalShelf | 100% |
/v1/cosmos/profile | 2152 ms | 4859 ms | SignalShelf | 100% |
/v1/cosmos/search | 1568 ms | 3573 ms | SignalShelf | 100% |
/v1/cosmos/user/clusters | 730 ms | 5868 ms | SignalShelf | 100% |
/v1/cosmos/user/posts | 2251 ms | 5301 ms | SignalShelf | 100% |
/v1/facebook/adLibrary/ad | 2552 ms | 3076 ms | SignalShelf | 100% |
/v1/facebook/adLibrary/ad/transcript | 2527 ms | 4265 ms | SignalShelf | 100% |
/v1/facebook/adLibrary/company/ads | 6261 ms | 5415 ms | ScrapeCreators | 100% |
/v1/facebook/adLibrary/search/ads | 6180 ms | 2296 ms | ScrapeCreators | 100% |
/v1/facebook/adLibrary/search/companies | 4986 ms | 844 ms | ScrapeCreators | 100% |
/v1/facebook/event/details | 935 ms | 2199 ms | SignalShelf | 100% |
/v1/facebook/events | 888 ms | 1778 ms | SignalShelf | 100% |
/v1/facebook/events/search | 1142 ms | 3650 ms | SignalShelf | 100% |
/v1/facebook/group | 677 ms | 4711 ms | SignalShelf | 100% |
/v1/facebook/group/posts | HTTP 503 SOURCE_ACCESS_RESTRICTED | 4472 ms | — | 0% |
/v1/facebook/marketplace/item | 2014 ms | 2741 ms | SignalShelf | 100% |
/v1/facebook/marketplace/location/search | 480 ms | 1226 ms | SignalShelf | 100% |
/v1/facebook/marketplace/search | 727 ms | 3263 ms | SignalShelf | 100% |
/v1/facebook/post | 1024 ms | 3957 ms | SignalShelf | 100% |
/v1/facebook/post/comment/replies | 509 ms | 3964 ms | SignalShelf | 100% |
/v1/facebook/post/comments | 2131 ms | 4824 ms | SignalShelf | 100% |
/v1/facebook/post/transcript | 1067 ms | 5959 ms | SignalShelf | 100% |
/v1/facebook/profile | 1208 ms | 2751 ms | SignalShelf | 100% |
/v1/facebook/profile/events | 2061 ms | 2157 ms | SignalShelf | 100% |
/v1/facebook/profile/photos | 1906 ms | 2322 ms | SignalShelf | 100% |
/v1/facebook/profile/posts | 1089 ms | 8823 ms | SignalShelf | 100% |
/v1/facebook/profile/reels | 4895 ms | 4335 ms | ScrapeCreators | 100% |
/v1/facebook/search/videos | 1566 ms | 4032 ms | SignalShelf | 100% |
/v1/find-social-profiles | HTTP 400 INVALID_PARAMETER | HTTP 404 | — | — |
/v1/google-maps/photos | 1071 ms | — | — | — |
/v1/google-maps/place | 3417 ms | — | — | — |
/v1/google-maps/reviews | 2558 ms | — | — | — |
/v1/google-maps/search | 1199 ms | — | — | — |
/v1/google-play/app | 339 ms | — | — | — |
/v1/google-play/reviews | 585 ms | — | — | — |
/v1/google/ad | 3658 ms | 4199 ms | SignalShelf | 100% |
/v1/google/adLibrary/advertisers/search | 18816 ms | 900 ms | ScrapeCreators | 100% |
/v1/google/company/ads | 18319 ms | 1120 ms | ScrapeCreators | 100% |
/v1/google/news | 1581 ms | — | — | — |
/v1/google/search | 1672 ms | 2102 ms | SignalShelf | 100% |
/v1/instagram/audio/reels | 646 ms | 2535 ms | SignalShelf | 100% |
/v1/instagram/post | 752 ms | 5931 ms | SignalShelf | 100% |
/v1/instagram/profile | 3246 ms | 11647 ms | SignalShelf | 100% |
/v1/instagram/search | 2110 ms | 13351 ms | SignalShelf | 100% |
/v1/instagram/search/popular | HTTP 400 INVALID_PARAMETER | HTTP 404 | — | — |
/v1/instagram/song/reels | 498 ms | 2544 ms | SignalShelf | 100% |
/v1/instagram/user/embed | 1662 ms | 1614 ms | ScrapeCreators | 100% |
/v1/instagram/user/highlight/detail | 778 ms | 2800 ms | SignalShelf | 100% |
/v1/instagram/user/highlights | 439 ms | 14164 ms | SignalShelf | 100% |
/v1/instagram/user/reels | 553 ms | 3886 ms | SignalShelf | 100% |
/v1/kick/clip | 1549 ms | 6199 ms | SignalShelf | 100% |
/v1/kick/clip/transcript | 9051 ms | HTTP 503 | — | — |
/v1/komi | 6917 ms | 9370 ms | SignalShelf | 100% |
/v1/linkbio | 2919 ms | 7572 ms | SignalShelf | 100% |
/v1/linkedin/ad | HTTP 503 SOURCE_ACCESS_RESTRICTED | 2164 ms | — | 0% |
/v1/linkedin/ads/search | HTTP 503 SOURCE_ACCESS_RESTRICTED | 6552 ms | — | 0% |
/v1/linkedin/company/posts | 1382 ms | 3737 ms | SignalShelf | 100% |
/v1/linkedin/post | 748 ms | 1637 ms | SignalShelf | 100% |
/v1/linkedin/post/transcript | 1136 ms | 2202 ms | SignalShelf | 100% |
/v1/linkedin/profile | 1520 ms | 2568 ms | SignalShelf | 100% |
/v1/linkedin/search/posts | 4108 ms | 6466 ms | SignalShelf | 100% |
/v1/linkme | 1962 ms | 2812 ms | SignalShelf | 100% |
/v1/linktree | 450 ms | 7768 ms | SignalShelf | 100% |
/v1/pillar | 1253 ms | HTTP 200 | — | 100% |
/v1/pinterest/board | 3773 ms | 12339 ms | SignalShelf | 100% |
/v1/pinterest/pin | 454 ms | 4293 ms | SignalShelf | 100% |
/v1/pinterest/search | 1688 ms | 3201 ms | SignalShelf | 100% |
/v1/pinterest/topic | 685 ms | 3796 ms | SignalShelf | 100% |
/v1/pinterest/user/boards | 637 ms | 2946 ms | SignalShelf | 100% |
/v1/reddit/post/transcript | 897 ms | 4526 ms | SignalShelf | 100% |
/v1/rumble/channel/videos | 1102 ms | 4138 ms | SignalShelf | 100% |
/v1/rumble/search | 2558 ms | 1449 ms | ScrapeCreators | 100% |
/v1/rumble/video | 1013 ms | 3613 ms | SignalShelf | 100% |
/v1/rumble/video/comments | 1405 ms | 4669 ms | SignalShelf | 100% |
/v1/rumble/video/transcript | 2647 ms | 6468 ms | SignalShelf | 100% |
/v1/snapchat/spotlight/comments | 637 ms | 3812 ms | SignalShelf | 100% |
/v1/soundcloud/artist | 1251 ms | 2350 ms | SignalShelf | 100% |
/v1/soundcloud/artist/tracks | 3236 ms | 2744 ms | ScrapeCreators | 100% |
/v1/soundcloud/track | 905 ms | 5605 ms | SignalShelf | 100% |
/v1/spotify/album | 350 ms | 8704 ms | SignalShelf | 100% |
/v1/spotify/artist | 1233 ms | 10851 ms | SignalShelf | 100% |
/v1/spotify/playlist | 451 ms | 8820 ms | SignalShelf | 100% |
/v1/spotify/podcast | 475 ms | 3499 ms | SignalShelf | 100% |
/v1/spotify/podcast/episodes | 452 ms | 6895 ms | SignalShelf | 100% |
/v1/spotify/search | 707 ms | 3369 ms | SignalShelf | 100% |
/v1/spotify/track | 432 ms | 7800 ms | SignalShelf | 100% |
/v1/telegram/channel | 1004 ms | 2955 ms | SignalShelf | 100% |
/v1/telegram/channel/posts | 851 ms | 1400 ms | SignalShelf | 100% |
/v1/telegram/post | 254 ms | 2502 ms | SignalShelf | 100% |
/v1/threads/post | 877 ms | 5343 ms | SignalShelf | 100% |
/v1/threads/profile | 5258 ms | 3257 ms | ScrapeCreators | 100% |
/v1/threads/search | 1919 ms | 2228 ms | SignalShelf | 100% |
/v1/threads/search/users | 830 ms | 5910 ms | SignalShelf | 100% |
/v1/threads/user/posts | 4502 ms | 4208 ms | ScrapeCreators | 100% |
/v1/tiktok/ad-library/ad | 2853 ms | 8304 ms | SignalShelf | 100% |
/v1/tiktok/ad-library/search | 7044 ms | 1662 ms | ScrapeCreators | 100% |
/v1/tiktok/collection/videos | 989 ms | HTTP 400 | — | — |
/v1/tiktok/get-trending-feed | 2276 ms | 8624 ms | SignalShelf | 100% |
/v1/tiktok/live | 2593 ms | HTTP 400 | — | — |
/v1/tiktok/profile | 3366 ms | 4072 ms | SignalShelf | 100% |
/v1/tiktok/search/hashtag | 2417 ms | 7562 ms | SignalShelf | 100% |
/v1/tiktok/search/keyword | 2001 ms | 2844 ms | SignalShelf | 100% |
/v1/tiktok/search/suggestions | 2393 ms | 1224 ms | ScrapeCreators | 100% |
/v1/tiktok/search/top | 1607 ms | 4537 ms | SignalShelf | 100% |
/v1/tiktok/search/users | 9499 ms | 2500 ms | ScrapeCreators | 100% |
/v1/tiktok/shop/product/reviews | HTTP 503 SOURCE_ACCESS_RESTRICTED | 3090 ms | — | 0% |
/v1/tiktok/shop/products | 1678 ms | 3638 ms | SignalShelf | 100% |
/v1/tiktok/song | 935 ms | 2569 ms | SignalShelf | 100% |
/v1/tiktok/song/videos | 604 ms | 3249 ms | SignalShelf | 100% |
/v1/tiktok/user/followers | 482 ms | 2819 ms | SignalShelf | 100% |
/v1/tiktok/user/following | 453 ms | 2035 ms | SignalShelf | 100% |
/v1/tiktok/user/live | 926 ms | 7027 ms | SignalShelf | 100% |
/v1/tiktok/video/comment/replies | 1997 ms | 2312 ms | SignalShelf | 100% |
/v1/tiktok/video/comments | 4167 ms | 991 ms | ScrapeCreators | 100% |
/v1/tiktok/video/transcript | 3081 ms | 4004 ms | SignalShelf | 100% |
/v1/tiktok/videos/popular | 9190 ms | HTTP 400 | — | — |
/v1/tripadvisor/reviews | 781 ms | — | — | — |
/v1/trustpilot/business | 690 ms | — | — | — |
/v1/trustpilot/reviews | 233 ms | — | — | — |
/v1/truthsocial/post | 769 ms | 2609 ms | SignalShelf | 100% |
/v1/truthsocial/profile | 8733 ms | 1160 ms | ScrapeCreators | 100% |
/v1/truthsocial/user/posts | 8516 ms | 4372 ms | ScrapeCreators | 100% |
/v1/twitch/clip/transcript | 1725 ms | 7838 ms | SignalShelf | 100% |
/v1/twitter/community | 554 ms | 4226 ms | SignalShelf | 100% |
/v1/twitter/community/tweets | 1041 ms | 3732 ms | SignalShelf | 100% |
/v1/twitter/profile | 2656 ms | 4093 ms | SignalShelf | 100% |
/v1/twitter/search/posts | 2811 ms | 6127 ms | SignalShelf | 100% |
/v1/twitter/tweet | 612 ms | 2602 ms | SignalShelf | 100% |
/v1/twitter/tweet/transcript | 591 ms | 6165 ms | SignalShelf | 100% |
/v1/twitter/user-tweets | 1442 ms | 3834 ms | SignalShelf | 100% |
/v1/web/search | HTTP 400 INVALID_PARAMETER | — | — | — |
/v1/youtube/shorts/trending | 10902 ms | 11076 ms | SignalShelf | 100% |
/v2/instagram/media/transcript | 5909 ms | 7620 ms | SignalShelf | 100% |
/v2/instagram/post/comments | 706 ms | 5618 ms | SignalShelf | 100% |
/v2/instagram/reels/search | 4924 ms | 11590 ms | SignalShelf | 100% |
/v2/instagram/user/posts | 2124 ms | 14576 ms | SignalShelf | 100% |
/v2/tiktok/video | 989 ms | 5212 ms | SignalShelf | 100% |
/v3/tiktok/profile/videos | 3389 ms | 5316 ms | SignalShelf | 100% |