PK BHv= meetup/documentation.pyimport json import six from meetup.api import API_SERVICE_FILES from meetup.util import multikeysort OMIT_SERVICE = ['CreateBatch', 'Widget', 'WidgetQuery'] def api_calls_to_rst(service_dict): common_parameters = { 'omit': 'Retrieve all default fields excluding those specified', 'offset': 'The starting page for results to return. For example, when page = 10, specifying ' + '"offset=0" will bring back records 1-10, "offset=1" will bring records 11-20, etc.', 'order': 'How to order the results, in this case by # of members. To reverse the sorting order, ' + 'you include the parameter "desc=desc" or "desc=true"', 'only': 'Retrieve only those fields specified', 'page': 'The page size (maximum number of results in each response) to use on the results', 'desc': 'Reverses the sorting order, when you include the parameter "desc=desc" or "desc=true"', } output = [] for service_name in sorted(six.iterkeys(service_dict)): service_details = service_dict.get(service_name) parameters = [] service_output = [] try: for param_name, param_details in six.iteritems(service_details.get('parameters', {})): if param_name not in six.iterkeys(common_parameters): parameters.append({'name': param_name, 'desc': param_details['description'], 'required': param_details['required']}) except AttributeError: pass parameters = multikeysort(parameters, ['-required', 'name']) params = ', '.join([param['name'] for param in parameters]) service_output.append('.. py:class:: meetup.api.Client') service_output.append('') service_output.append(' .. py:method:: {func_name}({params})'.format(func_name=service_name, params=params)) service_output.append('\n {0}'.format(service_details.get('summary'))) if service_details.get('notes'): notes = service_details.get('notes') notes.replace('\n ', '\n') line_prefix = ' ' * 4 in_pre_block = False for line in notes.split('\n'): if '
' in line:
line = line_prefix + '.. code-block:: javascript\n'
in_pre_block = True
elif '' in line:
line = ''
in_pre_block = False
elif '####' in line:
line = line_prefix + '**' + line.strip('# ') + '**'
else:
if in_pre_block:
line = line_prefix + line_prefix + line
else:
line = line_prefix + line.strip()
service_output.append(line)
service_output.append('\n URI: {0}'.format(service_details.get('uri')))
service_output.append('\n API Version: {0}\n'.format(service_details.get('version')))
for param in parameters:
param_name = param.get('name')
if param.get('name') in six.iterkeys(common_parameters):
param_desc = common_parameters.get(param_name)
else:
param_desc = param.get('desc')
service_output.append(' :param {name}: {desc}'.format(name=param_name, desc=param_desc))
if param.get('required'):
service_output.append(' :type {name}: required'.format(name=param_name))
service_output.append('')
output.append('\n'.join(service_output))
return output
if __name__ == '__main__':
services = {}
for version, file_name in API_SERVICE_FILES:
api_data = json.load(open(file_name))
for service_name, service_details in six.iteritems(api_data['operations']):
if service_name not in OMIT_SERVICE:
services[service_name] = service_details
api_method_docs = api_calls_to_rst(services)
print("""
API Client
----------
The following are dynamically generated methods for the :py:class:`meetup.api.Client` class.
API Client Index
^^^^^^^^^^^^^^^^
.. hlist::
:columns: 2
""")
for service_name in sorted(six.iterkeys(services)):
print(' - :py:meth:`{0}()\n [{\n \"path\": \"/2/member/self\",\n \"ref\": \"me\",\n \"params\": {\n \"only\": \"name,id\"\n }\n }]\n\n\n Only \"path\" is required for HTTP GET requests. \"path\" represents the API path for the method. \"ref\" provides a way to tag a request in a batch\n with a label that you can associated with its response in the body of the batch response. This will default to the\n provided \"path\". You may also supply a \"params\" key with a JSON object representing the parameters provided for the\n request. At this time only HTTP GET, DELETE, and POST requests are supported. You may specify one of these as a \"method\" property of the request.\n Methods requiring a multipart form POST are currently not supported. You may also supply headers on a per request basis by adding a \"headers\" field to the\n JSON object representing the request as key value pairs of strings.\n\n#### Interpreting batch responses\n\n A response to a batch request will be in the format\n\n\n [{\n \"path\": \"/2/member/self\"\n \"status\": 200,\n \"ref\": \"me\",\n \"body\": {\n \"id\": 1234,\n \"name\": \"Noah\"\n },\n \"headers\": {\n \"key\": \"value\"\n }\n }]\n\n\n \"path\" is the path of the method invoked. \"status\" represents the HTTP status code returned for the request.\n \"ref\" is the name provided for the inbound request. \"body\" is the JSON-encoded response from the given API request.\n \"headers\" is a JSON-encoded object representing the headers returned for that request.\n These requests may fail the same way they would when making individual requests. The response will indicate these\n failures.\n\n In order to preserve server resources and return batch responses within a reasonable amount of time, individual requests may will timeout\n if a response is not computed within a reasonable amount of time. This allows for some requests to fail and others to pass which is a nicer\n alternative to an all or nothing response timeout.\n A timed out request can be identified by inspecting its response's \"status\" field for a value of 504. A timed out response may look like.\n\n\n [{\n \"status\" : 504,\n \"body\" : {\n \"errors\" : [{\"code\": \"request_timeout\", \"message\":\"request timed out\"}]\n },\n \"headers\" : { ... },\n \"path\" : \"/end/point\",\n \"ref\" : \"request_ref\"\n }]\n\n"
},
"CreateGroupAbuseReports": {
"version": "3",
"name": "CreateGroupAbuseReports",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"type": {
"location": "query",
"required": false,
"description": "A required identifier for type of abuse you are reporting. Acceptable values include graphic_content, harmful_activities, licensed_services, not_community, nudity, other, promotion_focus, violence"
}
},
"summary": "Submits a new abuse report for a target group. Abuse reports will be followed up on by our Community support team.",
"uri": "/{urlname}/abuse_reports",
"notes": "This method requires the oauth `reporting` scope for oauth-authenticated requests"
},
"CreateGroupMemberApprovals": {
"version": "3",
"name": "CreateGroupMemberApprovals",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"member": {
"location": "query",
"required": false,
"description": "Comma-delimited numeric pending member IDs. The maximum allowed is 200"
},
"welcome_message": {
"location": "query",
"required": false,
"description": "Optional message to send to the members being approved. If not provided, the groups default welcome message will be sent. Max message size is 2000"
},
"send_copy": {
"location": "query",
"required": false,
"description": "Optional Boolean value indicating whether or not the org should receive a copy of the message sent to the approved members"
}
},
"summary": "Approves one or more requests for group membership",
"uri": "/{urlname}/member/approvals",
"notes": "The :urlname path element may be any valid group urlname or domain name. If you need access to your group's welcome message, you can access it from the [/2/groups](/meetup_api/docs/2/groups/#response) method, providing a value of `welcome_message` for the fields parameter. To get a list of pending members, as an organizer, you can request the status `pending` in the [/2/profiles](/meetup_api/docs/2/profiles/#params) method."
},
"CreateGroupTopics": {
"version": "3",
"name": "CreateGroupTopics",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"topic_id": {
"location": "query",
"required": false,
"description": "Comma-delimited list of topic ids to associate with group"
}
},
"summary": "Associates topics with a given Meetup Group. Limited to organizers of the group. OAuth authenticated requests require an additional [group_edit](/meetup_api/auth/#oauth2-scopes) permission.",
"uri": "/{urlname}/topics",
"notes": "A group can have at most 15 topics"
},
"CreateGroupVenues": {
"version": "3",
"name": "CreateGroupVenues",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"address_1": {
"location": "query",
"required": false,
"description": "Primary address of the venue"
},
"state": {
"location": "query",
"required": false,
"description": "If in the US or CA, the state code for the venue"
},
"hours": {
"location": "query",
"required": false,
"description": "Open hours information about the venue"
},
"country": {
"location": "query",
"required": false,
"description": "2 character country code of the venue"
},
"web_url": {
"location": "query",
"required": false,
"description": "Optional web url for the venue"
},
"visibility": {
"location": "query",
"required": false,
"description": "Optional value indicating the venues visibility to others. May be one of private or public. Defaults to 'public'"
},
"phone": {
"location": "query",
"required": false,
"description": "Optional phone number for the venue"
},
"name": {
"location": "query",
"required": false,
"description": "Unique name of the venue"
},
"address_2": {
"location": "query",
"required": false,
"description": "Secondary address info"
},
"city": {
"location": "query",
"required": false,
"description": "City name of the venue"
}
},
"summary": "Interface for creating new Meetup venues",
"uri": "/{urlname}/venues",
"notes": "The :urlname path element may be any valid group urlname or domain name. The required parameters are highlighted below. To avoid creating duplicate Meetup venues, this endpoint will attempt to resolve potentially similar venues based on name and address before creating a new public venues. If potential matches are detected, this method will return a 409 Conflict response containing a list of potential matches"
},
"CreateNotificationsRead": {
"version": "3",
"name": "CreateNotificationsRead",
"httpMethod": "POST",
"parameters": {
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"since_id": {
"location": "query",
"required": false,
"description": "The id of the newest notification item, typically the first in the list returned by the notifications endpoint"
}
},
"summary": "Marks groups of [notifications](/meetup_api/docs/notifications/) as read.",
"uri": "/notifications/read",
"notes": null
},
"CreateRecommendedGroupsIgnores": {
"version": "3",
"name": "CreateRecommendedGroupsIgnores",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Provides a form of feed back by requesting to remove a group from future recommendations",
"uri": "/recommended/groups/ignores/{urlname}",
"notes": "Only the path parameter :urlname is required. You are limited to 100 of these requests in a 24 hour period of time."
},
"CreateSelfAbuseReports": {
"version": "3",
"name": "CreateSelfAbuseReports",
"httpMethod": "POST",
"parameters": {
"member_id": {
"location": "query",
"required": false,
"description": "A numeric identifier for the member being reported. If not provided, this will be infered by the author of the content associated with the provided `content_tag`"
},
"type": {
"location": "query",
"required": false,
"description": "A required identifier for type of abuse you are reporting. Acceptable values include abuse, copyright, dangerous, fake, harass, inappropriate, join, other, photo, spam"
},
"comments": {
"location": "query",
"required": false,
"description": "An optional string of text that describes why you are submitting this report"
},
"url": {
"location": "query",
"required": false,
"description": "An optional URL for the location of the reported content if one exists"
},
"content_tag": {
"location": "query",
"required": false,
"description": "An optional identifier for flagged content that identifies both the type and id, where possible, of the content reported. The type and id should be separated by a ':' character, e.g `event_comment:{event_comment_id}`. Valid content_tag types include boards, chapter, convo, convo_message, email, event_comment, event_photo, member_photo, ml, reply. If member_id is not provided, content_tag should be provided to imply member_id"
}
},
"summary": "Submits a new abuse report for a target member. Abuse reports will be followed up on by our Community support team.",
"uri": "/self/abuse_reports",
"notes": "This method requires the oauth `reporting` scope for oauth-authenticated requests"
},
"CreateSelfBlocks": {
"version": "3",
"name": "CreateSelfBlocks",
"httpMethod": "POST",
"parameters": {
"member_id": {
"location": "uri",
"required": true,
"description": null
},
"report": {
"location": "query",
"required": false,
"description": "An optional value that represents a type of abuse the target member is being blocked for. Acceptable values include one of the following: fake, harass, inappropriate, spam"
},
"comments": {
"location": "query",
"required": false,
"description": "An optional string of text describing why you have chosen to block this member"
}
},
"summary": "Blocks a target member from various interactions with the authenticated member on the platform",
"uri": "/self/blocks/{member_id}",
"notes": "A valid member_id path parameter for the target member is required. This method requires the oauth `reporting` scope for oauth-authenticated requests"
},
"DeleteGroupEventsWatchlist": {
"version": "3",
"name": "DeleteGroupEventsWatchlist",
"httpMethod": "DELETE",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Remove yourself from an event watch list",
"uri": "/{urlname}/events/{id}/watchlist",
"notes": "No parameters are required. You should only call this method if you request the fields parameter 'self' in any events methods and get back a self.actions field containing 'unwatch'"
},
"DeleteGroupMemberApprovals": {
"version": "3",
"name": "DeleteGroupMemberApprovals",
"httpMethod": "DELETE",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"member": {
"location": "query",
"required": false,
"description": "Comma-delimited numeric pending member IDs. The maximum allowed is 200"
},
"anon": {
"location": "query",
"required": false,
"description": "Optional Boolean value indicating whether your email should be revealed to the members. Default is false."
},
"send_copy": {
"location": "query",
"required": false,
"description": "Optional Boolean value indicating whether or to send a copy to the member issuing the decline. Default is true"
},
"explanation": {
"location": "query",
"required": false,
"description": "Optional explanation to send to the members being declined. Max message size is 2000"
},
"ban": {
"location": "query",
"required": false,
"description": "Optional Boolean value indicating whether or not to ban the member in the future. Default is false"
}
},
"summary": "Declines one or more requests for group membership",
"uri": "/{urlname}/member/approvals",
"notes": "The :urlname path element may be any valid group urlname or domain name. To get a list of pending members, as an organizer, you can request the status `pending` in the [/2/profiles](/meetup_api/docs/2/profiles/#params) method."
},
"DeleteGroupTopics": {
"version": "3",
"name": "DeleteGroupTopics",
"httpMethod": "DELETE",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"topic_id": {
"location": "query",
"required": false,
"description": "Comma-delimited list of topic ids to disassociate with group"
}
},
"summary": "Disassociates topics with a given Meetup Group. Limited to organizers of the group. OAuth authenticated requests require an additional [group_edit](/meetup_api/auth/#oauth2-scopes) permission.",
"uri": "/{urlname}/topics",
"notes": "Groups must have at one topic. Attempts to remove all topics will result in a failed request"
},
"DeleteSelfBlocks": {
"version": "3",
"name": "DeleteSelfBlocks",
"httpMethod": "DELETE",
"parameters": {
"member_id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Unblocks a previously blocked member from various interactions with the authenticated member on the platform",
"uri": "/self/blocks/{member_id}",
"notes": "A valid member_id path parameter for the target member is required. This method requires the oauth `reporting` scope for oauth-authenticated requests."
},
"EditGroup": {
"version": "3",
"name": "EditGroup",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "query",
"required": false,
"description": "Name used for the groups web address on meetup.com. Must be between 6 and 60 characters"
},
"zip": {
"location": "query",
"required": false,
"description": "The ZIP code of the city"
},
"country": {
"location": "query",
"required": false,
"description": "The ISO_3166-1 country code for the country which contains the city"
},
"list_mode": {
"location": "query",
"required": false,
"description": "Defines policy for who can post to the group mailing list. May be one of 'open' meaning any Member can post, 'off' meaning no one can post, 'moderated' meaning messages must be approved, or 'orgs_only' meaning only organizers may post to the list"
},
"dryrun": {
"location": "query",
"required": false,
"description": "Boolean parameter that will cause this endpoint to apply all validation rules without actually saving changes in which case the response will only reflect the group's current attributes"
},
"ga_code": {
"location": "query",
"required": false,
"description": "Google Analytics code for group"
},
"remove_topics": {
"location": "query",
"required": false,
"description": "Comma-delimited list of topic ids to disassociate with group"
},
"visibility": {
"location": "query",
"required": false,
"description": "Restricts group visibility for non-members. May be one of 'public', 'public_limited' or 'members'. Note, the 'members' option is only available to groups that already have 'members' visibility"
},
"question_{index}": {
"location": "query",
"required": false,
"description": "A new profile question defined in the order of index provided in the request parameter name"
},
"photo_req": {
"location": "query",
"required": false,
"description": "Indicates that a member must provide a photo before joining. Expects true or false values"
},
"description": {
"location": "query",
"required": false,
"description": "Summary of what the Meetup group is about in simple HTML format"
},
"questions_req": {
"location": "query",
"required": false,
"description": "Indicates that provide questions are required before joining. Expects true or false values"
},
"welcome_message": {
"location": "query",
"required": false,
"description": "Message sent to members after they join. Can be at most 2000 characters"
},
"join_mode": {
"location": "query",
"required": false,
"description": "Controls how member's are let into the group. May be one of 'open' meaning any Meetup member my join, 'closed' meaning group is not currently accepting new members, or 'approval' meaning members must be approved by an organizer. Note, the 'closed' options is only available to groups that already have a 'closed' join_mode"
},
"list_addr": {
"location": "query",
"required": false,
"description": "Mailing list prefix. By default this is the Group's urlname."
},
"add_topics": {
"location": "query",
"required": false,
"description": "Comma-delimited list of topic ids to associate with group"
},
"{service}_uri": {
"location": "query",
"required": false,
"description": "A URI for a social network service. Service must be one of facebook, flickr, linkedin, other, tumblr, twitter"
},
"name": {
"location": "query",
"required": false,
"description": "Display name of the group. Can be at most 60 characters"
},
"question_edit_{id}": {
"location": "query",
"required": false,
"description": "Edits a current profile question identified by an id in the parameter name. The index updated index should also be encoded in the parameter name. To delete a question, set this to an empty string. Groups that require profile questions must have at least one question"
},
"who": {
"location": "query",
"required": false,
"description": "What members of the group will be called. Can be at most 32 characters"
}
},
"summary": "Allows organizers to edit their Meetup group information. To change group topics, see the [add](/meetup_api/docs/:urlname/topics/#add) and [remove](/meetup_api/docs/:urlname/topics/#remove) topics endpoints. To change group photo use the [Group photo upload](/meetup_api/docs/2/group_photo/#create) endpoint. OAuth authenticated requests require an additional [group_edit](/meetup_api/auth/#oauth2-scopes) permission.",
"uri": "/{urlname}",
"notes": "All parameters are optional."
},
"EditGroupEventsAttendance": {
"version": "3",
"name": "EditGroupEventsAttendance",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"id": {
"location": "uri",
"required": true,
"description": null
},
"guests": {
"location": "query",
"required": false,
"description": "The number of guests accompanying member. Maximum of 99 is allowed."
},
"headcount": {
"location": "query",
"required": false,
"description": "Sets the overall headcount for the event. This may not necessarily correlate with the list of attendees in this group if the event is part of a joint Meetup event"
},
"member": {
"location": "query",
"required": false,
"description": "A valid ID of member in the group"
},
"status": {
"location": "query",
"required": false,
"description": "An attendance status for the member. Must be one of: noshow, absent, attended"
}
},
"summary": "Takes Member attendance for an Event. Limted for use by administrative members.",
"uri": "/{urlname}/events/{id}/attendance",
"notes": "The :urlname path element may be any valid group urlname or domain name. The :id path element must be a valid alphanumeric Meetup event identifier. Highlighted fields are required."
},
"EditGroupEventsPayments": {
"version": "3",
"name": "EditGroupEventsPayments",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"id": {
"location": "uri",
"required": true,
"description": null
},
"amount": {
"location": "query",
"required": false,
"description": "The monetary amount of money the member submited"
},
"quantity": {
"location": "query",
"required": false,
"description": "The number of payments made. Defaults to 1"
},
"member": {
"location": "query",
"required": false,
"description": "Member Id of member who made a payment"
},
"paid_on": {
"location": "query",
"required": false,
"description": "The time the payment was made in milliseconds from the epoc. Defaults to now"
}
},
"summary": "Allows organizers of a group to note payments made by members for an event. This is the 'Mark Paid' feature seen in the RSVP listings on event details pages and affects the 'pay_status' response fields in [2/rsvps](/meetup_api/docs/2/rsvps/#response) for paid events",
"uri": "/{urlname}/events/{id}/payments",
"notes": "Only organizer may submit payment information for members and only one payment may be submitted for a member for a given event"
},
"EditGroupEventsWatchlist": {
"version": "3",
"name": "EditGroupEventsWatchlist",
"httpMethod": "POST",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Add yourself to an event watch list to get notified when a spot becomes available",
"uri": "/{urlname}/events/{id}/watchlist",
"notes": "No parameters are required. You should only call this method if you request the fields parameter 'self' in any events methods and get back a self.actions field containing 'watch'"
},
"GetDashboard": {
"version": "3",
"name": "GetDashboard",
"httpMethod": "GET",
"parameters": {
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "A dashboard of aggregated Meetup information for the authorized member",
"uri": "/dashboard",
"notes": "no parameters are required"
},
"GetFindGroups": {
"version": "3",
"name": "GetFindGroups",
"httpMethod": "GET",
"parameters": {
"zip": {
"location": "query",
"required": false,
"description": "Zipcode of location to limit search to"
},
"country": {
"location": "query",
"required": false,
"description": "A valid two character country code, defaults to US"
},
"upcoming_events": {
"location": "query",
"required": false,
"description": "If true, filters text and category based searches on groups that have upcoming events. Defaults to false"
},
"lon": {
"location": "query",
"required": false,
"description": "Approximate longitude"
},
"filter": {
"location": "query",
"required": false,
"description": "Determines which groups are returned. If 'all' (default), the text and category parameters are applied. If 'friends', groups your friends are in are returned. The value of this parameter may be one of all, friends"
},
"fallback_suggestions": {
"location": "query",
"required": false,
"description": "boolean indicator of whether or not to return a list of curated suggetions for groups if we can't find groups matching your criteria"
},
"location": {
"location": "query",
"required": false,
"description": "Raw text location query"
},
"text": {
"location": "query",
"required": false,
"description": "Raw full text search query"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius in miles. May be 0.0-100.0, 'global' or 'smart', a dynamic radius based on the number of active groups in the area"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"category": {
"location": "query",
"required": false,
"description": "Comma-delimited list of numeric category ids"
},
"self_groups": {
"location": "query",
"required": false,
"description": "set to 'include' or 'exclude' meetups the authorized member belongs to; default is 'include'"
},
"lat": {
"location": "query",
"required": false,
"description": "Approximate latitude"
},
"distance": {
"location": "query",
"required": false,
"description": "Order by distance"
},
"newest": {
"location": "query",
"required": false,
"description": "Order by date group was founded"
},
"most_active": {
"location": "query",
"required": false,
"description": "Order by group with most active members"
},
"members": {
"location": "query",
"required": false,
"description": "Order by number of members"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Text, location, category and friend-based group searches",
"uri": "/find/groups",
"notes": "All parameters are optional. If you do not supply some explicit form of location, the results will be based on your registered Meetup profile location, falling back on your IP's geographic location.\n\nIf we can't find find Meetup groups matching your criteria you may optionally request that a small set of suggestions are returned in their place.\nTo do so, send a request parameter named `fallback_suggestions` set to `true`. You can infer that a list of Meetup groups return are fallback suggestions when\nthe `X-Total-Count` pagination response header has a `0` value.\n\nSee the 'filter' parameter for more information controlling the results returned. Ordering does not apply to friend-filtered queries."
},
"GetGroup": {
"version": "3",
"name": "GetGroup",
"httpMethod": "GET",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "A comma-delimited list of optional fields to append to the response"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Fetches a Meetup Group by urlname",
"uri": "/{urlname}",
"notes": "Only the path param :urlname is required"
},
"GetGroupBoards": {
"version": "3",
"name": "GetGroupBoards",
"httpMethod": "GET",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Listings of Group discussion boards",
"uri": "/{urlname}/boards",
"notes": "The :urlname path element may be any valid group urlname or domain name"
},
"GetGroupBoardsDiscussions": {
"version": "3",
"name": "GetGroupBoardsDiscussions",
"httpMethod": "GET",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"bid": {
"location": "uri",
"required": true,
"description": null
},
"did": {
"location": "uri",
"required": true,
"description": null
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Listing Group discussion posts",
"uri": "/{urlname}/boards/{bid}/discussions/{did}",
"notes": "The :urlname path element may be any valid group urlname or domain name. The :bid path element maybe any valid board ID for this group. The :did may be any valid discussion ID for this board"
},
"GetGroupEventsAttendance": {
"version": "3",
"name": "GetGroupEventsAttendance",
"httpMethod": "GET",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"id": {
"location": "uri",
"required": true,
"description": null
},
"filter": {
"location": "query",
"required": false,
"description": "A named filter to apply to the attendance list. These are roughly equivalent to the set of filters you will see in the attendance tool on the site. These filters correspond with attendance records as well as each member's original RSVP status. The filter value be one of: maybe, waitlist, yes, absent, all, attended, noshow, excused, no. The default is 'attended'. The 'absent' filter represents all members not in attendance including members with a 'noshow' status. An 'excused' absence is an absent member marked as such by an administrative member"
},
"member": {
"location": "query",
"required": false,
"description": "Raw text used to search for member by name. This may only be applied when the filter parameter is set to 'all'. The provided text must consist of at least 2 characters."
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Lists attendance records for Meetup events. Limited for use by administrative members.",
"uri": "/{urlname}/events/{id}/attendance",
"notes": "The :urlname path element may be any valid group urlname or domain name. The :id path element must be a valid alphanumeric Meetup event identifier"
},
"GetGroupSimilarGroups": {
"version": "3",
"name": "GetGroupSimilarGroups",
"httpMethod": "GET",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Renders a list of similar groups",
"uri": "/{urlname}/similar_groups",
"notes": "The :urlname path element may be any valid group urlname or domain name."
},
"GetGroupVenues": {
"version": "3",
"name": "GetGroupVenues",
"httpMethod": "GET",
"parameters": {
"urlname": {
"location": "uri",
"required": true,
"description": null
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns venues a group has previously hosted events at",
"uri": "/{urlname}/venues",
"notes": "The :urlname path element may be any valid group urlname or domain name. All parameters are optional"
},
"GetNotifications": {
"version": "3",
"name": "GetNotifications",
"httpMethod": "GET",
"parameters": {
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns all recent Meetup notifications for the authorized member. To mark notifications read use [/notifications/read](/meetup_api/docs/notifications/read/) endpoint. To get the authenticated Member's current unread count, request it in an [HTTP header](/meetup_api/docs/#meta-headers).",
"uri": "/notifications",
"notes": "No parameters are required"
},
"GetRecommendedGroupTopics": {
"version": "3",
"name": "GetRecommendedGroupTopics",
"httpMethod": "GET",
"parameters": {
"page": {
"location": "query",
"required": false,
"description": null
},
"text": {
"location": "query",
"required": false,
"description": "Free form text search"
},
"lang": {
"location": "query",
"required": false,
"description": "Defines a language preference for ordering results. Valid values are frptitdeesen_us. You may also substitute this with the Accept-Language header"
},
"other_topics": {
"location": "query",
"required": false,
"description": "A comma-delimited list of topic ids to inform recommendations"
},
"exclude_topics": {
"location": "query",
"required": false,
"description": "A comma-delimited list of topic ids to exclude from the recommendations"
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Recommends suggestions for group topics based on a text search or other topics",
"uri": "/recommended/group_topics",
"notes": null
},
"GetRecommendedGroups": {
"version": "3",
"name": "GetRecommendedGroups",
"httpMethod": "GET",
"parameters": {
"zip": {
"location": "query",
"required": false,
"description": "Zip code you are searching for recommendations in"
},
"country": {
"location": "query",
"required": false,
"description": "A valid two character country code, defaults to US"
},
"instant_join_only": {
"location": "query",
"required": false,
"description": "Recommend only groups without join requirements and that can be joined instantly"
},
"location": {
"location": "query",
"required": false,
"description": "Raw text location query"
},
"lon": {
"location": "query",
"required": false,
"description": "Approximate longitude"
},
"topic_id": {
"location": "query",
"required": false,
"description": "Comma delimited list of up to 100 topic ids to help inform recommendations"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius in miles. May be 0.0-100.0, 'global' or 'smart', a dynamic radius based on the number of active groups in the area"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"category": {
"location": "query",
"required": false,
"description": "A valid category id which limits recommended groups to a particular category"
},
"lat": {
"location": "query",
"required": false,
"description": "Approximate latitude"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns groups Meetup finds relevant to you",
"uri": "/recommended/groups",
"notes": "All parameters are optional. You may change the 'location' and 'radius' for the request. If you do not supply a location your request will be based on your IP's geographic location. If the server is unable to produce recommendations in a suitable amount of time, a 503 error will be returned."
},
"GetRecommendedVenues": {
"version": "3",
"name": "GetRecommendedVenues",
"httpMethod": "GET",
"parameters": {
"zip": {
"location": "query",
"required": false,
"description": "Zip code you are searching for recommendations in"
},
"country": {
"location": "query",
"required": false,
"description": "A valid two character country code, defaults to US"
},
"used_between": {
"location": "query",
"required": false,
"description": "Return venues that have been used within the given time range, defined by two times separated with a single comma. Each end of the range may be specified with relative dates, such as \"1m\" for one month from now, or by absolute time in milliseconds since the epoch. If an endpoint is omitted, the range is unbounded on that end. The default value is unbounded on both ends (though restricted to the search window described above)."
},
"min_groups": {
"location": "query",
"required": false,
"description": "The minimum number of groups that have hosted events at this venue"
},
"group_id": {
"location": "query",
"required": false,
"description": "Comma-delimited list of up to 200 group ids to help inform recommendations"
},
"location": {
"location": "query",
"required": false,
"description": "Raw text location query"
},
"lon": {
"location": "query",
"required": false,
"description": "Approximate longitude"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius in miles"
},
"category": {
"location": "query",
"required": false,
"description": "Comma-delimited list of up to 200 category ids to help inform recommendations"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Comma-delimited list of up to 200 group urlnames to help inform recommendations"
},
"lat": {
"location": "query",
"required": false,
"description": "Approximate latitude"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns venues Meetup finds relevant to you based on location and category. This method does not yet support sorting or pagination.",
"uri": "/recommended/venues",
"notes": "All parameters are optional. If you do not supply a location your request will be based on your IP's geographic location. If the server is unable to produce recommendations in a suitable amount of time, a 503 error will be returned."
},
"GetSelfBlocks": {
"version": "3",
"name": "GetSelfBlocks",
"httpMethod": "GET",
"parameters": {
"member_id": {
"location": "uri",
"required": true,
"description": null
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Checks the block status for a target member relative to the authenticated member",
"uri": "/self/blocks/{member_id}",
"notes": "A valid member_id path parameter for the target member is required."
},
"GetStatus": {
"version": "3",
"name": "GetStatus",
"httpMethod": "GET",
"parameters": {
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns the current API service status",
"uri": "/status",
"notes": "No parameters are needed"
}
}
}PK \BH< 0 meetup/api_specification/meetup_v2_services.json{
"name": "Meetup",
"apiVersion": 2,
"description": "Meetup API v2 methods",
"operations": {
"CreateEvent": {
"version": "2",
"name": "CreateEvent",
"httpMethod": "POST",
"parameters": {
"rsvp_alerts": {
"location": "query",
"required": false,
"description": "Limited to organizers and event hosts, if false, disables member RSVP alerts"
},
"rsvp_limit": {
"location": "query",
"required": false,
"description": "Total number of RSVPs available for the event"
},
"email_reminders": {
"location": "query",
"required": false,
"description": "Limited to organizers and event hosts, if false, disables event reminders"
},
"rsvp_open": {
"location": "query",
"required": false,
"description": "Users with permission may set the RSVP open time for the event. The time may be specified in milliseconds since the epoch, or relative to the current time in the d/w/m format."
},
"venue_visibility": {
"location": "query",
"required": false,
"description": "Controls the visibility of the event venue for non members of the hosting group. May be one of \"public\" or \"members\""
},
"hosts": {
"location": "query",
"required": false,
"description": "Up to 5 comma-separated valid member ids to be hosts for the event. If hosts is not provided, the authorized member is the default host"
},
"question_{index}": {
"location": "query",
"required": false,
"description": "Those with permission may include up to 6 survey questions for the event with each being up to 250 characters. See the parameter notes section for more information"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "URL name of the Group hosting the event"
},
"why": {
"location": "query",
"required": false,
"description": "We should do this because... May not be longer than 250 characters."
},
"description": {
"location": "query",
"required": false,
"description": "Longer description of the event, in HTML. May not be longer than 50000 characters."
},
"host_instructions": {
"location": "query",
"required": false,
"description": "optional set of instructions to provide to hosts, only used when hosts are provided"
},
"how_to_find_us": {
"location": "query",
"required": false,
"description": "The information provided by the event host for \"How will members find you there?\". Visible when location is visible to the authenticated member"
},
"rsvp_close": {
"location": "query",
"required": false,
"description": "Users with permission may set the RSVP close time for the event. The time may be specified in milliseconds since the epoch, or relative to the current time in the d/w/m format."
},
"group_id": {
"location": "query",
"required": false,
"description": "Group hosting the event"
},
"duration": {
"location": "query",
"required": false,
"description": "Event duration in milliseconds. When not specified, a default of 3 hours may be assumed by applications. To clear event duration, set this to 0"
},
"name": {
"location": "query",
"required": false,
"description": "Name of the event. May not be longer than 80 characters."
},
"guest_limit": {
"location": "query",
"required": false,
"description": "Number of guests members may include in their RSVP, 0 or more"
},
"waitlisting": {
"location": "query",
"required": false,
"description": "Waiting list status may be one of: auto, manual, off"
},
"simple_html_description": {
"location": "query",
"required": false,
"description": "Description of the event, in simple HTML format. This value is translated to HTML to update the description. May not be longer than 50000 characters."
},
"time": {
"location": "query",
"required": false,
"description": "Event start time in milliseconds since the epoch, or relative to the current time in the d/w/m format."
},
"venue_id": {
"location": "query",
"required": false,
"description": "Numeric identifier of a venue"
},
"publish_status": {
"location": "query",
"required": false,
"description": "If you are an organizer of the group, you may set this to \"draft\" to save the event as a draft. Doing so will require a status=draft filter on /2/event queries."
}
},
"summary": "",
"uri": "/2/event",
"notes": "All required parameters must be supplied. This method requires parameters encoded in application/x-www-form-urlencoded format as an HTTP POST.\n\nSurvey questions may be submitted in the format \"question_{index}=questiontext\" where \"index\" is an integer representing the order the questions should be presented in. e.g. question_0=question1&question_1=question2.\n\nOrganizers of the hosting group may optionally save this event as a draft by setting \"publish_status\" to \"draft\". Drafts are then discoverable using the [/2/events](/meetup_api/docs/2/events) API setting the \"status\" request parameter to \"draft\""
},
"CreateEventComment": {
"version": "2",
"name": "CreateEventComment",
"httpMethod": "POST",
"parameters": {
"comment": {
"location": "query",
"required": false,
"description": "The comment text"
},
"in_reply_to": {
"location": "query",
"required": false,
"description": "If this comment is a reply, the ID of the comment being replied to"
},
"notifications": {
"location": "query",
"required": false,
"description": "Notification control for authorized member on this comment thread. \"on\" will result in notifications being sent. \"off\" will opt the member out of notifications for this comment thread. Defaults to \"on\" unless the member previous opted out of notifications on the thread."
},
"event_id": {
"location": "query",
"required": false,
"description": "The event related to this comment."
}
},
"summary": "This method posts messages that appear under \"Talk about this Meetup\".",
"uri": "/2/event_comment",
"notes": "All of the required parameters must be supplied with the request, which must be an HTTP POST. The currently authenticated user must be a member of the group hosting the event"
},
"CreateEventCommentFlag": {
"version": "2",
"name": "CreateEventCommentFlag",
"httpMethod": "POST",
"parameters": {
"comment_id": {
"location": "query",
"required": false,
"description": "The id of the comment"
},
"reason": {
"location": "query",
"required": false,
"description": "Reason for flagging the comment. May be one of inappropriate, spam"
}
},
"summary": "This method creates a spam report for comment content",
"uri": "/2/event_comment_flag",
"notes": "All required parameters must be supplied."
},
"CreateEventRating": {
"version": "2",
"name": "CreateEventRating",
"httpMethod": "POST",
"parameters": {
"attendee_count": {
"location": "query",
"required": false,
"description": "The number of attendees for the event (organizers/assistant organizers/co-organizers/event organizers/event hosts only)"
},
"rating": {
"location": "query",
"required": false,
"description": "The member's rating (either 1, 2, 3, 4, or 5)"
},
"event_id": {
"location": "query",
"required": false,
"description": "The ID of the event to fetch ratings data for"
}
},
"summary": "This method allows members to posts rating for an event after it's occurred. Only permitted for members who rsvp'd \"yes\" or \"maybe\" to the event",
"uri": "/2/event_rating",
"notes": null
},
"CreateGroupPhoto": {
"version": "2",
"name": "CreateGroupPhoto",
"httpMethod": "POST",
"parameters": {
"await": {
"location": "query",
"required": false,
"description": "If true, this ensures a response will not be returned until the upload is accessible"
},
"main": {
"location": "query",
"required": false,
"description": "Set to 'true' to have this photo become the group's main photo. Set it to 'false' otherwise. Defaults to true"
},
"group_id": {
"location": "query",
"required": false,
"description": "Group ID for the target group. This may be used as an alternative to group_urlname"
},
"photo": {
"location": "query",
"required": false,
"description": "The photo, encoded as multipart/form-data. The maximum file size allowed is 10MB"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Group urlname. This may be used as an alternative to group_id"
}
},
"summary": "Uploads a new Meetup Group photo. To change other Group settings use the [Group Edit](/meetup_api/docs/:urlname/#edit) endpoint",
"uri": "/2/group_photo",
"notes": "The request must be a POST of content-type multipart/form-data. The supplied photo will be added to the provided groups general photo album. If authenticating with OAuth, no parameters in the multipart form data should be included in the signature base string. You must be an organizer of the group in order to load a photo."
},
"CreateMemberPhoto": {
"version": "2",
"name": "CreateMemberPhoto",
"httpMethod": "POST",
"parameters": {
"await": {
"location": "query",
"required": false,
"description": "If true, this ensures a response will not be returned until the upload is accessible"
},
"main": {
"location": "query",
"required": false,
"description": "Set to \"true\" to have this photo become the member's main profile photo. Otherwise, it will become the main photo only when none other is selected. If the authenticated member does not already have a main profile photo set it will remain so."
},
"sync_matching_photo": {
"location": "query",
"required": false,
"description": "When set to true and main is set to true, this will replace all group profile photos matching the current photo with the provided replacement"
},
"photo": {
"location": "query",
"required": false,
"description": "The photo, encoded as multipart/form-data. The maximum file size allowed is 10MB"
},
"sync_photo": {
"location": "query",
"required": false,
"description": "When set to true, this parameter will sync all of the group profile photos for the member with the provided photo_id"
}
},
"summary": "Uploads a photo to be associated with a Member",
"uri": "/2/member_photo",
"notes": "The request must be a POST of content-type multipart/form-data. The supplied photo will be added to the currently authenticated user's member profile. If authenticating with OAuth, no parameters in the multipart form data should be included in the signature base string."
},
"CreatePhoto": {
"version": "2",
"name": "CreatePhoto",
"httpMethod": "POST",
"parameters": {
"await": {
"location": "query",
"required": false,
"description": "If true, this ensures a response will not be returned until the upload is accessible"
},
"caption": {
"location": "query",
"required": false,
"description": "Caption for the photo"
},
"photo_album_id": {
"location": "query",
"required": false,
"description": "Identifier of an existing photo album, which may be an event or group album"
},
"photo": {
"location": "query",
"required": false,
"description": "The photo, encoded as multipart/form-data. The maximum file size allowed is 10MB"
},
"event_id": {
"location": "query",
"required": false,
"description": "Identifier of an event. If there is no album for this event, one will be created."
}
},
"summary": "Uploads a photo for a given event",
"uri": "/2/photo",
"notes": "A photo album or event ID must be supplied with the request, which must be a POST of content-type `multipart/form-data`. The currently authenticated user must be a member of the group that is hosting the event. Parameters other than photo may be passed in as a query string or within the posted content. If authenticating with OAuth, no parameters in the multipart form data should be included in the signature base string"
},
"CreatePhotoAlbum": {
"version": "2",
"name": "CreatePhotoAlbum",
"httpMethod": "POST",
"parameters": {
"group_id": {
"location": "query",
"required": false,
"description": "Group to create the album in"
},
"title": {
"location": "query",
"required": false,
"description": " Title of the new album"
}
},
"summary": "This method creates photo albums within a Meetup group",
"uri": "/2/photo_album",
"notes": "All of the required parameters must be supplied with the request, which must be an HTTP POST. The currently authenticated user must be an organizer (main, assistant, or co-) of the specified group"
},
"CreatePhotoComment": {
"version": "2",
"name": "CreatePhotoComment",
"httpMethod": "POST",
"parameters": {
"photo_id": {
"location": "query",
"required": false,
"description": "The photo related to this comment."
},
"comment": {
"location": "query",
"required": false,
"description": "The comment text"
}
},
"summary": "This method posts comments that appear below photos",
"uri": "/2/photo_comment",
"notes": "All of the required parameters must be supplied with the request, which must be an HTTP POST. The currently authenticated user must be a member of the group hosting the photo"
},
"CreateProfile": {
"version": "2",
"name": "CreateProfile",
"httpMethod": "POST",
"parameters": {
"site_name": {
"location": "query",
"required": false,
"description": "Name of member's site. Max length is 32"
},
"photo_id": {
"location": "query",
"required": false,
"description": "photo_id of the photo to use for this profile"
},
"site_url": {
"location": "query",
"required": false,
"description": "Link to member's site. Max length is 80"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Urlname of group to join"
},
"intro": {
"location": "query",
"required": false,
"description": "Provides a Member an opportunity to tell the group about themselves"
},
"new_photo": {
"location": "query",
"required": false,
"description": "file upload for a new member photo"
},
"group_id": {
"location": "query",
"required": false,
"description": "Id of group to join"
},
"answer_{qid}": {
"location": "query",
"required": false,
"description": "Answers to questions from groups API join_info question fields"
}
},
"summary": "This method allows an authenticated member to join a group by creating a profile",
"uri": "/2/profile",
"notes": "This method requires an HTTP POST. All required parameters must be supplied. An intro and answers may be required based on the group the member is joining. To find out if a group requires an intro or answers to questions, query for the group through one of the [Groups methods](/meetup_api/docs/2/groups) providing setting the __fields__ parameter to __join_info__ and inspecting the __join_info__ in the results. Answers to the questions must be named using the convention __answer_{question_id}__."
},
"CreateRsvp": {
"version": "2",
"name": "CreateRsvp",
"httpMethod": "POST",
"parameters": {
"rsvp": {
"location": "query",
"required": false,
"description": "The RSVP setting - value must be either \"yes\", \"no\" or \"waitlist\""
},
"member_id": {
"location": "query",
"required": false,
"description": " Organizers and event hosts may RSVP on behalf of a member by specifying an ID here. As when editing RSVPs on the site, organizers may enter a \"yes\" for a member even if the event requires payment."
},
"comments": {
"location": "query",
"required": false,
"description": "A comment to post along with the RSVP"
},
"event_id": {
"location": "query",
"required": false,
"description": "The event that you are RSVP'ing to"
},
"guests": {
"location": "query",
"required": false,
"description": "Number of guests also coming to the event."
},
"opt_to_pay": {
"location": "query",
"required": false,
"description": "For events with fees, the authorized member may opt to pay as part of the RSVP request. This may be set to true or false"
},
"answer_{qid}": {
"location": "query",
"required": false,
"description": "Answers to event survey questions. Answers may not be longer than 250 characters. Organizers and hosts my not edit or create answers on behalf of members"
},
"agree_to_refund": {
"location": "query",
"required": false,
"description": "For events with fees, the authorized member must agree to the event's refund policy. This must be set to either true or false"
}
},
"summary": "Creates or updates an existing RSVP",
"uri": "/2/rsvp",
"notes": "At least one of the required parameter(s) must be supplied with the request.\n\nThe RSVP is recorded for the currently authenticated member account, unless a member_id is supplied, in which case the authenticated member must have permissions to edit the event or a host.\n\nMember's RSVP'ing as themselves may supply answers to a Meetup event's survey questions by supplying answers as request parameters corresponding to question ids in the format `answer_{question_id}`. To discover available Meetup event survey questions, supply the [Events 2](/meetup_api/docs/2/events/) method with the 'fields' parameter set to 'survey_questions'.\n\nRepeated attempts to RSVP to the same event given the same member credentials will result in an update to previous RSVP. The state of the event may or may not allow for this update to occur depending on the organizer-defined constraints and pre-requisites for the event.\n\nNote: waitlist responses may be coerced into yes responses when there is space available and yes responses may be coerced into waitlist response when space is not.\n\nIf the event requires payment you are required to send an \"agree_to_refund\" parameter set to the true or false. This represents the authorized members agreement to understanding the event's refund policy.\n"
},
"DeleteEvent": {
"version": "2",
"name": "DeleteEvent",
"httpMethod": "DELETE",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Deletes a specified meetup",
"uri": "/2/event/{id}",
"notes": "Only authorization parameters are needed."
},
"DeleteEventComment": {
"version": "2",
"name": "DeleteEventComment",
"httpMethod": "DELETE",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "comma-separate list of optional fields"
}
},
"summary": "Delete a single event comment or reply",
"uri": "/2/event_comment/{id}",
"notes": "Only authorization parameters are needed."
},
"DeleteEventCommentLike": {
"version": "2",
"name": "DeleteEventCommentLike",
"httpMethod": "DELETE",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Unlike a given Event comment",
"uri": "/2/event_comment_like/{id}",
"notes": "Only authorization parameters are needed. :id in the path should be the id of the comment you are unliking"
},
"DeleteEventCommentSubscribe": {
"version": "2",
"name": "DeleteEventCommentSubscribe",
"httpMethod": "DELETE",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Unsubscribe to notifications for updates to a given comment thread",
"uri": "/2/event_comment_subscribe/{id}",
"notes": "Only authorization parameters are needed. :id in the path should be the id of comment being replied to which you are unsubscribing to notifications from"
},
"DeleteMemberPhoto": {
"version": "2",
"name": "DeleteMemberPhoto",
"httpMethod": "DELETE",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Delete the specified member photo",
"uri": "/2/member_photo/{id}",
"notes": "Only authorization parameters are needed. Authorized user must be the member owning the photo"
},
"DeletePhoto": {
"version": "2",
"name": "DeletePhoto",
"httpMethod": "DELETE",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Delete specified event photo",
"uri": "/2/photo/{id}",
"notes": "Only authorization parameters are needed. Authorized user must be the original poster of the photo or the organizer of the group the photo was posted in"
},
"DeleteProfile": {
"version": "2",
"name": "DeleteProfile",
"httpMethod": "DELETE",
"parameters": {
"gid": {
"location": "uri",
"required": true,
"description": null
},
"mid": {
"location": "uri",
"required": true,
"description": null
},
"exit_comment": {
"location": "query",
"required": false,
"description": "Optional message to the organizer when leaving"
}
},
"summary": "Deletes a member's group profile",
"uri": "/2/profile/{gid}/{mid}",
"notes": "All parameters are optional. Only the authorized member is permitted leave groups they do not organize. This method may not be used by organizers to remove members."
},
"EditEvent": {
"version": "2",
"name": "EditEvent",
"httpMethod": "POST",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"rsvp_limit": {
"location": "query",
"required": false,
"description": "Total number of RSVPs available for the event. To remove this limit, set this to 0"
},
"rsvp_open": {
"location": "query",
"required": false,
"description": "Users with permission may set the RSVP open time for the event. The time may be specified in milliseconds since the epoch, or relative to the current time in the d/w/m format."
},
"venue_visibility": {
"location": "query",
"required": false,
"description": "Controls the visibility of venue. May be one of \"public\" or \"members\""
},
"why": {
"location": "query",
"required": false,
"description": "We should do this because... May not be longer than 250 characters."
},
"description": {
"location": "query",
"required": false,
"description": "Longer description of the event, in HTML. May not be longer than 50000 characters."
},
"host_instructions": {
"location": "query",
"required": false,
"description": "optional set of instructions to provide to hosts, only used when hosts are provided"
},
"rsvp_close": {
"location": "query",
"required": false,
"description": "Users with permission may set the RSVP close time for the event. The time may be specified in milliseconds since the epoch, or relative to the current time in the d/w/m format. To unset rsvp_close, set this to 0"
},
"announce_message": {
"location": "query",
"required": false,
"description": "Organizers and hosts may provide an optional message in this field when announcing a Meetup. May not be longer than 500 characters."
},
"duration": {
"location": "query",
"required": false,
"description": "Event duration in milliseconds. When not specified, a default of 3 hours may be assumed by applications. To clear event duration, set this to 0"
},
"guest_limit": {
"location": "query",
"required": false,
"description": "number of guests members may include in their RSVP, 0 or more"
},
"simple_html_description": {
"location": "query",
"required": false,
"description": "Description of the event, in simple HTML format. This value is translated to HTML to update the description. May not be longer than 50000 characters."
},
"question_edit_{id}": {
"location": "query",
"required": false,
"description": "Those with permission may include up to 6 survey questions with each being up to 250 characters, including new questions. To delete a question submit this parameter with an empty value"
},
"venue_id": {
"location": "query",
"required": false,
"description": "Numeric identifier of a venue. To unset the event's venue, set this to 0"
},
"publish_status": {
"location": "query",
"required": false,
"description": "If you are an organizer of the group, you may set this to \"draft\" or \"published\". Setting state to \"draft\" will require a status=draft filter on /2/event queries."
},
"rsvp_alerts": {
"location": "query",
"required": false,
"description": "Limited to organizers and event hosts, if false, disables member RSVP alerts"
},
"lat": {
"location": "query",
"required": false,
"description": "Updates to the venue's latitude and longitude. When present, both must be provided"
},
"lon": {
"location": "query",
"required": false,
"description": "Updates to the venue's latitude and longitude. When present, both must be provided"
},
"email_reminders": {
"location": "query",
"required": false,
"description": "Limited to organizers and event hosts, if false, disables event reminders"
},
"hosts": {
"location": "query",
"required": false,
"description": "Up to 5 valid member ids to be hosts for the event."
},
"question_{index}": {
"location": "query",
"required": false,
"description": "Those with permission may include up to 6 survey questions with each being up to 250 characters, including edited questions, for the event. See the parameter notes section for more information"
},
"how_to_find_us": {
"location": "query",
"required": false,
"description": "The information provided by the event host for \"How will members find you there?\". Visible when location is visible to the authenticated member"
},
"announce": {
"location": "query",
"required": false,
"description": "Organizers and hosts may set this to true to announce a Meetup."
},
"group_id": {
"location": "query",
"required": false,
"description": "Group to hold the event"
},
"name": {
"location": "query",
"required": false,
"description": "Event name. May not be longer than 80 characters."
},
"waitlisting": {
"location": "query",
"required": false,
"description": "Waiting list status may be one of: auto, manual, off"
},
"time": {
"location": "query",
"required": false,
"description": "event start time in milliseconds since the epoch, or relative to the current time in the d/w/m format."
}
},
"summary": "Update an existing Meetup",
"uri": "/2/event/{id}",
"notes": "All parameters are optional. This method requires an HTTP POST.\n\nIf a lat & lon are provided, the event's venue will be updated accordingly.\n\nSurvey questions may be submitted in the format \"question_{index}=questiontext\" where \"index\" is an integer representing the order the questions should be presented in. e.g. question_0=question1&question_1=question2.\n\nTo view existing survey questions supply the request parameter fields=survey_questions with the [Event Get](#get) To edit questions you may submit questions in the format \"question_edit_{id}=updatedquestion\" where id is the id of the question. To clear an existing question for the event survey, just submit question_edit_{id} with an empty value.\n\nOrganizers may publish a draft event by posting with the \"publish_status\" request parameter set to \"published\". Organizers and hosts of the event may also optionally announce an unannounced event by posting with the \"announce\" request parameter set to \"true\""
},
"EditEventCommentLike": {
"version": "2",
"name": "EditEventCommentLike",
"httpMethod": "POST",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Like a given Event comment",
"uri": "/2/event_comment_like/{id}",
"notes": "Only authorization parameters are needed. :id in the path should be the id of the comment you are liking"
},
"EditEventCommentSubscribe": {
"version": "2",
"name": "EditEventCommentSubscribe",
"httpMethod": "POST",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
}
},
"summary": "Subscribe to notifications on updates to a given comment thread",
"uri": "/2/event_comment_subscribe/{id}",
"notes": "Only authorization parameters are needed. :id in the path should be id of comment being replied to which you are subscribing to notifications for"
},
"EditMember": {
"version": "2",
"name": "EditMember",
"httpMethod": "POST",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"birthday": {
"location": "query",
"required": false,
"description": "Day you were born. Format should be in the form of yyyy or mmddyyyy. A value of -1 indicates that birthday data should be cleared."
},
"zip": {
"location": "query",
"required": false,
"description": "Valid zip code for city"
},
"country": {
"location": "query",
"required": false,
"description": "Valid country code for your location"
},
"hometown": {
"location": "query",
"required": false,
"description": "Hometown of member. Can not be longer than 64 characters"
},
"remove_topics": {
"location": "query",
"required": false,
"description": "Comma-delimited list of topic ids to remove from your alert list"
},
"gender": {
"location": "query",
"required": false,
"description": "Your gender (used for better recommendations). Valid values are be one of other, none, female, male"
},
"photo_id": {
"location": "query",
"required": false,
"description": "A valid photo_id from the member's photos to set as the main profile photo. A value of 0 will unset the current photo"
},
"city": {
"location": "query",
"required": false,
"description": "City name for your location"
},
"topics_privacy": {
"location": "query",
"required": false,
"description": "Controls the visibility of the member's topics. May be one of visible, hidden"
},
"facebook_privacy": {
"location": "query",
"required": false,
"description": "Controls the visibility of the member's facebook connection. May be one of visible, hidden. If the member has not connected their Facebook account, attempts to set this preference will do nothing."
},
"bio": {
"location": "query",
"required": false,
"description": "Free form text passage about you. must be less than 250 characters"
},
"lon": {
"location": "query",
"required": false,
"description": "longitude of city"
},
"groups_privacy": {
"location": "query",
"required": false,
"description": "Controls the visibility of the member's groups. May be one of visible, hidden"
},
"add_topics": {
"location": "query",
"required": false,
"description": "Comma-delimited list of topics ids to add to your alert list"
},
"sync_photo": {
"location": "query",
"required": false,
"description": "When set to true, this parameter will sync all of the group profile photos for the member with the provided photo_id"
},
"name": {
"location": "query",
"required": false,
"description": "The name of the current member"
},
"bio_privacy": {
"location": "query",
"required": false,
"description": "Controls the visibility of the member's bio. May be one of visible, hidden"
},
"photos_privacy": {
"location": "query",
"required": false,
"description": "Controls the visibility of the member's photos. May be one of visible, hidden"
},
"lang": {
"location": "query",
"required": false,
"description": "Language preference used on the site. Valid values are en_us, de, es, fr, it, pt"
},
"radius": {
"location": "query",
"required": false,
"description": "radius, in miles to search for city given a lat and lon. default 25.0, max 100.0"
},
"lat": {
"location": "query",
"required": false,
"description": "latitude of city"
},
"messaging_pref": {
"location": "query",
"required": false,
"description": "This specifies the member's preference for being contacted from members on the site. Possible values are \"orgs_only\" meaning only group organizers can contact you, \"groups_only\" meaning only members of your group can contact you, or \"all_members\" meaning all members may contact you."
},
"city_id": {
"location": "query",
"required": false,
"description": "Valid city id from /2/cities method"
}
},
"summary": "Edit the authorized member's attributes",
"uri": "/2/member/{id}",
"notes": "This method requires tls. Only the authorized user may edit their own properties. A city may be provided by either a city_id or a combination of lat and lon"
},
"EditProfile": {
"version": "2",
"name": "EditProfile",
"httpMethod": "POST",
"parameters": {
"gid": {
"location": "uri",
"required": true,
"description": null
},
"mid": {
"location": "uri",
"required": true,
"description": null
},
"site_name": {
"location": "query",
"required": false,
"description": "Name of member's site. Max length is 32"
},
"add_role": {
"location": "query",
"required": false,
"description": "Allows those with permission to assign one of the following roles: coorganizer, event_organizer, assistant_organizer"
},
"photo_id": {
"location": "query",
"required": false,
"description": "photo_id of the photo to use for this profile. set to 0 to unset the current photo"
},
"site_url": {
"location": "query",
"required": false,
"description": "Link to member's site. Max length is 80"
},
"intro": {
"location": "query",
"required": false,
"description": "Provides a Member an opportunity to tell the group about themselves"
},
"new_photo": {
"location": "query",
"required": false,
"description": "file upload for a new member photo"
},
"title": {
"location": "query",
"required": false,
"description": "An organizer-defined member title."
},
"remove_role": {
"location": "query",
"required": false,
"description": "Allows those with permission to remove one of the following roles: coorganizer, event_organizer, assistant_organizer"
},
"answer_{qid}": {
"location": "query",
"required": false,
"description": "Answers to questions from groups API join_info question fields"
}
},
"summary": "Update a member's group profile",
"uri": "/2/profile/{gid}/{mid}",
"notes": "The `gid` and `mid` in this method's path are group and member IDs, both needed to uniquely identify the member profile to be edited. An authenticated user may update their own profile by substituting \"self\" for the `mid`. All POST parameters are optional unless required by the group. Only the organizer of the group may edit the member's `title` and `role` within the group. Those are the only things the organizer may edit. When requesting to set a role with `add_role` the member's previous role will be cleared. Members may edit all other fields of their own profiles with the exception of `title`, `add_role`, and `remove_role`. This method requires an HTTP POST."
},
"GetCategories": {
"version": "2",
"name": "GetCategories",
"httpMethod": "GET",
"parameters": {
"fields": {
"location": "query",
"required": false,
"description": "Parameter for requesting optional response properties"
},
"member": {
"location": "query",
"required": false,
"description": "order by recommendations for authorized member (deprecated)"
},
"shortname": {
"location": "query",
"required": false,
"description": "(default order) ascending"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns a list of Meetup group categories",
"uri": "/2/categories",
"notes": "No parameters required parameters"
},
"GetCities": {
"version": "2",
"name": "GetCities",
"httpMethod": "GET",
"parameters": {
"country": {
"location": "query",
"required": false,
"description": "A valid country code"
},
"query": {
"location": "query",
"required": false,
"description": "Search term and/or zip to look for (if this is specified, max result size limited to 10)"
},
"lon": {
"location": "query",
"required": false,
"description": "Longitude to search"
},
"state": {
"location": "query",
"required": false,
"description": "A valid state code for the given country, if the country has states"
},
"radius": {
"location": "query",
"required": false,
"description": "When searching by lat/lon only, specify a radius to search (default 50 miles)"
},
"lat": {
"location": "query",
"required": false,
"description": "Latitude to search"
},
"distance": {
"location": "query",
"required": false,
"description": "When lat/lon/query provided, sort matches by distance to coordinates"
},
"size": {
"location": "query",
"required": false,
"description": "(default order) number of members in the city: descending"
},
"smart": {
"location": "query",
"required": false,
"description": "Sort by size, but if a match is close to given lat/lon, float to top. Only works when query provided"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns Meetup cities. This method supports search by latitude/longitude/radius, by country/state, by query term/zip, or a combination of all of these. Location-only searches by lat and lon return all cities within a radius of the provided coordinates. Searches with a query return up to 10 cities matching the term, and can be sorted by size or distance to a given coordinate. 'smart' ordering can be used to return the match(es) with the highest member_count, unless a smaller size match exists nearby the given coordinates. Query searches are supported for country but not country and state",
"uri": "/2/cities",
"notes": "This method requires no authentication but is subject to [request limiting](/meetup_api/docs/#limits) based on client IP . This search is location based. A lat and lon must be supplied together or a query or the search will be based on your geo-located ip"
},
"GetConcierge": {
"version": "2",
"name": "GetConcierge",
"httpMethod": "GET",
"parameters": {
"zip": {
"location": "query",
"required": false,
"description": "A valid US zip code, limits the returned groups to those within radius miles"
},
"country": {
"location": "query",
"required": false,
"description": "A valid country code"
},
"city": {
"location": "query",
"required": false,
"description": "A valid city"
},
"lon": {
"location": "query",
"required": false,
"description": "A valid longitude, limits the returned group events to those within radius miles"
},
"text_format": {
"location": "query",
"required": false,
"description": "Format of the description text, \"html\", \"plain\", or \"simplehtml\". Defaults to \"html\""
},
"category_id": {
"location": "query",
"required": false,
"description": "Comma delimited list of category ids to limit recommendations to"
},
"page_token": {
"location": "query",
"required": false,
"description": "An opaque string used to page through results. This can be found appended to the 'next' link in the meta section of the response."
},
"state": {
"location": "query",
"required": false,
"description": "If searching in a country with states, a valid 2 character state code"
},
"time": {
"location": "query",
"required": false,
"description": "ascending time is the default and only ordering"
},
"topic_id": {
"location": "query",
"required": false,
"description": "Comma delimited list of topics to help inform recommendation"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius, in miles for geographic requests, defaults to the member's preferred radius or 0.5 -- maximum 100. May also be specified as \"smart\", a dynamic radius based on the number of active groups in the area"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"with_friends": {
"location": "query",
"required": false,
"description": "Boolean parameter. When set to true, events hosted by groups you have friends in will be recommended"
},
"self_groups": {
"location": "query",
"required": false,
"description": "set to \"include\" or \"exclude\" groups the authorized member belongs to. The default is \"include\". This includes groups in locations that may differ than the provided location"
},
"lat": {
"location": "query",
"required": false,
"description": "A valid latitude, limits the returned group events to those within radius miles"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Recommends upcoming meetups for the authorized member in a given location and in thier groups",
"uri": "/2/concierge",
"notes": "For geo-based requests, you may provide a location in one of three ways. By `lat` and `lon`, by `zip`, or by `country`, `city`, and optionally a `state`, if the provided country has states.\n\nIf the server is unable to produce recommendations in a suitable amount of time, a 503 error will be returned. If no parameters are specified, Meetups are recommended for the upcoming week in the member's default location.\n\nPagination works a little differently in this method than in others. Rather than using \"offset\" and \"page\" request parameters, this method uses an opaque \"page_token\" request parameter to determine the page of results returned. If there are more results, the \"next\" property of the [meta section](/meetup_api/docs/#meta) of the response will contain the next page's page_token. The number of results returned is not deterministic but a best-effort attempt will be made to return at least some.\n"
},
"GetEvent": {
"version": "2",
"name": "GetEvent",
"httpMethod": "GET",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"limited_events": {
"location": "query",
"required": false,
"description": "Include limited event information for private groups that wish to expose only a small amount of information about their events. This includes just: id, name, utc_offset, time, duration, yes_rsvp_count, waitlist_count, group, visibility, timezone. Value must be true or false."
},
"text_format": {
"location": "query",
"required": false,
"description": "Format of the description in the response, \"html\" or \"plain\". Defaults to \"html\""
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Retrieve a single meetup",
"uri": "/2/event/{id}",
"notes": "Only authorization parameters are needed. Some groups, while remaining private, still wish to show some information about their events. You can include these events in results using the `limited_events` request parameter."
},
"GetEventComment": {
"version": "2",
"name": "GetEventComment",
"httpMethod": "GET",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "comma-separate list of optional fields"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Retrieve a single event comment or reply",
"uri": "/2/event_comment/{id}",
"notes": "Only authorization parameters are needed."
},
"GetEventCommentLikes": {
"version": "2",
"name": "GetEventCommentLikes",
"httpMethod": "GET",
"parameters": {
"comment_id": {
"location": "query",
"required": false,
"description": "Return likes for a given comment_id"
},
"created": {
"location": "query",
"required": false,
"description": "Order by the time the member liked like comment (default: descending)"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Api for listing likes of a given event comment",
"uri": "/2/event_comment_likes",
"notes": "At least one of the required parameters must be supplied with the request."
},
"GetEventComments": {
"version": "2",
"name": "GetEventComments",
"httpMethod": "GET",
"parameters": {
"comment_id": {
"location": "query",
"required": false,
"description": "Return comments for a given set of comment IDs, separated by commas"
},
"member_id": {
"location": "query",
"required": false,
"description": "Return comments for the given member_ids, separated by commas"
},
"fields": {
"location": "query",
"required": false,
"description": "Optionally accepts the value \"member_photo\" or \"notifications\""
},
"group_id": {
"location": "query",
"required": false,
"description": "Return comments in groups with these ID numbers, separated by commas"
},
"event_id": {
"location": "query",
"required": false,
"description": "Return comments on these events, separated by commas."
},
"name": {
"location": "query",
"required": false,
"description": "Order by the name of the member"
},
"thread": {
"location": "query",
"required": false,
"description": "Order by comment threads, those with the most recent activity are listed first. Only one event may be provided and desc not supported. Also note that with this ordering, *replies* are excluded from pagination accounting. Only top-level comments will be capped at the page size."
},
"time": {
"location": "query",
"required": false,
"description": "Order by the time that each rating was posted (default: descending)"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "This method returns messages that appear under \"Talk about this Meetup\". To post messages, see the corresponding write method.",
"uri": "/2/event_comments",
"notes": "At least one of the required parameters must be supplied with the request."
},
"GetEventRatings": {
"version": "2",
"name": "GetEventRatings",
"httpMethod": "GET",
"parameters": {
"member_id": {
"location": "query",
"required": false,
"description": "The ID of a member to filter ratings on"
},
"event_id": {
"location": "query",
"required": false,
"description": "The ID of the event to fetch ratings data for"
},
"rating": {
"location": "query",
"required": false,
"description": "Order by the value for each rating posted"
},
"time": {
"location": "query",
"required": false,
"description": "Order by the time that each rating was posted"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "API method for accessing Meetup comments",
"uri": "/2/event_ratings",
"notes": "At least one of the required parameters must be supplied with the request."
},
"GetEvents": {
"version": "2",
"name": "GetEvents",
"httpMethod": "GET",
"parameters": {
"rsvp": {
"location": "query",
"required": false,
"description": "Filters events by the currently authenticated member's RSVP status. May be a comma delimited list of \"yes\", \"no\", \"waitlist\", \"maybe\" or \"none\""
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Path to group from meetup.com, no slashes"
},
"event_id": {
"location": "query",
"required": false,
"description": "Multiple ids may be separated with commas"
},
"group_id": {
"location": "query",
"required": false,
"description": "Multiple ids may be separated with commas"
},
"limited_events": {
"location": "query",
"required": false,
"description": "Include limited event information for private groups that wish to expose only a small amount of information about their events. This includes just: id, name, utc_offset, time, duration, yes_rsvp_count, waitlist_count, group, visibility, timezone. Value must be true or false."
},
"text_format": {
"location": "query",
"required": false,
"description": "Format of the description text, \"html\" or \"plain\". Defaults to \"html\""
},
"group_domain": {
"location": "query",
"required": false,
"description": "Group custom domain"
},
"venue_id": {
"location": "query",
"required": false,
"description": "Multiple ids may be separated with commas"
},
"member_id": {
"location": "query",
"required": false,
"description": "Single member id, to find events in this member's groups"
},
"time": {
"location": "query",
"required": false,
"description": "(default order) ascending"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"status": {
"location": "query",
"required": false,
"description": "Status may be \"upcoming\", \"past\", \"proposed\", \"suggested\", \"cancelled\", \"draft\" or multiple separated by a comma. The default is \"upcoming\", which includes Meetups that are happening now according to their **duration**. Meetups that are \"proposed\" or \"suggested\" do not have a date assigned; the former are listed on the site as official while the latter appear as in the making. Drafts are only visible to organizers of groups hosting the events."
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Access Meetup events using a group, member, or event id. Events in private groups are available only to authenticated members of those groups. To search events by topic or location, see [Open Events](/meetup_api/docs/2/open_events).",
"uri": "/2/events",
"notes": "At least one of the required parameter(s) must be supplied with the request. Some groups, while remaining private, still wish to show some information about their events. You can include these events in results using the `limited_events` request parameter."
},
"GetGroups": {
"version": "2",
"name": "GetGroups",
"httpMethod": "GET",
"parameters": {
"topic": {
"location": "query",
"required": false,
"description": "Only return groups in the specified topic [one topic allowed]"
},
"groupnum": {
"location": "query",
"required": false,
"description": "Return the group with this topic and number"
},
"zip": {
"location": "query",
"required": false,
"description": "A valid US zip code, limits the returned groups to those within radius miles."
},
"lat": {
"location": "query",
"required": false,
"description": "A valid latitude and longitude, limits the returned groups to those within radius miles"
},
"lon": {
"location": "query",
"required": false,
"description": "A valid latitude and longitude, limits the returned groups to those within radius miles"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "one or more separated by commas, includes no slashes"
},
"group_id": {
"location": "query",
"required": false,
"description": "one or more separated by commas"
},
"organizer_id": {
"location": "query",
"required": false,
"description": "one or more organizer IDs, separated by commas"
},
"domain": {
"location": "query",
"required": false,
"description": "one or more custom group domains, separated by commas"
},
"member_id": {
"location": "query",
"required": false,
"description": "one or more separated by commas, for groups this member belongs to"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius, in miles for geographic requests, default 25 -- maximum 100"
},
"fields": {
"location": "query",
"required": false,
"description": "optional result fields, separated by commas."
},
"category_id": {
"location": "query",
"required": false,
"description": "Only return groups in the specified category. [one category allowed]"
},
"country": {
"location": "query",
"required": false,
"description": "A valid country code, city and for the US, State. limits the returned groups to those within radius miles"
},
"city": {
"location": "query",
"required": false,
"description": "A valid country code, city and for the US, State. limits the returned groups to those within radius miles"
},
"state": {
"location": "query",
"required": false,
"description": "A valid country code, city and for the US, State. limits the returned groups to those within radius miles"
},
"name": {
"location": "query",
"required": false,
"description": "the name of the group"
},
"location": {
"location": "query",
"required": false,
"description": "group location, country, state [if present], city"
},
"id": {
"location": "query",
"required": false,
"description": "group creation time [newest first]"
},
"members": {
"location": "query",
"required": false,
"description": "number of members [largest first]"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Fetch information about Meetup Groups.",
"uri": "/2/groups",
"notes": "At least one of the required parameter(s) must be supplied with the request. Answers to questions are expected to follow the naming convention: answer_{question_id}=myanswer when joining with the [Profile Create](/meetup_api/docs/2/profile) method."
},
"GetMember": {
"version": "2",
"name": "GetMember",
"httpMethod": "GET",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "comma-separate list of optional fields"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Retrieve a single member",
"uri": "/2/member/{id}",
"notes": "Only authorization parameters are needed."
},
"GetMembers": {
"version": "2",
"name": "GetMembers",
"httpMethod": "GET",
"parameters": {
"topic": {
"location": "query",
"required": false,
"description": "Return members for the group with given topic and number"
},
"groupnum": {
"location": "query",
"required": false,
"description": "Return members for the group with given topic and number"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Return members for the group with the given custom URL path"
},
"member_id": {
"location": "query",
"required": false,
"description": "Return the member with this ID"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"group_id": {
"location": "query",
"required": false,
"description": "Return members in groups with these ID numbers, separated by commas"
},
"service": {
"location": "query",
"required": false,
"description": "Match users by the external services they've linked to their member account, specified as \"servicename:identifier\". For example, \"service=twitter:@MeetupAPI\" finds any member account that lists @MeetupAPI as its Twitter name (none, currently). You can query against several at a time by separating them with commas. Facebook identifiers should be provided as numeric values"
},
"name": {
"location": "query",
"required": false,
"description": "the name of the member (default order)"
},
"visited": {
"location": "query",
"required": false,
"description": "member's most recent activity"
},
"joined": {
"location": "query",
"required": false,
"description": "time member joined Meetup"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "API method for accessing members of Meetup Groups",
"uri": "/2/members",
"notes": "At least one of the required parameter(s) must be supplied with the request. If any of the groups you specify are private, you will not see its members listed in the result set unless you are a member of that group."
},
"GetOpenEvents": {
"version": "2",
"name": "GetOpenEvents",
"httpMethod": "GET",
"parameters": {
"and_text": {
"location": "query",
"required": false,
"description": "Changes the interpretation of the \"text\" field from OR'd terms to AND'd terms"
},
"lat": {
"location": "query",
"required": false,
"description": "A valid latitude, limits the returned group events to those within radius miles"
},
"zip": {
"location": "query",
"required": false,
"description": "A valid US zip code, limits the returned groups to those within radius miles"
},
"country": {
"location": "query",
"required": false,
"description": "A valid country code"
},
"topic": {
"location": "query",
"required": false,
"description": "Return events in the specified topic or topics specified by commas. This is the topic \"urlkey\" returned by the Topics method. If all supplied topics are unknown, a 400 error response is returned with the code \"badtopic\"."
},
"city": {
"location": "query",
"required": false,
"description": "A valid city"
},
"limited_events": {
"location": "query",
"required": false,
"description": "Include limited event information for private groups that wish to expose only a small amount of information about their events. This includes just: id, name, utc_offset, time, duration, yes_rsvp_count, waitlist_count, group, visibility, timezone. Value must be true or false."
},
"text_format": {
"location": "query",
"required": false,
"description": "Format of the description text, \"html\" or \"plain\". Defaults to \"html\""
},
"state": {
"location": "query",
"required": false,
"description": "If searching in a country with states, a valid 2 character state code"
},
"text": {
"location": "query",
"required": false,
"description": "Events that contain the given term or terms somewhere in their content. The terms are OR'd by default. Separate terms with \" AND \" for events that have combined terms. To have terms automatically AND'd, set the \"and_text\" to true"
},
"category": {
"location": "query",
"required": false,
"description": "Return events in the specified category or categories specified by commas. This is the category id returned by the Categories method."
},
"lon": {
"location": "query",
"required": false,
"description": "A valid longitude, limits the returned group events to those within radius miles"
},
"time": {
"location": "query",
"required": false,
"description": "(default order) ascending"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius, in miles for geographic requests, default 25.0 -- maximum 100. May also be specified as \"smart\", a dynamic radius based on the number of active groups in the area"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"status": {
"location": "query",
"required": false,
"description": "Status may be \"upcoming\", \"past\" or both separated by a comma. The default is \"upcoming\" only"
},
"trending": {
"location": "query",
"required": false,
"description": "you will likely want to specify \"desc=true\" to get the best trending results first."
},
"distance": {
"location": "query",
"required": false,
"description": "ordering is approximate and will not exactly match the values in the \"distance\" field."
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Searches for recent and upcoming public events hosted by Meetup groups. Its search window is the past one month through the next three months, and is subject to change. Open Events is optimized to search for current events by location, category, topic, or text, and only lists Meetups that have **3 or more RSVPs**. The number or results returned with each request is not guaranteed to be the same as the page size due to secondary filtering. If you're looking for a particular event or events within a particular group, use the standard [Events](/meetup_api/docs/2/events/) method.",
"uri": "/2/open_events",
"notes": "At least one of the required parameter(s) must be supplied with the request.\n\nFor geo-based requests, you may provide a location in one of three ways. By `lat` and `lon`, by `zip`, or by `country`, `city`, and optionally a `state`, if the provided country has states.\n\nSome groups, while remaining private, still wish to show some information about their events. You can include these events in results using the `limited_events` request parameter."
},
"GetOpenVenues": {
"version": "2",
"name": "GetOpenVenues",
"httpMethod": "GET",
"parameters": {
"lat": {
"location": "query",
"required": false,
"description": "A valid latitude, limits the returned venues to those within radius miles"
},
"state": {
"location": "query",
"required": false,
"description": "For the US, a valid 2 character state code"
},
"text": {
"location": "query",
"required": false,
"description": "Venues that contain the given term or terms somewhere in their content. Separate terms with \" AND \" for venues that have combined terms. Append a trailing * to treat this as a prefix search"
},
"zip": {
"location": "query",
"required": false,
"description": "A valid US zip code, limits the returned venues to those within radius miles"
},
"country": {
"location": "query",
"required": false,
"description": "A valid country code."
},
"lon": {
"location": "query",
"required": false,
"description": "A valid longitude, limits the returned venues to those within radius miles"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Returns venues with location relative to the group associated with this urlname"
},
"city": {
"location": "query",
"required": false,
"description": "A valid city"
},
"radius": {
"location": "query",
"required": false,
"description": "Radius, in miles for geographic requests, default 25.0 -- maximum 100.0"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"rating": {
"location": "query",
"required": false,
"description": "average member rating"
},
"distance": {
"location": "query",
"required": false,
"description": "(default order) ordering is approximate and will not exactly match the values in the \"distance\" field."
},
"rating_count": {
"location": "query",
"required": false,
"description": "number of member ratings."
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Searches for public venues within a given geo space. To search for specific venues that your group has used, use the [Venues](/meetup_api/docs/2/venues) method",
"uri": "/2/open_venues",
"notes": "At least one of the required parameter(s) must be supplied with the request. If you are not able to provide a relative location you may supply a group_urlname which this method will use to infer location from. You can perform prefix searching by appending a * character to your query"
},
"GetPhotoAlbums": {
"version": "2",
"name": "GetPhotoAlbums",
"httpMethod": "GET",
"parameters": {
"photo_album_id": {
"location": "query",
"required": false,
"description": "Return albums with these IDs, separated by commas"
},
"group_id": {
"location": "query",
"required": false,
"description": "Return albums in groups with these ID, separated by commas"
},
"event_id": {
"location": "query",
"required": false,
"description": "Return photo albums for these event ids, separated by commas"
},
"time": {
"location": "query",
"required": false,
"description": "creation date and time"
},
"title": {
"location": "query",
"required": false,
"description": "title of the album"
},
"updated": {
"location": "query",
"required": false,
"description": "album updated field"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "This method returns photo albums associated with Meetup groups. To create albums, see the corresponding write method.",
"uri": "/2/photo_albums",
"notes": "At least one of the required parameter(s) must be supplied with the request."
},
"GetPhotoComments": {
"version": "2",
"name": "GetPhotoComments",
"httpMethod": "GET",
"parameters": {
"member_id": {
"location": "query",
"required": false,
"description": "Return comments for the given member_ids, separated by commas. The member ids must match up with one of the provided photo ids"
},
"photo_id": {
"location": "query",
"required": false,
"description": "Return comments on these photos, separated by commas"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output."
},
"name": {
"location": "query",
"required": false,
"description": "the name of the member"
},
"time": {
"location": "query",
"required": false,
"description": "Order by the time that each comment was posted"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "This method returns comments on meetup photos. To post messages, see the corresponding write method",
"uri": "/2/photo_comments",
"notes": "At least one of the required parameters must be supplied by the request."
},
"GetPhotos": {
"version": "2",
"name": "GetPhotos",
"httpMethod": "GET",
"parameters": {
"photo_id": {
"location": "query",
"required": false,
"description": "Photo IDs, separated by commas"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Group urlnames, separated by commas"
},
"event_id": {
"location": "query",
"required": false,
"description": "Event ids, separated by commas. These may contain alphanumeric autoscheduled event ids, only photos of reified events will be returned"
},
"tagged": {
"location": "query",
"required": false,
"description": "Tagged with members with these IDs, separated by commas"
},
"photo_album_id": {
"location": "query",
"required": false,
"description": "Photo Album IDs, separated by commas"
},
"member_id": {
"location": "query",
"required": false,
"description": "Uploaded by members with these IDs, separated by commas"
},
"time": {
"location": "query",
"required": false,
"description": "creation date and time"
},
"fields": {
"location": "query",
"required": false,
"description": "comma-delimited optional response properties such as member_country, member_city, member_state, and self"
},
"group_id": {
"location": "query",
"required": false,
"description": "Group IDs, separated by commas"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "This method returns photos by member, group, album, event, photo ID, or tagged member.",
"uri": "/2/photos",
"notes": "At least one of the required parameter(s) must be supplied with the request."
},
"GetProfile": {
"version": "2",
"name": "GetProfile",
"httpMethod": "GET",
"parameters": {
"gid": {
"location": "uri",
"required": true,
"description": null
},
"mid": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Retrieves a single group profile",
"uri": "/2/profile/{gid}/{mid}",
"notes": "Only authorization parameters are needed."
},
"GetProfiles": {
"version": "2",
"name": "GetProfiles",
"httpMethod": "GET",
"parameters": {
"topic": {
"location": "query",
"required": false,
"description": "Group identification by topic, deprecated"
},
"groupnum": {
"location": "query",
"required": false,
"description": "Group identification by topic, deprecated"
},
"role": {
"location": "query",
"required": false,
"description": "if \"leads\", only profiles for members of the leadership team are included"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "Return profiles for the group with the given custom URL path"
},
"member_id": {
"location": "query",
"required": false,
"description": "the id of the member"
},
"fields": {
"location": "query",
"required": false,
"description": "comma delimited list of optional response properties. A value of \"membership_dues\" will populate membership dues for the authorized user or members of the groups the authorized user organizes"
},
"group_id": {
"location": "query",
"required": false,
"description": "Return profiles in the group with this ID"
},
"status": {
"location": "query",
"required": false,
"description": "Status filter for members. Only organizers may see pending. Request must also contain a `group_id` or `group_urlname`. Status may be one of active, pending"
},
"joined": {
"location": "query",
"required": false,
"description": "time member joined this group"
},
"interesting": {
"location": "query",
"required": false,
"description": "Order which may be interesting to the authorized member"
},
"name": {
"location": "query",
"required": false,
"description": "the name of the member"
},
"visited": {
"location": "query",
"required": false,
"description": "last visit to group pages (default order)"
},
"updated": {
"location": "query",
"required": false,
"description": "profile updated field"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "This method returns member *profiles* associated with a particular group. Meetup members have separate profiles for each group they join.",
"uri": "/2/profiles",
"notes": "At least one of the required parameter(s) must be supplied with the request. If any of the groups you specify are private, you will not see its members listed in the result set unless you are a member of that group. If querying for member_id alone, the member's 'hide groups' preference will be honored. 'Interesting' ordered searches only support searching by group_urlname or group_id. Only one of those may be supplied. "
},
"GetRsvp": {
"version": "2",
"name": "GetRsvp",
"httpMethod": "GET",
"parameters": {
"id": {
"location": "uri",
"required": true,
"description": null
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Retrieve a single RSVP",
"uri": "/2/rsvp/{id}",
"notes": "Only authorization parameters are needed."
},
"GetRsvps": {
"version": "2",
"name": "GetRsvps",
"httpMethod": "GET",
"parameters": {
"fields": {
"location": "query",
"required": false,
"description": "Parameter for requesting optional response properties, set to other_services for a list of third party services"
},
"rsvp": {
"location": "query",
"required": false,
"description": "Filters response on RSVP status. \"yes\" if member RSVP'd yes otherwise \"no\""
},
"event_id": {
"location": "query",
"required": false,
"description": "Multiple alphanumeric ids may be separated with commas"
},
"name": {
"location": "query",
"required": false,
"description": "the name of the attendee"
},
"event": {
"location": "query",
"required": false,
"description": "the id or time of the event"
},
"social": {
"location": "query",
"required": false,
"description": "social connections of the authenticated member"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Query for Event RSVPs by event",
"uri": "/2/rsvps",
"notes": "At least one of the required parameter(s) must be supplied with the request."
},
"GetTopicCategories": {
"version": "2",
"name": "GetTopicCategories",
"httpMethod": "GET",
"parameters": {
"fields": {
"location": "query",
"required": false,
"description": "Parameter for requesting optional response properties"
},
"lat": {
"location": "query",
"required": false,
"description": "Use a given lat/lon/radius (miles) to search best_topics for instead of using the member's lat/lon. When present, all three are required."
},
"lon": {
"location": "query",
"required": false,
"description": "Use a given lat/lon/radius (miles) to search best_topics for instead of using the member's lat/lon. When present, all three are required."
},
"radius": {
"location": "query",
"required": false,
"description": "Use a given lat/lon/radius (miles) to search best_topics for instead of using the member's lat/lon. When present, all three are required."
},
"shortname": {
"location": "query",
"required": false,
"description": "(default order) ascending"
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Returns a list of Meetup topic categories",
"uri": "/2/topic_categories",
"notes": "No parameters required parameters"
},
"GetVenues": {
"version": "2",
"name": "GetVenues",
"httpMethod": "GET",
"parameters": {
"venue_id": {
"location": "query",
"required": false,
"description": "multiple ids may be separated with commas"
},
"fields": {
"location": "query",
"required": false,
"description": "Request that additional fields (separated by commas) be included in the output"
},
"group_id": {
"location": "query",
"required": false,
"description": "multiple ids may be separated with commas"
},
"group_urlname": {
"location": "query",
"required": false,
"description": "path to group from meetup.com, no slashes"
},
"event_id": {
"location": "query",
"required": false,
"description": "multiple ids may be separated with commas"
},
"rating": {
"location": "query",
"required": false,
"description": "average member rating"
},
"distance": {
"location": "query",
"required": false,
"description": "(default order) ordering is approximate and will not exactly match the values in the \"distance\" field."
},
"rating_count": {
"location": "query",
"required": false,
"description": "number of member ratings."
},
"page": {
"location": "query",
"required": false,
"description": null
},
"offset": {
"location": "query",
"required": false,
"description": null
},
"desc": {
"location": "query",
"required": false,
"description": null
},
"order": {
"location": "query",
"required": false,
"description": null
},
"only": {
"location": "query",
"required": false,
"description": null
},
"omit": {
"location": "query",
"required": false,
"description": null
}
},
"summary": "Search for Meetup venues by one of your groups, events, or venue identifiers. For a full text search on public venues use [OpenVenues](/meetup_api/docs/2/open_venues).",
"uri": "/2/venues",
"notes": "At least one of the required parameter(s) must be supplied with the request. You can use either group_urlname or group_id to filter by groups but not both."
}
}
}PK SEH̲ ( meetup_api-0.1.dist-info/DESCRIPTION.rstAPI Client for Meetup
=====================
|pypi-version| |build-status| |docs| |python-versions| |license|
A Python API client for Meetup_.
The official `Meetup REST API documentation`_ has a complete list of available API methods and their descriptions. A listing of implemented API methods is documented at `API Client Details`_.
Quick Start
===============
For more information, take a look at the `Getting Started`_ section of the documentation.
Installation
------------
Assuming you have Python_ already, install the dependencies using ``pip``, then install the package:
.. code-block:: bash
$ cd /path/to/meetup-api
$ pip install -r requirements.txt
$ pip install meetup-api
Initialize Client and Execute API Call
--------------------------------------
.. code-block:: python
>>> import meetup.api
>>> client = meetup.api.Client('my_special_api_key_value')
>>>
>>> type(client)