Skip to content
Juan Pablo Kutianski edited this page Jul 9, 2016 · 18 revisions

Meetup

Using the Meetup API

The Meetup API provides a simple interface for accessing the Meetup platform from your own apps. It includes GET methods to query Meetup data, POST methods to create and alter resources, and streaming methods for realtime access to member activity.

API methods description

Character Encodings

The default character encoding for all API methods going forward is UTF-8, while older API methods use ISO-8859-1. To activate UTF-8 response encoding for all methods, applications may supply in their requests an Accept-Charset header for UTF-8.

Self alias

Many of the query methods in the API require a member_id field for filtering. Sometimes you may want that member_id to be the id of the member owning the api key or who authorized an oauth token. To remove the need for an extra query to access that member_id, you may instead use the self alias in place of the member_id you would have to otherwise query for.

The following is an example of querying the getEvents method for your upcoming Meetup events.

meetup.getEvents({'member_id' : 'self'}, function(err,events) {
  console.log(events);
});

Errors

When everything goes well, we'll send a 200 response code along with your data. If there was a problem, you will receive a response with error details formatted in either XML or JSON, depending on which format was requested. Except for JSON callbacks as noted below, error responses will have one of the following HTTP status codes:

401 Unauthorized when you don't provide a valid key 400 Bad request when there was a problem with the request 500 Internal Server Error if we messed up -- please let us know! The 400 BadRequest response is something of a catch-all: sent if you have incorrect or missing parameters, if you exceed your API limits or you request an unsupported format. The response body will have more detail.

JSON requests that specify a callback parameter are treated differently: the API always responds with an HTTP status of 200, so that a client browser will load the response and handle the callback. When an error occurs its corresponding status line is served in a "status" field of the error response object rather than in the response header.

Limits

By default we limit users to 200 requests per hour, and 200 max results for each request. If you exceed this number, the platform will return a 400 error response with limit as the code element in the error response body.

API responses to authenticated requests contain information about your current rate limit status in their HTTP headers, as defined here:

X-RateLimit-Limit The total number of requests you are permitted to make per hour X-RateLimit-Remaining The number of requests you have remaining before the beginning the next rate limiting interval X-RateLimit-Reset The time, in seconds since the unix epoc, when your X-RateLimit-Remaining count will be reset. Note that elsewhere the API uses milliseconds for its timestamps; for this header it conforms to an evolving rate limit standard.

Meetup Everywhere

Meetup Everywhere is built to be simple to use and to share. That means it's not only easier for people everywhere to have Meetups, but it allows us to provide a complete API that is easy for developers, too.

The foundations of this platform are the same as the rest of the API, including response formats and authentication. You can supply an API key, OAuth, or key-signed request for authentication as described in the auth documentation. Much of the interaction, parameter names, response fields, and so on will be familiar to experienced Meetup platform developers, while other parts of the API are a fresh take. Give it a whirl, and as always, don't be shy about voicing your questions and suggestions on the Meetup Developers forum. Meetup was discontinued Meetup Everywhere on December 1, 2014.

Time variables

The time is based on milliseconds since standard epoch of 1/1/1970.

User Defined Fields

To make it easy to develop Meetup Everywhere applications that have little or no local storage, the API supports user defined fields for Containers, Communities, Events, RSVPs and Comments. These field names begin with "udf_" followed by a name you choose, and may be assigned any string value.

User defined fields are assigned and queried just as other fields in the API. Include a parameter beginning with "udf_" in a create or edit POST method to assign it as a field. Field names may be up to 35 characters including the "udf_" prefix. For query methods, specify a UDF parameter with a value to limit the results to those that contain that field with a matching value. The match is case-insensitive and no wildcards are supported.

In result items, these fields are returned only when specified in the fields parameter of the request. Specify "all_udf" to retrieve any fields associated with the entity.

Meetup API bug

On the API events v2 has a bug and return GMT-1 instead of GMT on the time variable. To correct this you need to add 1 hour to the meeting time variable as you can see on the example. This problem is solved!

meetup.getEvents({'group_urlname' : config.meetup.groupname}, function(error,response) {
  if (!error) {
    var d = new Date(response.results[0].time + 3600000);</del>
    console.log(d);
 }

As I can see at this time all the time variable has the same bug.

Todo items