{"id":20333104,"url":"https://github.com/jaebradley/tinder-client","last_synced_at":"2025-04-11T21:33:07.461Z","repository":{"id":28487331,"uuid":"118519671","full_name":"jaebradley/tinder-client","owner":"jaebradley","description":"❤️ NodeJS Tinder Client","archived":false,"fork":false,"pushed_at":"2022-12-07T17:43:50.000Z","size":2350,"stargazers_count":61,"open_issues_count":23,"forks_count":16,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-27T02:02:53.157Z","etag":null,"topics":["node","node-js","nodejs","npm","npm-package","tinder","tinder-api"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/tinder-client","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaebradley.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-22T21:48:32.000Z","updated_at":"2024-03-09T14:44:33.000Z","dependencies_parsed_at":"2022-09-16T13:20:21.411Z","dependency_job_id":null,"html_url":"https://github.com/jaebradley/tinder-client","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaebradley%2Ftinder-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaebradley%2Ftinder-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaebradley%2Ftinder-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaebradley%2Ftinder-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaebradley","download_url":"https://codeload.github.com/jaebradley/tinder-client/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248483288,"owners_count":21111432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["node","node-js","nodejs","npm","npm-package","tinder","tinder-api"],"created_at":"2024-11-14T20:29:22.886Z","updated_at":"2025-04-11T21:33:07.441Z","avatar_url":"https://github.com/jaebradley.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tinder Client\n\n![Tinder Client](https://github.com/jaebradley/tinder-client/workflows/Tinder%20Client/badge.svg)\n[![npm](https://img.shields.io/npm/dt/tinder-client.svg)](https://www.npmjs.com/package/tinder-client)\n[![npm](https://img.shields.io/npm/v/tinder-client.svg)](https://www.npmjs.com/package/tinder-client)\n\n- [Tinder Client](#tinder-client)\n  - [Introduction](#introduction)\n  - [Dependencies](#dependencies)\n  - [API](#api)\n    - [Creating a client](#creating-a-client)\n      - [`createClientFromFacebookAccessToken`](#createclientfromfacebookaccesstoken)\n      - [`createClientFromFacebookLogin`](#createclientfromfacebooklogin)\n    - [`getProfile`](#getprofile)\n    - [`updateProfile`](#updateprofile)\n    - [`getRecommendations`](#getrecommendations)\n    - [`getUser`](#getuser)\n    - [`getMetadata`](#getmetadata)\n    - [`changeLocation`](#changelocation)\n    - [`like`](#like)\n    - [`pass`](#pass)\n    - [`superLike`](#superlike)\n    - [`getUpdates`](#getupdates)\n    - [`messageMatch`](#messagematch)\n    - [`getMatch`](#getmatch)\n    - [`getMessage`](#getmessage)\n    - [`getCommonConnections`](#getcommonconnections)\n    - [`resetTemporaryLocation`](#resettemporarylocation)\n    - [`temporarilyChangeLocation`](#temporarilychangelocation)\n  - [Local Development](#local-development)\n    - [Git Hooks](#git-hooks)\n    - [Commit Linting](#commit-linting)\n    - [Retrieving Facebook User ID and Facebook Access Token](#retrieving-facebook-user-id-and-facebook-access-token)\n\n## Introduction\n\nTinder has an unofficial API that has been documented by [this gist](https://gist.github.com/rtt/10403467) and [`fbessez/Tinder`](https://github.com/fbessez/Tinder).\n\nThere is also an existing Node Client, [`tinderjs`](https://www.npmjs.com/package/tinderjs). This is a `Promise`-based equivalent.\n\n## Dependencies\n\n`tinder-client` has two dependencies:\n\n- [`axios`](https://github.com/axios/axios) (`^0.18.0`)\n- [`tinder-access-token-generator`](https://github.com/jaebradley/tinder-access-token-generator) (`^2.0.0`) - this is used to generate Tinder API access tokens\n\n## API\n\n### Creating a client\n\nThere are two ways to create a client\n\n- If you have access to a user's Facebook access token, then you can use the `createClientFromFacebookAccessToken` factory function\n- If you have access to a user's Facebook email \u0026 password, then you can use the `createClientFromFacebookLogin` factory function\n\nThe returned client object will have a variety of methods that will provide access to the Tinder API.\n\n#### `createClientFromFacebookAccessToken`\n\n```javascript\nimport { createClientFromFacebookAccessToken } from 'tinder-client';\n\nconst client = await createClientFromFacebookLogin('some facebook access token');\n```\n\n#### `createClientFromFacebookLogin`\n\n```javascript\nimport { createClientFromFacebookLogin } from 'tinder-client';\n\nconst client = await createClientFromFacebookLogin({\n  emailAddress: 'your facebook email address',\n  password: 'your facebook password',\n});\n```\n\n### `getProfile`\n\n```javascript\nconst profile = await client.getProfile();\n```\n\n### `updateProfile`\n\n```javascript\nimport { GENDERS, GENDER_SEARCH_OPTIONS } from 'tinder-client';\n\nconst userGender = GENDERS.female;\nconst searchPreferences = {\n  maximumAge: 100,\n  minimumAge: 99,\n  genderPreference: GENDER_SEARCH_OPTIONS.both,\n  maximumRangeInKilometers: 100,\n};\nconst profile = await client.updateProfile({ userGender, searchPreferences })\n```\n\n### `getRecommendations`\n\n```javascript\nconst recommendations = await client.getRecommendations();\n```\n\n### `getUser`\n\n```javascript\nconst user = await client.getUser('someUserId');\n```\n\n### `getMetadata`\n\nGet metadata for authenticated user\n\n```javascript\nconst myMetadata = await client.getMetadata();\n```\n\n### `changeLocation`\n\n```javascript\nawait client.changeLocation({ latitude: 'someLatitude', longitude: 'someLongitude' });\n```\n\n### `like`\n\n```javascript\nawait client.like('someUserId');\n```\n\n### `pass`\n\n```javascript\nawait client.pass('someUserId');\n```\n\n### `superLike`\n\n```javascript\nawait client.superLike('someUserId');\n```\n\n### `getUpdates`\n\n```javascript\nawait client.getUpdates();\nawait client.getUpdates('2019-02-05T00:00:00.004Z');\n```\n\n### `messageMatch`\n\n```javascript\nawait client.messageMatch({ matchId: 'someMatch', message: 'someMessage' });\n```\n\n### `getMatch`\n\n```javascript\nawait client.getMatch('someMatchId');\n```\n\n### `getMessage`\n\n```javascript\nawait client.getMessage('someMessageId');\n```\n\n### `getCommonConnections`\n\n```javascript\nawait client.getCommonConnections('someTinderUserId');\n```\n\n### `resetTemporaryLocation`\n\n```javascript\nawait client.resetTemporaryLocation();\n```\n\n### `temporarilyChangeLocation`\n\n```javascript\nawait client.temporarilyChangeLocation({ latitude: 'someLatitude', longitude: 'someLongitude' });\n```\n\n## Local Development\n\nAfter cloning the repository, use `nvm` / `npm` to install dependencies.\n\nTo run both all tests, execute `npm run test`.\n\nTo only run unit tests, execute `npm run unit-test`.\n\nTo only run integration tests, execute `npm run integration-test`.\n\nIn order to execute local integration tests successfully, you'll need to specify the following environment variables in the `.env` file\n\n- `FACEBOOK_EMAIL_ADDRESS`\n- `FACEBOOK_PASSWORD`\n- `TINDER_USER_ID` (Your Tinder user id)\n\nTo build the production bundle, execute `npm run build`.\n\n### Git Hooks\n\nThis project uses [`husky`](https://github.com/typicode/husky) to maintain git hooks.\n\n- `pre-commit` - run `eslint`\n- `commit-msg` - run commit message linting\n- `pre-push` - run unit tests\n\n### Commit Linting\n\nThis project uses [`semantic-release`](https://github.com/semantic-release/semantic-release) and [`commitlint`](https://github.com/conventional-changelog/commitlint) (specifically the [Angular commit convention](https://gist.github.com/stephenparish/9941e89d80e2bc58a153)) to automatically enforce semantic versioning.\n\n### Retrieving Facebook User ID and Facebook Access Token\n\nFor local development, you might want to test the client out at on an ad-hoc basis or maybe even for integration testing.\n\nIn order to do so, you'll need to get your Facebook Access Token.\n\nTo retrieve a Facebook Access Token, you'll need to\n\n- Go to [this URL](https://www.facebook.com/v2.8/dialog/oauth?app_id=464891386855067\u0026channel_url=https%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2Fd_vbiawPdxB.js%3Fversion%3D44%23cb%3Df213b0a5a606e94%26domain%3Dtinder.com%26origin%3Dhttps%253A%252F%252Ftinder.com%252Ff14b12c5d35c01c%26relation%3Dopener\u0026client_id=464891386855067\u0026display=popup\u0026domain=tinder.com\u0026e2e=%7B%7D\u0026fallback_redirect_uri=200ee73f-9eb7-9632-4fdb-432ed0c670fa\u0026locale=en_US\u0026origin=1\u0026redirect_uri=https%3A%2F%2Fstaticxx.facebook.com%2Fconnect%2Fxd_arbiter%2Fr%2Fd_vbiawPdxB.js%3Fversion%3D44%23cb%3Df20cfec000032b4%26domain%3Dtinder.com%26origin%3Dhttps%253A%252F%252Ftinder.com%252Ff14b12c5d35c01c%26relation%3Dopener%26frame%3Df2cc4d71cc96f9\u0026response_type=token%2Csigned_request\u0026scope=user_birthday%2Cuser_photos%2Cemail%2Cuser_friends%2Cuser_likes\u0026sdk=joey\u0026version=v2.8\u0026ret=login)\n- Open the `Network` tab\n- Look for a request to `/confirm`\n\n![confirm-request](https://user-images.githubusercontent.com/8136030/52327616-93f08e00-29a1-11e9-8438-3174ad663f17.png)\n\n- Look at the response, specifically the `for.jsmods.require[3][0]` value, and search the text for `access_token`\n\n![confirm-request-response](https://user-images.githubusercontent.com/8136030/52327797-2e50d180-29a2-11e9-90b3-d801816290b9.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaebradley%2Ftinder-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaebradley%2Ftinder-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaebradley%2Ftinder-client/lists"}