{"id":21186105,"url":"https://github.com/v1r4m/between-api","last_synced_at":"2025-07-14T18:39:43.877Z","repository":{"id":226229049,"uuid":"759694298","full_name":"v1r4m/between-api","owner":"v1r4m","description":"unofficial api document of Between from VCNC","archived":false,"fork":false,"pushed_at":"2024-02-21T07:47:58.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-14T20:17:10.741Z","etag":null,"topics":["reverse-engineering"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/v1r4m.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-19T06:44:43.000Z","updated_at":"2024-03-06T12:52:43.000Z","dependencies_parsed_at":"2024-03-06T15:03:06.781Z","dependency_job_id":null,"html_url":"https://github.com/v1r4m/between-api","commit_stats":null,"previous_names":["v1r4m/between-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/v1r4m/between-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v1r4m%2Fbetween-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v1r4m%2Fbetween-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v1r4m%2Fbetween-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v1r4m%2Fbetween-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/v1r4m","download_url":"https://codeload.github.com/v1r4m/between-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/v1r4m%2Fbetween-api/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265333849,"owners_count":23748886,"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":["reverse-engineering"],"created_at":"2024-11-20T18:21:44.459Z","updated_at":"2025-07-14T18:39:43.846Z","avatar_url":"https://github.com/v1r4m.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# between-api\n* unofficial api document of [Between](https://between.us) from VCNC\n* mainly reverse-engineered with `Requestly`\n* I have nothing to do with VCNC Company, and this document is only for learning; Use these apis for your own risk.\n* For chatting, you will need to set WebSocket Connection, or execute long-polling.\n* Base URL : https://api-between.vcnc.co.kr\n\n## Usage\n```\nusage: python3 test.py [-h] email password\n\nProcess email and password.\n\npositional arguments:\n  email       Email for authentication\n  password    Password for authentication\n\noptions:\n  -h, --help  show this help message and exit\n\nexample:\n  python3 test.py yourFancyEmail@fancyEmail.com yourFancyPassword\n```\n\nsimple.\n\n### 1. Authentication\n* method : `GET`\n* url : /authentication/getAccessTokenV2\n```\ncurl --location --globoff --request GET \\\n'https://api-between.vcnc.co.kr/authentication/getAccessTokenV2?email=YourVeryFancyEmail%40YourEmail.com\u0026password=YourVeryFancyPassword\u0026session[type]=sessionType\u0026session[name]=sessionName'\n```\n* request parameter\n\n|parameter|value|remarks|\n|--|--|--|\n|email|your email address|Aware that you have to use `%40` instead of `@` since it is a curl command.\n|password|your password|Not encrypted|\n|session[type]|doesn't matter|ex)Windows. If you set the Between configuration to get an alarm when you get logged in on other devices, that device name can be this parameter's value, but I'm not 100% sure.|\n|session[name]|doesn't matter|same above|\n* response example\n```\n{\n    \"access_token\": \"SomeFancyAccessToken\",\n    \"user_id\": \"SomeFancyId\",\n    \"relationship_id\": \"MyLover'sID\",\n    \"account_id\": \"SomeFancyAccountId\",\n    \"session_id\": \"SomeFancySessionId\",\n    \"expires_at\": 1716104759760,\n    \"access_before_dormant\": false\n}\n```\n\n|parameter|value|remarks|\n|--|--|--|\n|access_token||you will need this in further api call, before the `expires_at` time.\n|user_id||you will **mainly** use this id in your further api call.|\n|relationship_id||your relationship's Id. same above.|\n|account_id||I'm not sure what's the great differences between account_id and user_id; but I assume that account_id never changes, whereas user_id changes when you exchange your lover.|\n|session_id||you don't need this in most cases.|\n|expires_at||Unix Time; **This is very short, it is nearly impossible to manually call the api back with token unless you write a script.** I think it is about 1~2 seconds after the initial call.|\n|access_before_dormant||?|\n\n### 2. Get Endpoints\n* method : `GET`\n* url : /info/endpoints\n```\ncurl --location --request GET 'https://api-between.vcnc.co.kr/info/endpoints' \\\n--header 'x-between-authentication: yourFancyToken' \n```\n\n* request header\n\n|header|value|remarks|\n|--|---|--|\n|x-between-authentication|yourFancyAccessToken||\n\n* response example\n```\n{\n\t\"message\":[\n\t\t\"between+ssl://msg-between.between.us:5683/?timeout_millis=420000\",\n\t\t\"between+ssl://msg-between.between.us:443/?timeout_millis=420000\"\n\t],\n\t\"websocket\":[\n\t\t\"wss://ws-between.between.us:443/?timeout_millis=60000\"\n\t],\n\t\"push\":[\n\t\t\"between+ssl://push-between.between.us:5683/?timeout_millis=900000\",\n\t\t\"between+ssl://push-between.between.us:443/?timeout_millis=900000\"\n\t]\n}\n```\n|parameter|value|remarks|\n|--|--|--|\n|message|||\n|websocket|||\n|push|||\n\n### 3. some fun metadata\n* method : `GET`\n* url : '/`yourUser_id`/views/status\n```\ncurl --location --request GET 'https://api-between.vcnc.co.kr/yourFancyRelationship_id/views/status' \\\n--header 'x-between-authentication: yourFancyToken' \n```\n* request parameter\n\n|header|value|remarks|\n|--|---|--|\n|x-between-authentication|yourFancyAccessToken||\n\n* response example\n```\n{\n\t\"relationship\":{\n\t\t\"id\":\"--\",\n\t\t\"members\":[\n\t\t\t{\n\t\t\t\t\"user_id\":\"--\",\n\t\t\t\t\"account_state\":\"ACTIVE_RELATIONSHIP\",\n\t\t\t\t\"account_id\":\"--\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"user_id\":\"--\",\n\t\t\t\t\"account_state\":\"ACTIVE_RELATIONSHIP\",\n\t\t\t\t\"account_id\":\"--\"\n\t\t\t}\n\t\t],\n\t\t\"relationship_state\":\"ACTIVE\",\n\t\t\"used_premium_trial\":false,\n\t\t\"profile_photo_decoration\":{\n\t\t\t\"content\":{\n\t\t\t\t\"id\":\"default\",\n\t\t\t\t\"type\":\"EMPTY\",\n\t\t\t\t\"animated\":false,\n\t\t\t\t\"badge\":false\n\t\t\t},\n\t\t\t\"overrides_special_version\":0\n\t\t},\n\t\t\"created_time\":1708241395996\n\t},\n\t\"users\":[\n\t\t{\n\t\t\t\"id\":\"--\",\n\t\t\t\"gender\":\"MALE\",\n\t\t\t\"locale\":\"ko_KR\",\n\t\t\t\"timezone\":32400000,\n\t\t\t\"email\":\"--\",\n\t\t\t\"nickname\":\"--\",\n\t\t\t\"profile_photo\":{\n\t\t\t\t\"height\":1773,\n\t\t\t\t\"width\":1773,\n\t\t\t\t\"source\":\"--\",\n\t\t\t\t\"images\":[\n\t\t\t\t\t{\n\t\t\t\t\t\t\"height\":1773,\n\t\t\t\t\t\t\"width\":1773,\n\t\t\t\t\t\t\"source\":\"--\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"created_time\":0,\n\t\t\t\t\"base_url\":\"--\"\n\t\t\t},\n\t\t\t\"placemark\":{\n\t\t\t\t\"city_name\":\"--\",\n\t\t\t\t\"timezone_name\":\"+09:00\",\n\t\t\t\t\"timezone_offset\":32400000\n\t\t\t},\n\t\t\t\"birthdate\":\"--\",\n\t\t\t\"birthdate_anniversary_id\":\"--\",\n\t\t\t\"holiday_countries\":[\n\t\t\t\t\"KR\"\n\t\t\t],\n\t\t\t\"relationship_id\":\"--\",\n\t\t\t\"account_id\":\"--\",\n\t\t\t\"relationship_state\":\"ACTIVE\",\n\t\t\t\"account_state\":\"ACTIVE_RELATIONSHIP\",\n\t\t\t\"email_confirmed\":true\n\t\t},\n\t\t{\n\t\t\t\"id\":\"--\",\n\t\t\t\"gender\":\"FEMALE\",\n\t\t\t\"locale\":\"ko-KR\",\n\t\t\t\"timezone\":32400000,\n\t\t\t\"email\":\"--@gmail.com\",\n\t\t\t\"nickname\":\"은진\",\n\t\t\t\"profile_photo\":{\n\t\t\t\t\"height\":300,\n\t\t\t\t\"width\":300,\n\t\t\t\t\"source\":\"https://d1g6iinm2hj5oi.cloudfront.net/profile/v3/bg_profile_placeholder_300.png\",\n\t\t\t\t\"images\":[\n\t\t\t\t\t{\n\t\t\t\t\t\t\"height\":150,\n\t\t\t\t\t\t\"width\":150,\n\t\t\t\t\t\t\"source\":\"https://d1g6iinm2hj5oi.cloudfront.net/profile/v3/bg_profile_placeholder_150.png\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t\"height\":300,\n\t\t\t\t\t\t\"width\":300,\n\t\t\t\t\t\t\"source\":\"https://d1g6iinm2hj5oi.cloudfront.net/profile/v3/bg_profile_placeholder_300.png\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\t\"created_time\":1707604736534,\n\t\t\t\t\"is_default\":true\n\t\t\t},\n\t\t\t\"placemark\":{\n\t\t\t\t\"city_name\":\"서울특별시\",\n\t\t\t\t\"timezone_name\":\"+09:00\",\n\t\t\t\t\"timezone_offset\":32400000\n\t\t\t},\n\t\t\t\"birthdate\":\"1998-05-09\",\n\t\t\t\"birthdate_anniversary_id\":\"--\",\n\t\t\t\"holiday_countries\":[\n\t\t\t\t\"KR\"\n\t\t\t],\n\t\t\t\"relationship_id\":\"--\",\n\t\t\t\"account_id\":\"--\",\n\t\t\t\"relationship_state\":\"ACTIVE\",\n\t\t\t\"account_state\":\"ACTIVE_RELATIONSHIP\",\n\t\t\t\"email_confirmed\":false\n\t\t}\n\t],\n\t\"memory_count\":2,\n\t\"account\":{\n\t\t\"id\":\"--\",\n\t\t\"email\":\"--@gmail.com\",\n\t\t\"active_user_id\":\"--\",\n\t\t\"active_relationship_id\":\"--\",\n\t\t\"locale\":\"ko-KR\",\n\t\t\"timezone\":32400000,\n\t\t\"mcc\":450,\n\t\t\"country_code\":\"KR\",\n\t\t\"account_state\":\"ACTIVE_RELATIONSHIP\",\n\t\t\"email_confirmed\":false,\n\t\t\"email_validation_status\":\"VALID\",\n\t\t\"pin_enabled\":true\n\t},\n\t\"weathers\":{\n\t\t\"--\":{\n\t\t\t\"state\":\"FILLED\",\n\t\t\t\"weather_state\":\"CLOUDS\",\n\t\t\t\"celsius\":9.0,\n\t\t\t\"fahrenheit\":49.0,\n\t\t\t\"forecasts\":[\n\t\t\t\t{\n\t\t\t\t\t\"date\":\"2024-02-19\",\n\t\t\t\t\t\"weather_state\":\"RAIN\",\n\t\t\t\t\t\"max\":{\n\t\t\t\t\t\t\"c\":10.0,\n\t\t\t\t\t\t\"f\":50.0\n\t\t\t\t\t},\n\t\t\t\t\t\"min\":{\n\t\t\t\t\t\t\"c\":3.0,\n\t\t\t\t\t\t\"f\":38.0\n\t\t\t\t\t},\n\t\t\t\t\t\"hourly\":[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"hour\":12,\n\t\t\t\t\t\t\t\"temperature\":{\n\t\t\t\t\t\t\t\t\"c\":9.0,\n\t\t\t\t\t\t\t\t\"f\":49.0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"weather_state\":\"CLOUDS\",\n\t\t\t\t\t\t\t\"is_day\":false,\n\t\t\t\t\t\t\t\"time\":1708311600000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"hour\":13,\n\t\t\t\t\t\t\t\"temperature\":{\n\t\t\t\t\t\t\t\t\"c\":10.0,\n\t\t\t\t\t\t\t\t\"f\":50.0\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"weather_state\":\"CLOUDS\",\n\t\t\t\t\t\t\t\"is_day\":false,\n\t\t\t\t\t\t\t\"time\":1708315200000\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"hour\":14,\n\t\t\t\t\t\t\t\"temperature\":{\n\t\t\t\t\t\t\t\t\"hour\":23,\n\t\t\t\t\t\t\t\t\"temperature\":{\n\t\t\t\t\t\t\t\t\t\"c\":-3.0,\n\t\t\t\t\t\t\t\t\t\"f\":26.0\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"weather_state\":\"CLEAR\",\n\t\t\t\t\t\t\t\t\"is_day\":false,\n\t\t\t\t\t\t\t\t\"time\":1709301600000\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\t\"title_anniversary\":{\n\t\t\t\"id\":\"--\",\n\t\t\t\"date\":\"--\",\n\t\t\t\"method\":\"CM_DAY_ONE\",\n\t\t\t\"description\":\"처음 만난 날\",\n\t\t\t\"as_title\":true,\n\t\t\t\"from\":\"--\",\n\t\t\t\"type\":\"DAY_WE_FIRST_MET\",\n\t\t\t\"recurrent\":false\n\t\t},\n\t\t\"account_preference\":{\n\t\t\t\"email_settings\":{\n\t\t\t\t\"disallow_promotion_email\":false\n\t\t\t},\n\t\t\t\"enable_login_notification\":true,\n\t\t\t\"enable_notification_ads\":false,\n\t\t\t\"enable_notification_ads_updated_at\":1708309526256,\n\t\t\t\"agree_personalized_marketing\":false\n\t\t},\n\t\t\"user_preference\":{\n\t\t\t\"push_settings\":{\n\t\t\t\t\"preview_message\":true\n\t\t\t},\n\t\t\t\"ad_settings\":{\n\t\t\t\t\"disable_notification_ads\":false\n\t\t\t},\n\t\t\t\"disable_notification_ads\":false,\n\t\t\t\"disable_inhouse_ads\":false,\n\t\t\t\"sticker_set_order\":[\n\t\t\t\t\"200\",\n\t\t\t\t\"424\",\n\t\t\t\t\"425\",\n\t\t\t\t\"426\",\n\t\t\t\t\"427\",\n\t\t\t\t\"202\"\n\t\t\t]\n\t\t},\n\t\t\"covers\":{\n\t\t\t\n\t\t},\n\t\t\"profile_photo_decoration\":{\n\t\t\t\"decoration_id\":\"DEFAULT\",\n\t\t\t\"use_special_day\":false\n\t\t}\n\t}\n```\n* `--` is the one censored.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv1r4m%2Fbetween-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fv1r4m%2Fbetween-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fv1r4m%2Fbetween-api/lists"}