Start free

Subprocessors

Version 10Effective 23 August 2026

Draft: not yet reviewed by counsel. SocialPipe has not launched and this document is published for transparency while it is being finalised. Values still being confirmed appear as [to be confirmed: …]. Until this notice is removed, treat this as a statement of intent rather than a binding agreement.

[to be confirmed: legal entity] ("SocialPipe", "we") engages the subprocessors below to provide the API. This list is versioned: we publish additions here before they begin processing customer personal data, so customers have the opportunity to object under Art. 28(2) GDPR.

To be notified of changes, email privacy@socialpipe.dev and ask to join the subprocessor notification list.

Current subprocessors

SubprocessorPurposeData processedProcessing location
RailwayApplication hosting, managed Postgres and managed Redis, covering accounts, API keys, credit ledger, usage records, response cache, rate-limit counters and runtime logsAccount email, API key hashes, billing and usage records, cached platform responses, rate-limit counters, application logs (7-day retention)US West (sfo)
CloudflareDNS for socialpipe.devRequest metadata in transitGlobal edge
StripePayment processing, subscription billing and invoicing. We are the seller of record; Stripe is our processorBilling name, address, payment details, transaction historyUS / global

Card numbers are entered directly with Stripe and never reach our systems. We do not receive, store or process them.

Planned, not yet engaged

Named here because our architecture anticipates them, and because Art. 28(2) gives you the right to object before a subprocessor starts processing rather than after. None of these holds or receives any data today. Each moves into the table above, with a new version and a changelog entry, before it processes anything.

CandidateIntended purposeStatus
SupabaseAuthentication for the customer dashboard: session tokens only, never extraction dataNot configured in the production deployment; processes nothing
TikHubThe sole data source for every API route, and the only platform served is X (formerly Twitter). Twelve endpoints: profiles, user tweets, tweet detail, media, replies, search, trending, followers, followings, retweeters, and two comment pathsNot configured in the production deployment; processes nothing. We send it a public username, tweet id, search keyword, country code or pagination cursor and nothing else. No account, customer or end-user data is transmitted. Five of the twelve endpoints return pages of third-party accounts — followers, followings, retweeters and both comment paths — see Privacy Policy
ApifyComment extractionEvaluated and not adopted, on cost

Transfers outside the EEA

None. Every subprocessor in the table above processes within the EEA, the United States, or at a global edge under its own transfer framework, and no endpoint sends customer or extracted data anywhere else.

Version 6 of this list named Xiaomi (MiMo) on a Singapore endpoint, for AI summarization. The endpoint that called it has been removed from the API, and with it the only transfer that relied on Standard Contractual Clauses. Nothing is transferred to Singapore.

What we send, and what we return

We send a subprocessor a public identifier and nothing else — a username, tweet id, search keyword, country code or pagination cursor. Never an account email, an API key, a customer identifier, or anything about who is asking. A search keyword is the one input a customer composes freely rather than copies from a URL, and it is forwarded verbatim; do not put anything in it you would not send to a third party.

TikHub keeps its own copy for 24 hours, and we did not say so until version 10. Every response it returns carries a note in its envelope: "This response is cached and accessible via the URL below for 24 hours at no extra cost. The cache is for request tracing only." The address is a signed URL, we strip that part of the envelope so no customer ever receives it, and we do not use it. It is disclosed here because it is a real retention of real data at a third party, and a subprocessor list that describes only the parts we chose is not a subprocessor list.

What comes back is returned to the customer unchanged. As of version 8 the API is a router: the response body is the platform's own record of a public post or account, passed through without selection or alteration. That record contains information about the people who published it — handles, display names, biographies, profile images, follower counts — and about anyone they quoted or mentioned. We do not add to it, join it against another source, or infer anything from it. Our own copy is held in the response cache under a declared expiry and nowhere else.

Version 7 of this document said raw commenter handles are hashed before anything is cached, returned or logged. That commitment was withdrawn in version 8 and stays withdrawn. A router has nowhere to perform such a transformation.

