You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following endpoints have been found used within the GroupMe Web Client. These are essentially the only endpoints left to document in order to have nearly full coverage of the API as it stands right now.
I'll be working on trying to get these documented as I have time, but anyone who's curious or wants to take a look is free to do so.
On a side note, this is a super awesome place to start if you're looking to start documenting with us! If you're interested, open up your web browser's developer console, go to the network tab, dig in, and submit a pull request. It's not scary and we're happy to propose edits and review along the way.
As it stands, priority should probably be given to maintaining already documented endpoints and ensuring they're still consistent, as GroupMe will often update the API with new features without telling anyone. However, ANY documentation helps.
I. New Endpoints/Functionality Not Currently Documented (or only partially):
This is not an exhaustive list, as there are definitely more. However, these are the endpoints we know exist but haven't gotten around to documenting yet.
User Purchases (PowerUps/Emoji related):
List user's acquired PowerUps: GET https://powerup.groupme.com/purchases?scope=user-:user_id
Pinned Conversations (Global List & Setting):
Get list of pinned conversation IDs: GET https://api.groupme.com/v4/pinned_conversations
Set/update the list of pinned conversation IDs: POST https://api.groupme.com/v4/pinned_conversations
Access Token Management:
List active tokens: GET https://v2.groupme.com/access_tokens
Destroy specific token: POST https://v2.groupme.com/access_tokens/:token_id/destroy
Destroy current session token: POST https://v2.groupme.com/access_tokens/current/destroy
Login with username/password: POST https://v2.groupme.com/access_tokens
Initiate phone channel setup/confirm after verification: POST https://api.groupme.com/v3/user/mfa/channel
Send SMS/call PIN: POST https://api.groupme.com/v3/verifications/:verification_code/initiate
Confirm PIN: POST https://api.groupme.com/v3/verifications/:verification_code/confirm
Enable/Disable MFA, returns backup code on enable: POST https://api.groupme.com/v3/user/mfa
Web Pings (Presence/Activity/notif suppression):
This is used to disable notifications to your phone while you have the web client open
Register web client activity: POST https://api.groupme.com/v3/web_pings
Get current web ping status: GET https://api.groupme.com/v3/web_pings
End web client activity session: POST https://api.groupme.com/v3/web_pings/destroy
Client Installation Registration:
This is used by official clients, more work is needed to know exactly what it's used for
Register client platform/version: POST https://api.groupme.com/v3/installations
Membership States (Global):
This is a super cut down list of all of the groups you're in or left/were removed
Lists user's membership state across various groups: GET https://api.groupme.com/v3/memberships/states
Topic management:
Create, requires topic, group_type: POST https://api.groupme.com/v3/groups/:parent_group_id/subgroups
Update topic, description, like_icon, group_type: PUT https://api.groupme.com/v3/groups/:parent_group_id/subgroups/:subgroup_id
Delete a topic: DELETE https://api.groupme.com/v3/groups/:group_id/subgroups/:subgroup_id
Mute notifications: POST https://api.groupme.com/v3/groups/:group_id/subgroups/:subgroup_id/mute
Unmute notifications: POST https://api.groupme.com/v3/groups/:group_id/subgroups/:subgroup_id/unmute
Group Management:
Mute notifications for a group: POST https://v2.groupme.com/groups/:group_id/memberships/mute
Unmute notifications for a group: POST https://v2.groupme.com/groups/:group_id/memberships/unmute
Mute all channels, including topics: POST https://api.groupme.com/v3/groups/:group_id/memberships/mute_all
Unmute all channels, including topics: POST https://api.groupme.com/v3/groups/:group_id/memberships/unmute_all
List group locations: GET https://api.groupme.com/v3/groups/:group_id/locations
Add a group location, requires signature from location search: POST https://api.groupme.com/v3/groups/:group_id/locations
Remove a group location: DELETE https://api.groupme.com/v3/groups/:group_id/locations/:location_id
Search geographical locations: GET https://api.groupme.com/v1/location/locations?query=<search_term>
Clear group message history: POST https://v2.groupme.com/groups/:group_id/clear_history
Call Management (v1 & v2, for ACS/Teams Live calls):
Calling is super undocumented right now. We're not sure if automating them is possible, but here are some calls we have found.
Start/Join Call: GET https://api.groupme.com/v2/conversations/:group_id/call
Keep call active: PUT https://api.groupme.com/v1/conversations/:group_id/call/heartbeat
Leave/End Call: POST https://api.groupme.com/v1/conversations/:group_id/call/disconnect
Lookup ACS user ID: GET https://api.groupme.com/v1/identity/lookup?user_id=<user_id>
URL Preview (v1, for rich content in chat):
GET https://api.groupme.com/v1/urls/preview?url=<encoded_url>
Image Service QR Code Preview:
Get raw data for QR code image: GET https://image.groupme.com/qr/join_group/:group_id/:share_token/preview?format=json
II. Updates/Inaccuracies in Existing Documentation
The current docs are pretty accurate, but as new features come out, many of the responses have gone out of date. Here's the ones we know for sure.
self.md
"About" (GET /users/me)
Inaccurate/Incomplete Response: The current API shows a much richer response including MFA status, profile sharing URLs, campus profile details (majors, graduation year, visibility), photo gallery URLs, theme song, and interests. The documentation example needs to be significantly expanded.
groups.md
"Index" (GET /groups)
Incomplete Response Fields: Currently, group objects include many more fields: muted_until, like_icon (object), approval/join question details, deletion/edit modes, children_count, visibility, bot_settings, etc. Member objects within this also include roles.
"Create" (POST /groups)
Missing Request Parameters: API includes parameters like isClosed and type which are currently undocumented.
Incomplete Response Fields: Created group object is more detailed than the documentation currently suggests.
"Update" (POST /groups/:id/update)
Missing Request Parameters: Current API demonstrates updating many more fields: theme_name, like_icon, requires_approval, show_join_question, join_question, visibility (searchable, hidden, community), group_type (closed, private, announcement), and message_deletion_mode.
"Show" (GET /groups/:id)
Incomplete Response Fields:bot_settings along with other interesting parameters related to Copilot and group management are present in the API.
"Rejoin"
The documented POST /groups/join with group_id in the body differs from the web client's POST https://v2.groupme.com/groups/:id/memberships/activate for rejoining/activating. Both might be valid for different scenarios or be old/new versions.
dms.md
"List Existing DM Channels" (GET /chats)
Incomplete Response Fields: API chat objects currently include: message_deletion_period, message_deletion_mode, requires_approval, unread_count, last_read_message_id, last_read_at, message_edit_period. last_message object also has pinned_at and pinned_by.
"Index Messages" (GET /direct_messages)
Missing Parameter:acceptFiles=1 is used in official clients but untouched in the docs.
Missing Parameter:acceptFiles=1 is used in official clients but untouched in the docs.
users.md - "Index Blocks" vs "Block Between?"
Official clients show a GET /v3/blocks?user=...&otherUser=... that directly returns the block object if it exists, which is a different behavior/endpoint variant than the two currently documented.
Contribution Checklist
The following endpoints have been found used within the GroupMe Web Client. These are essentially the only endpoints left to document in order to have nearly full coverage of the API as it stands right now.
I'll be working on trying to get these documented as I have time, but anyone who's curious or wants to take a look is free to do so.
On a side note, this is a super awesome place to start if you're looking to start documenting with us! If you're interested, open up your web browser's developer console, go to the network tab, dig in, and submit a pull request. It's not scary and we're happy to propose edits and review along the way.
As it stands, priority should probably be given to maintaining already documented endpoints and ensuring they're still consistent, as GroupMe will often update the API with new features without telling anyone. However, ANY documentation helps.
I. New Endpoints/Functionality Not Currently Documented (or only partially):
This is not an exhaustive list, as there are definitely more. However, these are the endpoints we know exist but haven't gotten around to documenting yet.
User Purchases (PowerUps/Emoji related):
GET https://powerup.groupme.com/purchases?scope=user-:user_idPinned Conversations (Global List & Setting):
GET https://api.groupme.com/v4/pinned_conversationsPOST https://api.groupme.com/v4/pinned_conversationsAccess Token Management:
GET https://v2.groupme.com/access_tokensPOST https://v2.groupme.com/access_tokens/:token_id/destroyPOST https://v2.groupme.com/access_tokens/current/destroyPOST https://v2.groupme.com/access_tokensMulti-Factor Authentication (MFA) Management (entire flow):
POST https://api.groupme.com/v3/user/mfa/channelPOST https://api.groupme.com/v3/verifications/:verification_code/initiatePOST https://api.groupme.com/v3/verifications/:verification_code/confirmPOST https://api.groupme.com/v3/user/mfaWeb Pings (Presence/Activity/notif suppression):
This is used to disable notifications to your phone while you have the web client open
Register web client activity:
POST https://api.groupme.com/v3/web_pingsGet current web ping status:
GET https://api.groupme.com/v3/web_pingsEnd web client activity session:
POST https://api.groupme.com/v3/web_pings/destroyClient Installation Registration:
This is used by official clients, more work is needed to know exactly what it's used for
Register client platform/version:
POST https://api.groupme.com/v3/installationsMembership States (Global):
This is a super cut down list of all of the groups you're in or left/were removed
Lists user's membership state across various groups:
GET https://api.groupme.com/v3/memberships/statesTopic management:
topic,group_type:POST https://api.groupme.com/v3/groups/:parent_group_id/subgroupstopic,description,like_icon,group_type:PUT https://api.groupme.com/v3/groups/:parent_group_id/subgroups/:subgroup_idDELETE https://api.groupme.com/v3/groups/:group_id/subgroups/:subgroup_idPOST https://api.groupme.com/v3/groups/:group_id/subgroups/:subgroup_id/mutePOST https://api.groupme.com/v3/groups/:group_id/subgroups/:subgroup_id/unmuteGroup Management:
POST https://v2.groupme.com/groups/:group_id/memberships/mutePOST https://v2.groupme.com/groups/:group_id/memberships/unmutePOST https://api.groupme.com/v3/groups/:group_id/memberships/mute_allPOST https://api.groupme.com/v3/groups/:group_id/memberships/unmute_allGET https://api.groupme.com/v3/groups/:group_id/locationsPOST https://api.groupme.com/v3/groups/:group_id/locationsDELETE https://api.groupme.com/v3/groups/:group_id/locations/:location_idGET https://api.groupme.com/v1/location/locations?query=<search_term>POST https://v2.groupme.com/groups/:group_id/clear_historyCall Management (v1 & v2, for ACS/Teams Live calls):
Calling is super undocumented right now. We're not sure if automating them is possible, but here are some calls we have found.
Start/Join Call:
GET https://api.groupme.com/v2/conversations/:group_id/callKeep call active:
PUT https://api.groupme.com/v1/conversations/:group_id/call/heartbeatLeave/End Call:
POST https://api.groupme.com/v1/conversations/:group_id/call/disconnectLookup ACS user ID:
GET https://api.groupme.com/v1/identity/lookup?user_id=<user_id>URL Preview (v1, for rich content in chat):
GET https://api.groupme.com/v1/urls/preview?url=<encoded_url>Image Service QR Code Preview:
GET https://image.groupme.com/qr/join_group/:group_id/:share_token/preview?format=jsonII. Updates/Inaccuracies in Existing Documentation
The current docs are pretty accurate, but as new features come out, many of the responses have gone out of date. Here's the ones we know for sure.
self.md"About" (
GET /users/me)groups.md"Index" (
GET /groups)muted_until,like_icon(object), approval/join question details, deletion/edit modes,children_count,visibility,bot_settings, etc. Member objects within this also includeroles."Create" (
POST /groups)isClosedandtypewhich are currently undocumented."Update" (
POST /groups/:id/update)theme_name,like_icon,requires_approval,show_join_question,join_question,visibility(searchable,hidden,community),group_type(closed,private,announcement), andmessage_deletion_mode."Show" (
GET /groups/:id)bot_settingsalong with other interesting parameters related to Copilot and group management are present in the API."Rejoin"
POST /groups/joinwithgroup_idin the body differs from the web client'sPOST https://v2.groupme.com/groups/:id/memberships/activatefor rejoining/activating. Both might be valid for different scenarios or be old/new versions.dms.md"List Existing DM Channels" (
GET /chats)message_deletion_period,message_deletion_mode,requires_approval,unread_count,last_read_message_id,last_read_at,message_edit_period.last_messageobject also haspinned_atandpinned_by."Index Messages" (
GET /direct_messages)acceptFiles=1is used in official clients but untouched in the docs.Miscellaneous
messages.md- "Index" (GET /groups/:group_id/messages)acceptFiles=1is used in official clients but untouched in the docs.users.md- "Index Blocks" vs "Block Between?"GET /v3/blocks?user=...&otherUser=...that directly returns the block object if it exists, which is a different behavior/endpoint variant than the two currently documented.