Documentation

We're sorry, but we have to temporarily disable creating new oauth applications while Microsoft Legal updates our API terms of service.

Questions? We'd love to hear them. Join this group for quick support on your GroupMe API project: https://groupme.com/join_group/4011747/T3HvVO

Reference

API Reference

Documentation for our public API.

Image Service

Image service for storing and thumbnailing images for messages.

Authentication

To obtain an access token, you must authenticate via OAuth 2.0 implicit authentication.

The official specs may seem intimidating, but the process is straightforward:


1. You send your user to a URL on our server, passing us your client ID.

https://api.groupme.com/oauth/authorize?client_id=CLIENT_ID
Don't have a client ID? You can get one here: Create Application

2. Your user will be asked to log in and authorize your application.


3. We will redirect them to the callback URL you registered when you set up your client ID.

https://YOUR_CALLBACK_URL/?access_token=ACCESS_TOKEN

Using the Access Token

You must make requests with your access token using the token parameter.

GET https://api.groupme.com/v3/groups?token=ACCESS_TOKEN

Alternatively, you can send your token in the X-Access-Token header.

GET /v3/groups HTTP/1.1
User-Agent: CoolApp/2.0
Host: api.groupme.com
Accept: */*
X-Access-Token: ACCESS_TOKEN

Responses

All responses come in a request envelope:

{
  response: { ... },
  meta: {
    code: 400,
    errors: ["Name is required"]
  }
}
response
The target or resulting object. Sometimes a list with additional meta data.
meta.code
For clients that cannot read HTTP status codes.
meta.errors
If you receive 4XX response codes, you can expect an array of errors.
Note: We omit the envelope for brevity when documenting responses.

Data Types

  • IDs are unordered alphanumeric strings.
  • Timestamps are integer seconds since the UNIX epoch.
  • Phone numbers are sent as +<country code> <number>

Format

All data is sent and received as JSON.

While most requests will work as expected with standard HTTP params, it is especially important to send data as JSON in the request body to ensure consistent hash ordering (e.g. when sending multiple members).

Status Codes

We try to return the most appropriate HTTP status code.

Code Text Description
200 OK Success!
201 Created Resource was created successfully.
204 No Content Resource was deleted successfully.
304 Not Modified There was no new data to return.
400 Bad Request Returned when an invalid format or invalid data is specified in the request.
401 Unauthorized Authentication credentials were missing or incorrect.
403 Forbidden The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits.
404 Not Found The URI requested is invalid or the resource requested, such as a user, does not exists.
420 Enhance Your Calm Returned when you are being rate limited. Chill the heck out.
500 Internal Server Error Something unexpected occurred. GroupMe will be notified.
502 Bad Gateway GroupMe is down or being upgraded.
503 Service Unavailable The GroupMe servers are up, but overloaded with requests. Try again later.