scraper-api-com Tinder API
Tinder: 0 public endpoints, no account needed, plus 9 signed-in routes (login, logout, messages, account, search, profile, like, matches, challenge) behind an `x-session-id`.
Tinder: 0 public endpoints, no account needed, plus 9 signed-in routes (login, logout, messages, account, search, profile, like, matches, challenge) behind an `x-session-id`.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/scraper-api-com:scraper-api-com-tinder-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: scraper-api.com Tinder API
version: 0.1.0
description: 'Self-hosted social media scraping API — a drop-in replacement for scrapecreators.com.
## Authentication
Every request must send your API key in the `x-api-key` header.
## Credits
Billing is credit-based: **1 request = 1 credit** (some endpoints cost more — see each endpoint''s description). Credits are **non-expiring** — buy once, use whenever.
Response bodies match the ScrapeCreators shapes so existing integrations work unchanged.'
contact:
name: Fabian Bitter
email: fabian@bitter.de
servers:
- url: https://api.scraper-api.com
description: Production
security:
- apiKeyAuth: []
tags:
- name: Tinder
description: 'Tinder: 0 public endpoints, no account needed, plus 9 signed-in routes (login, logout, messages, account, search, profile, like, matches, challenge) behind an `x-session-id`.'
paths:
/v1/tinder/login:
post:
tags:
- Tinder
summary: Open a Tinder session with the account's own credentials.
operationId: tinder_v1_login
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters: []
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
session_id: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
user_id: name@example.com
expires_at: '2026-08-09T22:02:00.000Z'
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: The portal account's e-mail address, or its phone number in +49… form where the platform signs in with one.
example: name@example.com
password:
type: string
description: The portal account's password, or the one-time code where the platform has no password.
example: •••••••••
login_token:
type: string
description: The token the challenge route handed back, which binds the code to the attempt it was sent for. On a portal that only asks for a code when it does not recognise the sign-in, this carries that mailed code itself.
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
required:
- username
- password
example:
username: name@example.com
password: •••••••••
/v1/tinder/logout:
post:
tags:
- Tinder
summary: Close a Tinder session and drop everything it stored. Free of charge
operationId: tinder_v1_logout
description: '**Live endpoint.** Free of charge.'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example: null
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/tinder/messages:
get:
tags:
- Tinder
summary: Read the signed-in Tinder account's inbox, or one conversation in full when…
operationId: tinder_v1_messages
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
- name: conversation_id
in: query
required: false
description: One conversation of the inbox. Omit to list the inbox.
schema:
type: string
example: '412778905'
- name: limit
in: query
required: false
description: How many members one page holds.
schema:
type: string
example: '20'
- name: cursor
in: query
required: false
description: Continue after the previous page. Take it from `next_cursor` of the answer.
schema:
type: string
example: eyJvZmZzZXQiOjIwfQ
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
count: 1
next_cursor: null
conversations:
- conversation_id: '412778905'
partner: Lea
partner_photo: https://…/1.jpg
last_message: Klingt gut, wann passt es dir?
last_message_at: '2026-08-08T18:24:00.000Z'
unread: true
unread_count: 1
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
post:
tags:
- Tinder
summary: 'Send a Tinder message: a reply into conversation_id, or a first contact on…'
operationId: tinder_v1_messages_send
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
conversation_id: '412778905'
data:
delivered: true
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: The message text.
example: Ist der Artikel noch verfuegbar?
conversation_id:
type: string
description: One conversation of the inbox. Omit to list the inbox.
example: '412778905'
user_id:
type: string
description: The other member's id on the platform.
example: '12345678'
required:
- message
example:
message: Ist der Artikel noch verfuegbar?
/v1/tinder/account:
get:
tags:
- Tinder
summary: The signed-in Tinder account's own profile, or another member's when id is given
operationId: tinder_v1_account
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
- name: id
in: query
required: false
description: Another member's public id. Omit for the signed-in account's own profile.
schema:
type: string
example: e63599e304f57gf2efi03735d45g21h6
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
data:
id: '12345678'
name: Lea
age: 29
gender: female
city: Bochum
distance_km: 12
online: true
last_seen: '2026-08-09T09:12:00.000Z'
about: Ich koche gern und laufe noch lieber.
photos:
- https://…/1.jpg
- https://…/2.jpg
attributes:
height: '168'
smoker: 'no'
relationship: single
liked_by_me: false
likes_me: null
matched: false
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/tinder/search:
get:
tags:
- Tinder
summary: Search Tinder for other members, with the app's own filters (gender, age range…
operationId: tinder_v1_search
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
- name: gender
in: query
required: false
description: Which gender to look for. Tinder carries a fourth value of its own, beyond_binary.
schema:
type: string
enum:
- male
- female
- beyond_binary
- any
- name: min_age
in: query
required: false
description: Youngest age to include.
schema:
type: string
example: '25'
- name: max_age
in: query
required: false
description: Oldest age to include.
schema:
type: string
example: '40'
- name: distance
in: query
required: false
description: Search radius in kilometres around the account's location.
schema:
type: string
example: '50'
- name: with_photo
in: query
required: false
description: Only members who have at least one photo.
schema:
type: string
enum:
- 'true'
- 'false'
- name: min_photos
in: query
required: false
description: Only members with at least this many photos.
schema:
type: string
example: '3'
- name: has_bio
in: query
required: false
description: Only members who wrote an about text.
schema:
type: string
enum:
- 'true'
- 'false'
- name: photo_verified
in: query
required: false
description: Only members whose selfie the platform verified.
schema:
type: string
enum:
- 'true'
- 'false'
- name: interests
in: query
required: false
description: Only members who share at least one of these interests, under the platform's own names, comma separated. Case is ignored.
schema:
type: string
example: Kaffee,Wandern
- name: save_filters
in: query
required: false
description: Write age range, radius and gender onto the ACCOUNT before searching, the way the app's own settings page does, so the platform itself filters instead of this API filtering the answer. It changes the account's discovery settings and they stay changed after the call.
schema:
type: string
enum:
- 'true'
- 'false'
- name: limit
in: query
required: false
description: How many members one page holds.
schema:
type: string
example: '20'
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
count: 1
next_cursor: null
members:
- id: '12345678'
name: Lea
age: 29
gender: female
distance_km: 12
online: true
city: Bochum
headline: Lieber ein Kaffee zu viel als ein Gespraech zu wenig.
photos:
- https://…/1.jpg
url: https://…/12345678
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/tinder/profile:
get:
tags:
- Tinder
summary: 'One Tinder member''s full profile, the detail page behind a search hit: photos…'
operationId: tinder_v1_profile
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
- name: user_id
in: query
required: true
description: The other member's id on the platform.
schema:
type: string
example: '12345678'
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
data:
id: '12345678'
name: Lea
age: 29
gender: female
city: Bochum
distance_km: 12
online: true
last_seen: '2026-08-09T09:12:00.000Z'
about: Ich koche gern und laufe noch lieber.
photos:
- https://…/1.jpg
- https://…/2.jpg
attributes:
height: '168'
smoker: 'no'
relationship: single
liked_by_me: false
likes_me: null
matched: false
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/tinder/like:
post:
tags:
- Tinder
summary: Like, superlike or pass a Tinder member.
operationId: tinder_v1_like
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
user_id: '12345678'
action: LIKE
matched: false
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: The other member's id on the platform.
example: '12345678'
action:
type: string
description: What to do with that member. UNLIKE takes a like back where the platform allows it; PASS is the swipe-away.
enum:
- LIKE
- SUPERLIKE
- PASS
- UNLIKE
message:
type: string
description: The message text.
example: Ist der Artikel noch verfuegbar?
required:
- user_id
example:
user_id: '12345678'
/v1/tinder/matches:
get:
tags:
- Tinder
summary: 'The signed-in Tinder account''s matches: the members who liked back, each with…'
operationId: tinder_v1_matches
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters:
- name: x-session-id
in: header
required: true
description: The session id returned by login. Sent as the x-session-id header.
schema:
type: string
example: b6f0a1c2d3e4f5a6b7c8d9e0f1a2b3c4
- name: with_messages
in: query
required: false
description: Only the matches that already carry a conversation, or only the ones that do not.
schema:
type: string
enum:
- 'true'
- 'false'
- name: limit
in: query
required: false
description: How many members one page holds.
schema:
type: string
example: '20'
- name: cursor
in: query
required: false
description: Continue after the previous page. Take it from `next_cursor` of the answer.
schema:
type: string
example: eyJvZmZzZXQiOjIwfQ
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
count: 1
next_cursor: null
matches:
- id: '77123'
user_id: '12345678'
name: Lea
photo: https://…/1.jpg
matched_at: '2026-08-08T21:03:00.000Z'
conversation_id: '77123'
unread: true
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
/v1/tinder/challenge:
post:
tags:
- Tinder
summary: Ask Tinder to send the one-time login code.
operationId: tinder_v1_challenge
description: '**Live endpoint.** Credit cost: **1** (1 request = 1 credit).'
security:
- apiKeyAuth: []
parameters: []
responses:
'200':
description: Platform-native JSON payload (ScrapeCreators-compatible).
content:
application/json:
example:
success: true
channel: sms
login_token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
code_length: 6
sent: true
'400':
description: Missing or invalid parameters.
content:
application/json:
example:
error:
message: 'Missing required parameter(s): handle'
'401':
description: Missing or invalid API key.
content:
application/json:
example:
error:
message: Invalid API key.
'402':
description: Not enough credits.
content:
application/json:
example:
error:
message: Insufficient credits.
'429':
description: Rate limit exceeded.
content:
application/json:
example:
error:
message: Rate limit exceeded.
'502':
description: Upstream scrape failed.
content:
application/json:
example:
error:
message: Upstream scrape failed.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
username:
type: string
description: The portal account's e-mail address, or its phone number in +49… form where the platform signs in with one.
example: name@example.com
login_token:
type: string
description: The token the challenge route handed back, which binds the code to the attempt it was sent for. On a portal that only asks for a code when it does not recognise the sign-in, this carries that mailed code itself.
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
captcha_token:
type: string
description: reCAPTCHA token, where the portal's form demands one.
example: 03AGdBq26…
captcha_reference:
type: string
description: The reference the portal issued together with that bot check. Tinder verifies the solved token against it, so a token without it is never checked.
example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9…
required:
- username
example:
username: name@example.com
components:
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: x-api-key
description: Your scraper-api.com API key.
x-tagGroups:
- name: Platforms
tags:
- Instagram
- TikTok
- YouTube
- Facebook
- LinkedIn
- Twitter
- Spotify
- Apple Music
- Kleinanzeigen
- Quoka
- markt.de
- mobile.de
- '11880'
- Gelbe Seiten
- ImmobilienScout24
- immowelt
- WG-Gesucht
- Bayut
- LOVOO
- Jaumo
- Tinder
- Bumble
- Snapchat
- Google
- Arbeitsagentur
- Ausbildung.de
- meinestadt.de