Version 8 went further and removed the comment endpoints. Version 9 puts them back, and adds three routes that return social graphs. twitter/comments, twitter/comments-latest, twitter/followers, twitter/following and twitter/retweeters each return a page of accounts that are not the subject of the request, with their handles, display names, biographies and profile images intact. TikHub processes those requests and returns those records; we pass them through and cache them under the declared expiry. Nothing is hashed, and this document no longer implies otherwise. The reasoning, including the Art. 6(1)(f) balancing for bulk social-graph retrieval, is in the Privacy Policy and in ADR-035.

What we store ourselves

Not strictly a subprocessor question, and included because a reader of this page is trying to work out where their data ends up rather than which of the answers is contractual.

A response cache in Redis, at Railway, 12 hours by default and at most 30 days. Keyed on a fingerprint of the request; it carries no customer identifier.

A billing record per call in Postgres, also at Railway: the route name, the credit count, whether it was a cache hit, and when. Not what was asked for.

A capability to store the request and the response beside that billing record, which is switched off. The setting that enables it is zero on every system we run, nothing is written while it is zero, and our build refuses to enable it while the Privacy Policy still says otherwise. That policy's section A store we have built and have not switched on is the fuller account, including what we would owe a data subject if it were ever turned on.

What is never sent to a subprocessor

Change log

VersionDateChange
102026-08-23Two disclosures, neither of which changes what is processed today. (1) TikHub caches every response it returns for 24 hours at a signed URL and says so in its own envelope. We strip that part of the envelope, never use the address, and had not disclosed the retention — this corrects that. (2) A new What we store ourselves section covering the response cache, the per-call billing record, and a capability to store each call's parameters and response that is built and switched off. Published before it holds anything, per the same Art. 28(2) reasoning this list applies to third parties, and gated by an automated test that fails the build if it is enabled while the Privacy Policy still says there is no archive
92026-08-23TikHub's scope becomes X only, across twelve endpoints, five of which return people in bulk. (1) TikTok and YouTube are withdrawn from the product; nothing is extracted for them. (2) X coverage widens from two endpoints to twelve, adding tweet detail, media, replies, search and trending. (3) The comment endpoints withdrawn in version 8 are restored, and followers, followings and retweeters are added beside them. These five return pages of accounts who are not the subject of the request. Version 8 removed comments rather than publish a hashing promise the software could not keep; version 9 keeps the promise withdrawn and describes the processing accurately instead. No data has been processed under any version of this document. (4) The list of what we send widens from "post id, video id, channel id or username" to include a search keyword, country code and pagination cursor
82026-08-23Three changes, and the second is the one to read. (1) TikHub becomes the sole data source for every route, and its scope is restated as TikTok videos and profiles, YouTube videos and channels, and X profiles and timelines. (2) The commitment to hash commenter handles and display names is withdrawn, and the comment endpoints are withdrawn with it. The API no longer transforms a response — it returns the platform's own record unchanged — so the hashing had nowhere left to happen. Rather than publish a promise with no mechanism, both comment endpoints were removed before launch and an automated test now fails the build if one returns. No comment data was ever processed under the previous wording. (3) Cloudflare's row narrows to DNS: the bot-verification widget went with the browser tools it gated, so no IP address or challenge token is processed
72026-08-22Xiaomi (MiMo) removed with the endpoint that called it; no transfer outside the EEA/US remains
62026-08-22TikHub's scope narrowed to the two platforms we serve. Instagram, Reddit, LinkedIn and X are withdrawn from the product, so nothing is extracted for them; YouTube posts, comments and channels are named explicitly, which version 5 omitted. Same category of data (a public identifier), fewer platforms. Also corrects the version number in this document's header, which had said 3 since version 3
52026-08-22TikHub's scope widened from TikTok comments alone to posts and profiles on Instagram, Reddit, LinkedIn, TikTok and X. Same category of data (a public identifier) across more platforms. Published before any of it processes anything
42026-08-22ScrapeCreators replaced by TikHub as the intended TikTok comment subprocessor, before either processed anything. Same data sent and less of it: a public video id rather than a video URL
32026-08-21Paddle replaced by Stripe for payment processing. This also changes who sells to you: SocialPipe is now the seller of record and Stripe is our processor, where previously Paddle sold to you as merchant of record
22026-08-21Added ScrapeCreators to Planned, not yet engaged, for TikTok comment extraction. Published before it processes anything, per Art. 28(2)
12026-08-21Initial published list