Articles in this section

I want to create a large number of groups within my Meetup network. Can I leverage Meetup's API to do that in bulk?

If you need to create multiple groups at scale, you can use Meetup's GraphQL API to programmatically create groups through a two-step process: creating a draft and then publishing it.

 

Prerequisites

  • Active Meetup Pro subscription

  • API access with OAuth authentication configured

  • Valid OAuth access token

Learn more about setting up API access.

 

How Group Creation Works

Group creation happens in two steps:

  1. Create a draft using the createGroupDraft mutation

  2. Publish the draft using the publishGroupDraft mutation

This mirrors the group creation flow in the Meetup interface, where groups are drafted and reviewed before being published.

 

Step 1: Create a Group Draft

Use the createGroupDraft mutation to create a draft of your new group:

mutation createGroupDraft {
 createGroupDraft(
   input: {
     name: "My Group's name"
     customMembersLabel: "Meetuppers"
     description: "<p>A group for technology enthusiasts in New York City to discuss the latest trends, share knowledge, and network.</p>"
     urlname: "my-group-name"
     topics: ["12345", "67890"]
     location: { pointLocation: { latitude: 40.7128, longitude: -74.0060 } }
   }
 ) {
   token
   errors {
     code
     message
   }
 }
}

 

Required Fields

  • name: Display name for the group (max 60 characters)
  • description: HTML-formatted description explaining the group's purpose
  • urlname: URL-friendly identifier (6-60 characters, will appear in the group's URL)
  • location: Geographic coordinates (latitude and longitude)

 

Optional Fields

  • customMembersLabel: Custom label for group members (e.g., "Techies", "Runners")
  • topics: Array of topic IDs to categorize your group

 

Response

If successful, you'll receive a token identifying the draft:

{
 "data": {
   "createGroupDraft": {
     "token": "DRAFT-TOKEN-HERE",
     "errors": []
   }
 }
}

👉 Important: Save this token - you'll need it to publish the group in the next step.

 

Step 2: Publish the Group Draft

Once you have the draft token, use the publishGroupDraft mutation to create the group:

mutation PublishGroupDraft {
 publishGroupDraft(input: {
   token: "DRAFT-TOKEN-HERE"
 }) {
   group {
     id
     name
     urlname
     link
   }
   errors {
     code
     message
     field
   }
 }
}

 

Response

If successful, you'll receive the created group's details:

{
 "data": {
   "publishGroupDraft": {
     "group": {
       "id": "12345678",
       "name": "My Group's name",
       "urlname": "my-group-name",
       "link": "https://www.meetup.com/my-group-name"
     },
     "errors": []
   }
 }
}

Creating Multiple Groups

To create multiple groups from a CSV file, you can write a script that:

  1. Reads group data (name, location, description) from your CSV

  2. For each row:

    • Calls createGroupDraft with the group details

    • Captures the returned token

    • Calls publishGroupDraft with that token

  3. Handles any errors and logs results

 

Rate Limiting

Be mindful of API rate limits (500 points per 60 seconds). Add appropriate delays between requests when creating groups in bulk.

 

Getting Topic IDs

To find topic IDs for your groups, you can query available topics through the API or explore topics on Meetup.com. 

 

Error Handling

Both mutations return an errors array. Common errors include:

  • Invalid or duplicate urlname

  • Missing required fields

  • Invalid coordinates

  • Rate limit exceeded

Always check the errors array in the response and handle failures appropriately in your script.

 

Pro Network Integration

Groups created through the API can be added to your Pro network through the Pro Dashboard (Groups tab → Add existing group) or by contacting your account administrator.

Was this article helpful?
0 out of 0 found this helpful