{"files":{"SKILL.md":"---\nname: clubhouse-api\ndescription: \"Clubhouse API skill. Use when working with Clubhouse for start_phone_number_auth, call_phone_number_auth, resend_phone_number_auth. Covers 41 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Clubhouse API\nAPI version: 1\n\n## Auth\nNo authentication required.\n\n## Base URL\nhttps://www.clubhouseapi.com/api/\n\n## Setup\n1. No auth setup needed\n2. GET /get_all_topics -- verify access\n3. POST /start_phone_number_auth -- create first start_phone_number_auth\n\n## Endpoints\n\n41 endpoints across 41 groups. See references/api-spec.lap for full details.\n\n### start_phone_number_auth\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /start_phone_number_auth | Starts phone number auth. |\n\n### call_phone_number_auth\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /call_phone_number_auth | Call phone number auth. |\n\n### resend_phone_number_auth\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /resend_phone_number_auth | Resend phone number auth. |\n\n### complete_phone_number_auth\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /complete_phone_number_auth | Call phone number auth. |\n\n### check_waitlist_status\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /check_waitlist_status | checks waitlist status. |\n\n### me\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /me | gets user |\n\n### get_release_notes\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_release_notes | gets release notes. |\n\n### get_all_topics\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_all_topics | gets all topics. |\n\n### get_topic\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_topic | looks up topic by ID. |\n\n### get_clubs_for_topic\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_clubs_for_topic | looks up clubs by topic. |\n\n### get_profile\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_profile | looks up user profile by ID. |\n\n### get_users_for_topic\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_users_for_topic | looks up users by topic. |\n\n### get_channels\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_channels | get all channels |\n\n### join_channel\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /join_channel | join a channel. |\n\n### leave_channel\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /leave_channel | leave a channel. |\n\n### update_username\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /update_username | edits username. |\n\n### follow\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /follow | follows a user |\n\n### refresh_token\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /refresh_token | gets an access_token from a refresh_token. |\n\n### get_suggested_invites\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_suggested_invites | find users to invite based on phone number. |\n\n### get_suggested_club_invites\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_suggested_club_invites | find users to invite to clubs based on phone number |\n\n### get_club\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_club | gets club by id |\n\n### check_for_update\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /check_for_update | Clubhouse uses this to check for updates when app is not installed from App Store (eg TestFlight) |\n\n### invite_to_app\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /invite_to_app | invite a user to the app, using one of your invites |\n\n### invite_from_waitlist\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /invite_from_waitlist | wave to another user on the waitlist to give them access |\n\n### get_following\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_following | get a list of the users and clubs that this user is following. Returned users have bios truncated to ~80 characters. |\n\n### get_suggested_follows_friends_only\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_suggested_follows_friends_only | find people to follow by uploading contacts during signup |\n\n### get_suggested_follows_all\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_suggested_follows_all | gets suggested follows during signup |\n\n### update_notifications\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /update_notifications | updates notification during signup. |\n\n### get_online_friends\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_online_friends | gets online friends on the app homepage. |\n\n### get_events\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_events | the Upcoming for You page |\n\n### get_settings\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_settings | get notification settings |\n\n### get_welcome_channel\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_welcome_channel | called during signup |\n\n### record_action_trails\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /record_action_trails | analytics |\n\n### get_notifications\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_notifications | get notifications (the bell icon) |\n\n### get_actionable_notifications\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /get_actionable_notifications | get actionable notifications (the bell again) |\n\n### get_create_channel_targets\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_create_channel_targets | is fetched when you tap Create Room |\n\n### create_channel\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /create_channel | creates a channel |\n\n### get_suggested_speakers\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_suggested_speakers | gets suggested users when you start a private room |\n\n### search_users\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /search_users | search for users |\n\n### get_suggested_follows_similar\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /get_suggested_follows_similar | find similar users. (The Sparkles button on Clubhouse's profile page) |\n\n### search_clubs\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /search_clubs | search clubs. |\n\n## Common Questions\n\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a start_phone_number_auth?\" -> POST /start_phone_number_auth\n- \"Create a call_phone_number_auth?\" -> POST /call_phone_number_auth\n- \"Create a resend_phone_number_auth?\" -> POST /resend_phone_number_auth\n- \"Create a complete_phone_number_auth?\" -> POST /complete_phone_number_auth\n- \"Create a check_waitlist_status?\" -> POST /check_waitlist_status\n- \"Create a me?\" -> POST /me\n- \"Create a get_release_note?\" -> POST /get_release_notes\n- \"List all get_all_topics?\" -> GET /get_all_topics\n- \"Create a get_topic?\" -> POST /get_topic\n- \"Create a get_clubs_for_topic?\" -> POST /get_clubs_for_topic\n- \"Create a get_profile?\" -> POST /get_profile\n- \"List all get_users_for_topic?\" -> GET /get_users_for_topic\n- \"List all get_channels?\" -> GET /get_channels\n- \"Create a join_channel?\" -> POST /join_channel\n- \"Create a leave_channel?\" -> POST /leave_channel\n- \"Create a update_username?\" -> POST /update_username\n- \"Create a follow?\" -> POST /follow\n- \"Create a refresh_token?\" -> POST /refresh_token\n- \"Create a get_suggested_invite?\" -> POST /get_suggested_invites\n- \"Create a get_suggested_club_invite?\" -> POST /get_suggested_club_invites\n- \"Create a get_club?\" -> POST /get_club\n- \"List all check_for_update?\" -> GET /check_for_update\n- \"Create a invite_to_app?\" -> POST /invite_to_app\n- \"Create a invite_from_waitlist?\" -> POST /invite_from_waitlist\n- \"Create a get_following?\" -> POST /get_following\n- \"Create a get_suggested_follows_friends_only?\" -> POST /get_suggested_follows_friends_only\n- \"List all get_suggested_follows_all?\" -> GET /get_suggested_follows_all\n- \"Create a update_notification?\" -> POST /update_notifications\n- \"Create a get_online_friend?\" -> POST /get_online_friends\n- \"List all get_events?\" -> GET /get_events\n- \"List all get_settings?\" -> GET /get_settings\n- \"List all get_welcome_channel?\" -> GET /get_welcome_channel\n- \"Create a record_action_trail?\" -> POST /record_action_trails\n- \"List all get_notifications?\" -> GET /get_notifications\n- \"List all get_actionable_notifications?\" -> GET /get_actionable_notifications\n- \"Create a get_create_channel_target?\" -> POST /get_create_channel_targets\n- \"Create a create_channel?\" -> POST /create_channel\n- \"Create a get_suggested_speaker?\" -> POST /get_suggested_speakers\n- \"Create a search_user?\" -> POST /search_users\n- \"Create a get_suggested_follows_similar?\" -> POST /get_suggested_follows_similar\n- \"Create a search_club?\" -> POST /search_clubs\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- List endpoints may support pagination; check for limit, offset, or cursor params\n- Create/update endpoints typically return the created/updated object\n\n## CLI\n\n```bash\n# Update this spec to the latest version\nnpx @lap-platform/lapsh get clubhouse-api -o references/api-spec.lap\n\n# Search for related APIs\nnpx @lap-platform/lapsh search clubhouse-api\n```\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Clubhouse API\n@base https://www.clubhouseapi.com/api/\n@version 1\n@endpoints 41\n@hint download_for_search\n@toc start_phone_number_auth(1), call_phone_number_auth(1), resend_phone_number_auth(1), complete_phone_number_auth(1), check_waitlist_status(1), me(1), get_release_notes(1), get_all_topics(1), get_topic(1), get_clubs_for_topic(1), get_profile(1), get_users_for_topic(1), get_channels(1), join_channel(1), leave_channel(1), update_username(1), follow(1), refresh_token(1), get_suggested_invites(1), get_suggested_club_invites(1), get_club(1), check_for_update(1), invite_to_app(1), invite_from_waitlist(1), get_following(1), get_suggested_follows_friends_only(1), get_suggested_follows_all(1), update_notifications(1), get_online_friends(1), get_events(1), get_settings(1), get_welcome_channel(1), record_action_trails(1), get_notifications(1), get_actionable_notifications(1), get_create_channel_targets(1), create_channel(1), get_suggested_speakers(1), search_users(1), get_suggested_follows_similar(1), search_clubs(1)\n\n@group start_phone_number_auth\n@endpoint POST /start_phone_number_auth\n@desc Starts phone number auth.\n@returns(200) success\n@example_request {\"phone_number\":\"+11234567890\"}\n\n@endgroup\n\n@group call_phone_number_auth\n@endpoint POST /call_phone_number_auth\n@desc Call phone number auth.\n@returns(200) success\n\n@endgroup\n\n@group resend_phone_number_auth\n@endpoint POST /resend_phone_number_auth\n@desc Resend phone number auth.\n@returns(200) success\n\n@endgroup\n\n@group complete_phone_number_auth\n@endpoint POST /complete_phone_number_auth\n@desc Call phone number auth.\n@returns(200) success\n@example_request {\"verification_code\":\"1234\",\"phone_number\":\"+1234567890\"}\n\n@endgroup\n\n@group check_waitlist_status\n@endpoint POST /check_waitlist_status\n@desc checks waitlist status.\n@returns(200) got waitlist status\n@errors {401: authorization not provided}\n\n@endgroup\n\n@group me\n@endpoint POST /me\n@desc gets user\n@returns(200) the response\n@errors {403: error response - happens if account is banned (is_blocked)}\n@example_request {\"return_blocked_ids\":true,\"timezone_identifier\":\"America/Los_Angeles\",\"return_following_ids\":true}\n\n@endgroup\n\n@group get_release_notes\n@endpoint POST /get_release_notes\n@desc gets release notes.\n@returns(200) the response\n\n@endgroup\n\n@group get_all_topics\n@endpoint GET /get_all_topics\n@desc gets all topics.\n@returns(200) a list of topics\n\n@endgroup\n\n@group get_topic\n@endpoint POST /get_topic\n@desc looks up topic by ID.\n@returns(200) returns topic info\n@example_request {\"topic_id\":140}\n\n@endgroup\n\n@group get_clubs_for_topic\n@endpoint POST /get_clubs_for_topic\n@desc looks up clubs by topic.\n@returns(200) returns list of clubs with pagination\n@example_request {\"topic_id\":140}\n\n@endgroup\n\n@group get_profile\n@endpoint POST /get_profile\n@desc looks up user profile by ID.\n@returns(200) returns user profile info\n@example_request {\"user_id\":4075733}\n\n@endgroup\n\n@group get_users_for_topic\n@endpoint GET /get_users_for_topic\n@desc looks up users by topic.\n@optional {topic_id: int, page_size: int, page: int}\n@returns(200) returns list of users with pagination. Bios truncated to 80 chars.\n\n@endgroup\n\n@group get_channels\n@endpoint GET /get_channels\n@desc get all channels\n@returns(200) list of channels\n\n@endgroup\n\n@group join_channel\n@endpoint POST /join_channel\n@desc join a channel.\n@returns(200) stuff needed to actually join a channel\n@errors {400: cannot join}\n@example_request {\"channel\":\"abcdefgh\",\"attribution_source\":\"feed\",\"attribution_details\":\"eyJpc19leHBsb3JlIjpmYWxzZSwicmFuayI6MX0=\"}\n\n@endgroup\n\n@group leave_channel\n@endpoint POST /leave_channel\n@desc leave a channel.\n@returns(200) left the channel\n@example_request {\"channel\":\"abcdefgh\"}\n\n@endgroup\n\n@group update_username\n@endpoint POST /update_username\n@desc edits username.\n@returns(200) username successfully set\n@errors {400: invalid/taken username (eg empty string)}\n@example_request {\"username\":\"hipsterhouse\"}\n\n@endgroup\n\n@group follow\n@endpoint POST /follow\n@desc follows a user\n@errors {401: waitlisted}\n@example_request {\"user_id\":1234}\n\n@endgroup\n\n@group refresh_token\n@endpoint POST /refresh_token\n@desc gets an access_token from a refresh_token.\n@returns(200) returns new access and refresh token\n@errors {401: invalid refresh token}\n@example_request {\"refresh\":\"<refresh_token>\"}\n\n@endgroup\n\n@group get_suggested_invites\n@endpoint POST /get_suggested_invites\n@desc find users to invite based on phone number.\n@returns(200) returns list of users that can be invited.\n@example_request {\"club_id\":null,\"upload_contacts\":false,\"contacts\":[{\"phone_number\":\"+11234567890\"}]}\n\n@endgroup\n\n@group get_suggested_club_invites\n@endpoint POST /get_suggested_club_invites\n@desc find users to invite to clubs based on phone number\n@returns(200) returns list of suggested invites.\n@example_request {\"upload_contacts\":true,\"contacts\":[{\"name\":\"aaa\",\"phone_number\":\"+11234567890\"}]}\n\n@endgroup\n\n@group get_club\n@endpoint POST /get_club\n@desc gets club by id\n@returns(200) returns club object\n@example_request {\"club_id\":1234}\n\n@endgroup\n\n@group check_for_update\n@endpoint GET /check_for_update\n@desc Clubhouse uses this to check for updates when app is not installed from App Store (eg TestFlight)\n@optional {is_testflight: int}\n@returns(200) successful response\n\n@endgroup\n\n@group invite_to_app\n@endpoint POST /invite_to_app\n@desc invite a user to the app, using one of your invites\n@errors {400: your own account doesn't have an invite either}\n@example_request {\"name\":\"John Smith\",\"message\":null,\"phone_number\":\"+11234567890\"}\n\n@endgroup\n\n@group invite_from_waitlist\n@endpoint POST /invite_from_waitlist\n@desc wave to another user on the waitlist to give them access\n@errors {400: your own account is waitlisted, or some other error occurred}\n@example_request {\"user_id\":1234}\n\n@endgroup\n\n@group get_following\n@endpoint POST /get_following\n@desc get a list of the users and clubs that this user is following. Returned users have bios truncated to ~80 characters.\n@returns(200) returns list of users and clubs\n@example_request {\"user_id\":1234}\n\n@endgroup\n\n@group get_suggested_follows_friends_only\n@endpoint POST /get_suggested_follows_friends_only\n@desc find people to follow by uploading contacts during signup\n@returns(200) returns list of users and clubs\n@example_request {\"club_id\":null,\"upload_contacts\":true,\"contacts\":[]}\n\n@endgroup\n\n@group get_suggested_follows_all\n@endpoint GET /get_suggested_follows_all\n@desc gets suggested follows during signup\n@optional {in_onboarding: bool, page_size: int, page: int}\n@returns(200) a list of users to follow. bios truncated to 80 chars.\n\n@endgroup\n\n@group update_notifications\n@endpoint POST /update_notifications\n@desc updates notification during signup.\n@errors {400: waitlisted}\n@example_request {\"enable_trending\":-1,\"pause_till\":-1,\"is_sandbox\":false,\"apn_token\":null,\"system_enabled\":2,\"frequency\":-1}\n\n@endgroup\n\n@group get_online_friends\n@endpoint POST /get_online_friends\n@desc gets online friends on the app homepage.\n@returns(200) a list of online clubs and users.\n\n@endgroup\n\n@group get_events\n@endpoint GET /get_events\n@desc the Upcoming for You page\n@optional {is_filtered: bool, page_size: int, page: int}\n@returns(200) a list of events\n\n@endgroup\n\n@group get_settings\n@endpoint GET /get_settings\n@desc get notification settings\n@returns(200) notification settings\n\n@endgroup\n\n@group get_welcome_channel\n@endpoint GET /get_welcome_channel\n@desc called during signup\n@returns(200) empty???\n\n@endgroup\n\n@group record_action_trails\n@endpoint POST /record_action_trails\n@desc analytics\n@returns(200) always empty\n@example_request {\"action_trails\":[{\"blob_data\":{},\"trail_type\":\"app_opened\",\"client_time_created\":1612971962}]}\n\n@endgroup\n\n@group get_notifications\n@endpoint GET /get_notifications\n@desc get notifications (the bell icon)\n@optional {page_size: int, page: int}\n@returns(200) Returns a list of notifications.\n\n@endgroup\n\n@group get_actionable_notifications\n@endpoint GET /get_actionable_notifications\n@desc get actionable notifications (the bell again)\n@returns(200) Returns a list of actionable notifications.\n\n@endgroup\n\n@group get_create_channel_targets\n@endpoint POST /get_create_channel_targets\n@desc is fetched when you tap Create Room\n@errors {400: waitlisted}\n\n@endgroup\n\n@group create_channel\n@endpoint POST /create_channel\n@desc creates a channel\n@errors {400: waitlisted}\n@example_request {\"is_social_mode\":false,\"club_id\":null,\"user_ids\":[],\"is_private\":false,\"event_id\":null,\"topic\":null}\n\n@endgroup\n\n@group get_suggested_speakers\n@endpoint POST /get_suggested_speakers\n@desc gets suggested users when you start a private room\n@returns(200) Returns a list of actionable notifications.\n@example_request {\"channel\":null}\n\n@endgroup\n\n@group search_users\n@endpoint POST /search_users\n@desc search for users\n@returns(200) Returns a list of users.\n@example_request {\"cofollows_only\":false,\"following_only\":false,\"followers_only\":false,\"query\":\"johnsmith\"}\n\n@endgroup\n\n@group get_suggested_follows_similar\n@endpoint POST /get_suggested_follows_similar\n@desc find similar users. (The Sparkles button on Clubhouse's profile page)\n@returns(200) Returns a list of users. Bios truncated to 80 chars.\n@example_request {\"user_id\":4}\n\n@endgroup\n\n@group search_clubs\n@endpoint POST /search_clubs\n@desc search clubs.\n@returns(200) Returns a list of clubs.\n@example_request {\"cofollows_only\":false,\"following_only\":false,\"followers_only\":false,\"query\":\"rohan\"}\n\n@endgroup\n\n@end\n"}}