### GraphQL Playground Source: https://www.meetup.com/api/playground Access the GraphQL Playground to interact with the Meetup API using GraphQL queries. This section includes an example query and variables for fetching event details. ```APIDOC ## GraphQL Playground ### Description The Meetup API supports GraphQL. Use the playground to construct and execute queries. ### Method GET (for playground access) ### Endpoint `/websites/meetup_api/graphql` ### Request Example (GraphQL Query) ```graphql query($eventId: ID!) { event(id: $eventId) { title description dateTime } } ``` ### Request Example (Variables) ```json { "eventId": "276754274" } ``` ### Response Example (Success) ```json { "data": { "event": { "title": "Example Event Title", "description": "This is an example event description.", "dateTime": "2023-10-27T10:00:00Z" } } } ``` ``` -------------------------------- ### Get Suggested Network Events Source: https://www.meetup.com/api/schema Fetches suggested events for a Pro network based on specified filters. Pagination is not currently supported for this query. ```graphql query GetSuggestedNetworkEvents($input: ForwardConnectionInput, $filter: ProNetworkSuggestedEventsFilter!) { proNetwork { suggestedEvents(input: $input, filter: $filter) { edges { cursor node { id title description url dateTime } } pageInfo { hasNextPage endCursor } count } } } ``` -------------------------------- ### Querying with GraphQL - Basic Query Source: https://www.meetup.com/api/guide GraphQL queries return JSON with only the fields you specify. This example shows how to invoke the event query with an eventId and retrieve the title, description, and date. ```APIDOC ## Querying with GraphQL - Basic Query GraphQL queries return JSON with only the fields you specify. For example, the following invokes the event query with the eventId as an argument. The query returns the title, description, and date from an event. ### Query ```graphql query { event(id: "276754274") { title description dateTime } } ``` ### Response ```json { "data": { "event": { "title": "API test", "description": "API test description", "dateTime": "2021-03-15T09:52:53+09:00" } } } ``` ``` -------------------------------- ### Onboarding Events Connection Source: https://www.meetup.com/api/schema A connection for onboarding events, providing paginated lists. ```APIDOC ## OnboardingEventsConnection ### Description A connection for onboarding events, providing paginated lists. ### Fields - **pageInfo** (PageInfo) - REQUIRED - Information about pagination in this connection. - **count** (Int) - REQUIRED - The total number of edges. - **edges** (OnboardingEventsEdge) - REQUIRED - A list of edges, each containing an onboarding event. ``` -------------------------------- ### Get Event Featured Photo Source: https://www.meetup.com/api/guide This query retrieves information about the featured photo for a specific event, including its ID and base URL. ```APIDOC ## POST /v1/operations/event ### Description Retrieves details for a specific event, including its featured photo information. ### Method POST ### Endpoint /v1/operations/event ### Parameters #### Request Body - **query** (String) - Required - The GraphQL query string. - **variables** (Object) - Required - Variables for the query. - **eventId** (ID) - Required - The ID of the event. ### Request Example ```json { "query": "query($eventId: ID!) { event(id: $eventId) { id featuredEventPhoto { id baseUrl } } }", "variables": { "eventId": "283013941" } } ``` ### Response #### Success Response (200) - **data.event.id** (String) - The ID of the event. - **data.event.featuredEventPhoto.id** (String) - The ID of the featured event photo. - **data.event.featuredEventPhoto.baseUrl** (String) - The base URL for the featured event photo. #### Response Example ```json { "data": { "event": { "id": "283013941", "featuredEventPhoto": { "id": "501175080", "baseUrl": "https://secure-content.meetupstatic.com/images/classic-events/" } } } } ``` ### Notes Photo URLs can be constructed by concatenating the `baseUrl`, `id`, and desired format (e.g., `.webp`, `.jpg`) with dimensions. Example: `https://secure-content.meetupstatic.com/images/classic-events/501175080/676x380.webp` ``` -------------------------------- ### SubscriptionSummary Object Source: https://www.meetup.com/api/schema Provides a summary of an organizer's current subscription, including plan ID, status, payment processor, and member card details. ```APIDOC ## SubscriptionSummary Object ### Description The summary information of an organizer's current subscription. ### Fields - **id** (ID) - REQUIRED - Current plan id. - **status** (SubscriptionStatus) - REQUIRED - Current subscription status. - **processor** (PaymentProcessor) - The payment processor used for the current subscription. - **memberCard** (MemberStripeCard) - Current subscription card. - **source** (SubscriptionSource) - The source of this subscription's creation. - **providerProductId** (ID) - A provider specific product id ``` -------------------------------- ### Meetup API Migration Steps Source: https://www.meetup.com/api/guide Steps to migrate to the new Meetup GraphQL API, including updating the API URL, validating queries, and identifying specific issues. ```APIDOC ## Meetup API Migration ### Description This section outlines the steps required to migrate to the new Meetup GraphQL API. ### Steps 1. **Update API URL**: Change your API endpoint to `https://api.meetup.com/gql-ext`. 2. **Validate Query**: Use any GraphQL tool to validate your queries against the new API, leveraging its full schema introspection capability. 3. **Address Issues**: If a query is invalid, identify the specific errors and consult the major changes listed in the release notes. 4. **Contact Support**: If issues persist, contact Meetup support for assistance. ``` -------------------------------- ### Get Pro Network RSVPs Source: https://www.meetup.com/api/schema Retrieves positive RSVPs for a Pro network, sorted by update time. This query returns a connection object with page information and RSVP edges. ```graphql query GetProNetworkRsvps($input: ForwardConnectionInput) { proNetwork { rsvpsSearch(input: $input) { edges { cursor node { id eventId memberId response updatedAt } } pageInfo { hasNextPage endCursor } count } } } ``` -------------------------------- ### Get RSVP Surveys Source: https://www.meetup.com/api/schema Retrieves RSVP responses for events across the entire Pro network, with support for pagination and filtering. The result is a connection object containing page information and RSVP survey edges. ```graphql query GetRsvpSurveys($input: ForwardConnectionInput, $filter: RsvpSurveysFilter) { proNetwork { rsvpSurveys(input: $input, filter: $filter) { edges { cursor node { id eventId question answer respondedAt } } pageInfo { hasNextPage endCursor } count } } } ``` -------------------------------- ### Create Group Draft API Source: https://www.meetup.com/api/schema Initializes the creation of a new Meetup group by providing essential details such as name, description, and topics. ```APIDOC ## POST /websites/meetup_api/group_draft ### Description Creates an initial draft for a new Meetup group. ### Method POST ### Endpoint /websites/meetup_api/group_draft ### Parameters #### Request Body - **name** (String) - Display name of the group. Max 60 characters. - **description** (String) - Summary of the group in simple HTML format. - **customMembersLabel** (String) - What members will be called. Max 32 characters. - **topics** (Array[ID]) - Topic IDs to set for the group. - **urlname** (String) - Group's web address name. Between 6 and 60 characters. - **location** (GroupLocation) - Group location details. ### Request Example ```json { "name": "My Awesome Group", "description": "A group for people who love awesome things.", "urlname": "my-awesome-group", "location": { "city": "San Francisco", "country": "US" } } ``` ### Response #### Success Response (200) - **groupId** (ID) - The ID of the newly created group draft. - **status** (String) - The status of the group draft creation. #### Response Example ```json { "groupId": "grp_abcde", "status": "draft_created" } ``` ``` -------------------------------- ### Is Eligible For Introductory IOS Offer API Source: https://www.meetup.com/api/schema Determines if a member is eligible for an introductory offer on iOS. ```APIDOC ## POST /websites/meetup_api/isEligibleForIntroductoryIOSOffer ### Description Returns true if member is eligible for an introductory offer on IOS. ### Method POST ### Endpoint /websites/meetup_api/isEligibleForIntroductoryIOSOffer ### Parameters #### Request Body - **input** (IsEligibleForIntroductoryIOSOfferInput) - Required - Input object for eligibility check. ### Request Example { "input": { "memberId": "member_123" } } ### Response #### Success Response (200) - **isEligibleForIntroductoryIOSOffer** (Boolean) - True if eligible, false otherwise. ### Response Example { "isEligibleForIntroductoryIOSOffer": true } ``` -------------------------------- ### Meetup API Cursor-Based Pagination - Initial Request Source: https://www.meetup.com/api/guide This snippet illustrates the initial step in cursor-based pagination for the Meetup API. It retrieves the first 3 groups from a Pro Network and captures the `endCursor` for subsequent requests. ```graphql query ($urlname: ID) { proNetwork(urlname: $urlname) { groupsSearch(input: {first: 3}) { totalCount pageInfo { endCursor } edges { node { id name } } } } } ``` -------------------------------- ### Event Details Source: https://www.meetup.com/api/schema Provides insights into event availability, reasons for joining, associated venues, and any active promotions. ```APIDOC ## Event Details Endpoint ### Description Retrieves general RSVP availability, reasons for joining, venue information, and promotions for an event. ### Method GET ### Endpoint /websites/meetup_api/events/{eventId} ### Parameters #### Path Parameters - **eventId** (ID) - Required - The unique identifier of the event. #### Query Parameters - **attendeeInsights** (AttendeeInsights) - Optional - Provides insights into member actions on an event. - **reasonsForJoining** (ReasonForJoining) - Optional - A selection of reasons members are joining. - **venues** (List[EventVenue]) - Optional - Returns all venues associated with the event. - **promotions** (List[EventPromotion]) - Optional - Returns promotions defined for the event. ### Response #### Success Response (200) - **state** (String) - General RSVP availability status. - **reasonsForJoining** (List[ReasonForJoining]) - Reasons for joining. - **venues** (List[EventVenue]) - List of event venues. - **promotions** (List[EventPromotion]) - List of event promotions. #### Response Example ```json { "state": "open", "reasonsForJoining": [ { "id": "reason1", "name": "Networking" } ], "venues": [ { "id": "venue1", "name": "Online" } ], "promotions": [ { "eventPromotionId": "promo1", "venueId": "venue1", "promotionType": "DISCOUNT", "amount": 5.00, "redeemed": 10 } ] } ``` ``` -------------------------------- ### Making OAuth 2 Authenticated HTTP Requests Source: https://www.meetup.com/api/authentication This example demonstrates the required format for the Authorization header when making OAuth 2 authenticated requests to the Meetup API. It specifies the token type and the access token obtained through an OAuth flow. ```HTTP Authorization: Bearer {ACCESS_TOKEN} ``` -------------------------------- ### PaypalSettings Object Source: https://www.meetup.com/api/schema Contains PayPal-related settings for a member. ```APIDOC ## PaypalSettings Object ### Description Contains PayPal-related settings for a member. ### Fields * **paypalEmail** (String) - PayPal email address. Empty if PayPal email is not provided. Used for PayPal membership dues and legacy PayPal event fees implementation. * **isPaypalAvailable** (Boolean) - REQUIRED - Defines if PayPal is available for a member. Used for PayPal membership dues and legacy PayPal event fees implementation. * **eventFee** (PaypalEventFeeSettings) - REQUIRED - PayPal settings specific to event fees. ``` -------------------------------- ### Meetup API Server Flow: Requesting Access Token Source: https://www.meetup.com/api/authentication This example illustrates an HTTP POST request to obtain an access token after a successful authorization. It requires `client_id`, `client_secret`, `grant_type` (set to 'authorization_code'), `redirect_uri`, and the `code` received from the authorization response. ```HTTP POST https://secure.meetup.com/oauth2/access Content-Type: application/x-www-form-urlencoded client_id={YOUR_CLIENT_KEY} &client_secret={YOUR_CLIENT_SECRET} &grant_type=authorization_code &redirect_uri={SAME_REDIRECT_URI_USED_FOR_PREVIOUS_STEP} &code={CODE_YOU_RECEIVED_FROM_THE_AUTHORIZATION_RESPONSE} ``` -------------------------------- ### Create and Publish Event Source: https://www.meetup.com/api/guide Allows for the creation of a draft event and subsequent publishing of the event. ```APIDOC ## POST /events ### Description Creates a new event, initially in a draft state, and provides functionality to publish it. ### Method POST ### Endpoint /events ### Request Body - **input** (object) - Required - Input object for event creation. - **groupUrlname** (string) - Required - The URL name of the group. - **title** (string) - Required - The title of the event. - **description** (string) - Required - The description of the event. - **startDateTime** (string) - Required - The start date and time of the event (ISO format). - **venueId** (string) - Optional - The ID of the venue for the event. - **duration** (string) - Optional - The duration of the event (e.g., "PT1H"). - **publishStatus** (string) - Required - The initial publish status (e.g., "DRAFT"). ### Request Example (Create Draft) ```graphql mutation($input: CreateEventInput!) { createEvent(input: $input) { event { id } errors { message code field } } } ``` ### Request Variables Example (Create Draft) ```json { "input": { "groupUrlname": "GROUP_URLNAME", "title": "EVENT_TITLE", "description": "EVENT_DESCRIPTION", "startDateTime": "EVENT_STARTTIME", "venueId": "EVENT_VENUE_ID", "duration": "EVENT_DURATION", "publishStatus": "DRAFT" } } ``` ### Response #### Success Response (200) - **data.createEvent.event.id** (string) - The ID of the created event. - **data.createEvent.errors** (array) - A list of errors encountered during creation. #### Response Example (Create Draft) ```json { "data": { "createEvent": { "event": { "id": "278472065" }, "errors": [] } } } ``` ### Publish Event ### Method POST ### Endpoint /events/publish ### Description Publishes an existing draft event. ### Request Body - **input** (object) - Required - Input object for event publishing. - **eventId** (string) - Required - The ID of the event to publish. - **publishStatus** (string) - Required - The desired publish status (e.g., "PUBLISHED"). ### Request Example (Publish) ```graphql mutation($input: EditEventInput!) { editEvent(input: $input) { event { id } errors { message code field } } } ``` ### Request Variables Example (Publish) ```json { "input": { "eventId": "EVENT_ID", "publishStatus": "PUBLISHED" } } ``` ### Response #### Success Response (200) - **data.editEvent.event.id** (string) - The ID of the published event. - **data.editEvent.errors** (array) - A list of errors encountered during publishing. #### Response Example (Publish) ```json { "data": { "editEvent": { "event": { "id": "278472065" }, "errors": [] } } } ``` ``` -------------------------------- ### Meetup API Server Flow: Requesting Authorization Source: https://www.meetup.com/api/authentication This HTTP request example shows how to redirect a user to the Meetup authorization endpoint. It includes necessary parameters like `client_id`, `redirect_uri`, `response_type`, and `state` for initiating the OAuth 2 authorization process. ```HTTP GET https://secure.meetup.com/oauth2/authorize?client_id={YOUR_CLIENT_ID}&redirect_uri={YOUR_REGISTERED_REDIRECT_URI}&response_type=code&state={STATE_STRING} ``` -------------------------------- ### Create Draft Event using GraphQL Mutation Source: https://www.meetup.com/api/guide This GraphQL mutation is used to create a draft event. It requires a CreateEventInput object containing details like group URL name, title, description, start time, venue, and duration. The mutation returns the event ID if successful or error messages if there are issues. ```graphql mutation($input: CreateEventInput!) { createEvent(input: $input) { event { id } errors { message code field } } } ``` ```json { "input": { "groupUrlname": "GROUP_URLNAME", "title": "EVENT_TITLE", "description": "EVENT_DESCRIPTION", "startDateTime": "EVENT_STARTTIME", "venueId": "EVENT_VENUE_ID", "duration": "EVENT_DURATION", "publishStatus": "DRAFT" } } ``` ```json { "data": { "createEvent": { "event": { "id": "278472065" }, "errors": [] } } } ``` -------------------------------- ### SubscriptionProfilePlan Object Source: https://www.meetup.com/api/schema Represents a subscription plan available to a member, including details like ID, amount, quantity, billing information, and tier. ```APIDOC ## SubscriptionProfilePlan Object ### Description A subscription plan available to a member. ### Fields - **id** (ID) - REQUIRED - A plan id. - **amount** (Int) - REQUIRED - A plan unit amount (USD cents). - **minQuantity** (Int) - REQUIRED - A minimum number of units the organizer is paying for a plan. - **quantity** (Int) - REQUIRED - A number of units the organizer is paying for: a number of groups for per-group plans or 1 for flat plans. - **billInterval** (Int) - REQUIRED - A plan billing interval. - **billIntervalUnit** (BillIntervalUnit) - REQUIRED - A plan billing interval unit. - **isSavingsPlan** (Boolean) - REQUIRED - A flag indicating whether this is a "savings" plan. - **renewalCopy** (String) - REQUIRED - A localized renewal copy for a plan. - **tier** (SubscriptionTier) - REQUIRED - A tier label for a plan. - **description** (String) - REQUIRED - A localized description for a plan. - **providerPlanId** (ID) - REQUIRED - A payment provider's plan ID. - **internalPlanId** (ID) - REQUIRED - An internal plan id ``` -------------------------------- ### Reasons for Joining API Source: https://www.meetup.com/api/schema Retrieves a list of reasons why a member has joined Meetup. ```APIDOC ## GET /websites/meetup_api/reasonsForJoining ### Description A list of reasons member has joined Meetup. ### Method GET ### Endpoint /websites/meetup_api/reasonsForJoining ### Response #### Success Response (200) - **reasonsForJoining** (Array) - An array of strings, each representing a reason for joining. ### Response Example { "reasonsForJoining": [ "To find local events", "To connect with people with similar interests", "To learn new skills" ] } ``` -------------------------------- ### ProNetwork Object Source: https://www.meetup.com/api/schema Represents information about a Pro Network. ```APIDOC ## ProNetwork Object ### Description Represents pro network information. ### Fields * **id** (ID) - REQUIRED - ID of the network. * **urlname** (String) - REQUIRED - Urlname used to identify the network on meetup.com. * **name** (String) - REQUIRED - Display name of the network. * **status** (ProNetworkStatus) - REQUIRED - Status of the network, one of ACTIVE | INACTIVE | FROZEN. * **link** (String) - REQUIRED - Link for the network on meetup.com. * **logo** (Image) - Photo object for the logo. * **description** (String) - Description of the network. * **externalUrl** (String) - External URL of the network. * **contactEmail** (String) - Contact email of the network. * **primaryAdmin** (User) - Primary administrator of the network. * **isMemberEmailShared** (Boolean) - REQUIRED - A boolean value that indicates whether member shared email with the network or not. * **sponsors** (GroupSponsor) - REQUIRED - List of sponsors which belong to the network. * **lookerSignedUrl** (String) - Returns a signed url for Looker analytics for the authenticated user. ### Methods * **usersSearch**(input:ForwardConnectionInput, filter:NetworkUsersFilter, sort:NetworkUsersSort): (ProNetworkUsersConnection) Search through list of users with analytics which belong to the network. * **groupsSearch**(input:ForwardConnectionInput, filter:GroupAnalyticsFilter, sort:[ProNetworkGroupsSort]): (ProNetworkGroupsConnection) Search through list of groups with analytics which belong to the network. * **eventsSearch**(input:ForwardConnectionInput, filter:ProNetworkEventsFilter, sort:ProNetworkEventsSort): (ProNetworkEventsConnection) - REQUIRED Search through list of events which belong to the network. * **rsvpsSearch**(input:ForwardConnectionInput): (ProNetworkRsvpConnection) - REQUIRED Returns positive RSVPs for a network sorted by update time. * **suggestedEvents**(input:ForwardConnectionInput, filter:ProNetworkSuggestedEventsFilter): (ProNetworkSuggestedEventsConnection) - REQUIRED Get suggested network events, pagination is not supported currently. * **rsvpSurveys**(input:ForwardConnectionInput, filter:RsvpSurveysFilter): (ProNetworkRsvpSurveysConnection) - REQUIRED A list of RSVP responses for the events across the entire Pro network. * **mailchimpLists**:(MailchimpList) - REQUIRED Get MailChimp members lists. * **mailchimpAuth**:(MailchimpAuth) Get MailChimp account connection details. * **paymentModel**:(ProNetworkPaymentModel) - REQUIRED Payment model of the network. * **networkAnalytics**:(ProNetworkAnalytics) Pro network stats. * **socialNetworks**:(SocialNetwork) - REQUIRED A list of links to network's social platforms. * **visualSettings**:(ProNetworkVisualSettings) - REQUIRED Visual settings for the network. * **allowPhotoUploads**:(Boolean) - REQUIRED Whether the network allows members to upload group and event photos. ``` -------------------------------- ### Create Venue API Source: https://www.meetup.com/api/schema Allows for the creation of new venue entries within the Meetup system, specifying location details for events. ```APIDOC ## POST /websites/meetup_api/venues ### Description Creates a new venue for Meetup events. ### Method POST ### Endpoint /websites/meetup_api/venues ### Parameters #### Request Body - **groupId** (ID) - The ID of the group this venue belongs to. - **name** (String) - REQUIRED - Name of the venue. - **address** (String) - REQUIRED - Street address of the venue. - **city** (String) - REQUIRED - City where the venue is located. - **country** (String) - REQUIRED - Two-character lowercase country code. - **state** (String) - State or province. Required for US and CA, optional otherwise. ### Request Example ```json { "groupId": "grp_abcde", "name": "Community Center", "address": "123 Main St", "city": "Anytown", "country": "us", "state": "CA" } ``` ### Response #### Success Response (200) - **venueId** (ID) - The ID of the newly created venue. - **status** (String) - The status of the venue creation. #### Response Example ```json { "venueId": "ven_xyz789", "status": "created" } ``` ``` -------------------------------- ### Event Fee Options Source: https://www.meetup.com/api/schema Defines the structure for event fees, including payment methods, currency, amount, and refund policies. ```APIDOC ## EventFeeOption ### Description Options for the fee of an event. ### Fields - **enabled** (Boolean) - Required - Used only in the 'edit' flow, ignored in 'create'. Pass 'false' to make venue free (fee amount = 0). Other fields will be substituted by default values in this case. - **paymentMethod** (PaymentMethod) - Required - String representing the payment method for the event fee if a fee is charged for the event. - **currency** (Currency) - Required - String representing the currency for the event fee if a fee is charged for the event. - **amount** (Int) - Required - Representing the amount of the event fee if a fee is charged for the event. - **refundPolicy** (String) - Optional - String setting the refund policy if the event has a fee. May not be longer than 250 characters. - **paypalEmail** (String) - Optional - Paypal email - **earlyBirdDiscount** (EarlyBirdDiscountInput) - Optional - Early Bird Discount configuration - **promoCodes** ([EventPromoCodeInput]) - Optional - A list of promo codes for the event. ``` -------------------------------- ### Event Venue Options Source: https://www.meetup.com/api/schema Specific options and limits for an event venue. ```APIDOC ## EventVenueOptions ### Fields - **feeSettings** (VenueFeeSettings) - Venue specific fee settings - **rsvpLimit** (Int) - Positive integer representing total number of RSVP slots available for this particular venue. When undefined or defined as 0, there will be no set limit. - **guestLimit** (Int) - Positive integer representing the number of guests that members may include in their RSVP, 0 inclusive. - **goingCount** (Int) - REQUIRED - Count of going rsvps - **howToFindUs** (String) - String describing the location event venue. Visibility may be limited for private groups For online events this field is used for the event's url. ``` -------------------------------- ### ForwardConnectionInput Object Source: https://www.meetup.com/api/schema Input structure for forward pagination in lists. ```APIDOC ## ForwardConnectionInput Object ### Description Input object for forward pagination. ### Fields - **first** (Int) - Returns up to the first n elements from the list. - **after** (String) - Returns the elements that come after the specified cursor. ``` -------------------------------- ### Event Fee Settings Source: https://www.meetup.com/api/schema Defines the settings for event fees, including payment methods, amounts, and refund policies. ```APIDOC ## Event Fee Settings Object ### Description This object details the fee structure for an event, including acceptable payment methods, amounts, and refund policies. ### Fields - **accepts** (List[PaymentMethod]) - Required - The methods of payment accepted for the event fees. - **amount** (Float) - Required - The amount of the fee. - **currency** (Currency) - Required - The currency in which the fee is charged. - **required** (Boolean) - Required - Indicates if the fee is mandatory for RSVPing. - **refundPolicy** (RefundPolicy) - The organizer-defined terms for refunds. If specified, users must be able to access and agree to these terms before RSVPing. - **paypalConfig** (EventFeePaypalConfig) - Configuration specific to PayPal payments for event fees. - **earlyBirdDiscount** (EarlyBirdDiscount) - Configuration for any early bird discounts offered. - **hasPromoCodes** (Boolean) - Required - Indicates whether the event has active promo code promotions. ``` -------------------------------- ### TopicsConnection Object Source: https://www.meetup.com/api/schema Facilitates searching through a list of topics, providing pagination information and a list of topic edges. ```APIDOC ## TopicsConnection Object ### Description Search through list of topics. ### Fields - **pageInfo** (PageInfo) - REQUIRED - Information of the current page of a total list. - **count** (Int) - REQUIRED - Total counts of Pro Network Groups. - **edges** (TopicEdge) - REQUIRED - List of Topics. ``` -------------------------------- ### SubscriptionPromoCode Object Source: https://www.meetup.com/api/schema Represents a promotional code that can be applied to a subscription, including its validity and any associated promotion. ```APIDOC ## SubscriptionPromoCode Object ### Description Represents a promotional code. ### Fields - **code** (String) - REQUIRED - Promo code provided via the promoCode query argument. - **valid** (Boolean) - REQUIRED - Boolean indicating whether the promo code is valid. - **error** (SubscriptionPromoCodeError) - Provided promo code is not valid for the member. - **promotion** (String) - Promotion name ``` -------------------------------- ### Query: event Source: https://www.meetup.com/api/schema Returns an event according to the requested ID. ```APIDOC ## Query: event ### Description Returns an event based on the provided ID. ### Method GET ### Endpoint /graphql ### Parameters #### Arguments - **id** (ID) - Required - Alphanumeric identifier for the event ### Request Example ```json { "query": "query Event { event(id: \"eventId\") { id name } }" } ``` ### Response #### Success Response (200) - **Event** (object) - Event details. #### Response Example ```json { "data": { "event": { "id": "eventId", "name": "Event Name" } } } ``` ``` -------------------------------- ### Mutation: createEvent Source: https://www.meetup.com/api/schema Request to create an event. ```APIDOC ## Mutation: createEvent ### Description Request to create an event. ### Method POST ### Endpoint /graphql ### Parameters #### Arguments - **input** (CreateEventInput) - Required ### Request Example ```json { "query": "mutation CreateEvent { createEvent(input: {groupId: \"groupId\", title: \"Event Title\", description: \"Event Description\", dateTime: \"2024-01-01T12:00:00Z\"}) { event { id } } }" } ``` ### Response #### Success Response (200) - **CreateEventPayloadREQUIRED** (object) - Payload containing the result of the mutation. #### Response Example ```json { "data": { "createEvent": { "event": { "id": "eventId" } } } } ``` ``` -------------------------------- ### User Step Up Groups API Source: https://www.meetup.com/api/schema Retrieves a list of groups for step-up actions, with pagination. ```APIDOC ## GET /websites/meetup_api/userStepUpGroups ### Description List of groups for step-up actions, with pagination. ### Method GET ### Endpoint /websites/meetup_api/userStepUpGroups ### Parameters #### Query Parameters - **input** (ConnectionInput) - Optional - Input for pagination. ### Response #### Success Response (200) - **userStepUpGroups** (UserStepUpGroupsConnection) - A connection object containing a list of user step-up groups. ### Response Example { "userStepUpGroups": { "edges": [ { "cursor": "cursor_abc", "node": { "id": "group_444", "name": "Advanced Coding Workshop", "urlkey": "coding-workshop-sf" } } ], "pageInfo": { "hasNextPage": false, "endCursor": "cursor_def" }, "count": 2 } } ``` -------------------------------- ### Page Info Source: https://www.meetup.com/api/schema Information about pagination in a connection, used for navigating through lists of data. ```APIDOC ## PageInfo ### Description Information about pagination in a connection, used for navigating through lists of data. ### Fields - **hasNextPage** (Boolean) - REQUIRED - A boolean value that indicates whether the end of the list was reached (only relevant when paginating forward through a list). - **hasPreviousPage** (Boolean) - REQUIRED - A boolean value that indicates whether the beginning of the list was reached (only relevant when paginating backwards through a list). - **startCursor** (String) - REQUIRED - A cursor that represents the first edge in the list of edges for this query. - **endCursor** (String) - REQUIRED - A cursor that represents the last edge in the list of edges for this query. ``` -------------------------------- ### Create Group Event Photo Source: https://www.meetup.com/api/guide This mutation creates a placeholder for an image and returns an upload URL and photo details. ```APIDOC ## POST /v1/operations/createGroupEventPhoto ### Description Creates a placeholder for an image within a group event. Returns an upload URL for the binary data and initial photo information. ### Method POST ### Endpoint /v1/operations/createGroupEventPhoto ### Parameters #### Request Body - **input** (GroupEventPhotoCreateInput) - Required - Input object for creating a group event photo. - **groupId** (String) - Required - The ID of the group. - **photoType** (String) - Required - The type of photo (e.g., "GROUP_PHOTO"). - **contentType** (String) - Required - The content type of the image (e.g., "JPEG"). - **setAsMain** (Boolean) - Optional - Whether to set this photo as the main photo. ### Request Example ```json { "query": "mutation($input: GroupEventPhotoCreateInput!) { createGroupEventPhoto(input: $input) { uploadUrl photo { id baseUrl } imagePath } }", "variables": { "input": { "groupId": "GROUP_ID", "photoType": "GROUP_PHOTO", "contentType": "JPEG", "setAsMain": false } } } ``` ### Response #### Success Response (200) - **data.createGroupEventPhoto.uploadUrl** (String) - The URL where the image binary can be uploaded. - **data.createGroupEventPhoto.photo.id** (String) - The ID of the created photo. - **data.createGroupEventPhoto.photo.baseUrl** (String) - The base URL for the photo. - **data.createGroupEventPhoto.imagePath** (String) - The path for the image. #### Response Example ```json { "data": { "createGroupEventPhoto": { "uploadUrl": "{upload link}", "photo": { "id": "496557439", "baseUrl": "https://secure-content.meetupstatic.com/images/classic-events/" }, "imagePath": "" } } } ``` ``` -------------------------------- ### Event Object Documentation Source: https://www.meetup.com/api/schema Detailed documentation for the Event object in the Meetup API, including its fields and their types. ```APIDOC ## Event Object ### Description Represents an event within the Meetup platform. ### Fields - **id** (ID) - REQUIRED - Alphanumeric identifier for the event. - **token** (String) - Calculated identifier for an autoscheduled event. - **title** (String) - Title of the event. - **eventUrl** (String) - REQUIRED - Name used for the event's web address on meetup.com. Must be between 6 and 60 characters. - **description** (String) - Description of the event (formatted). - **shortDescription** (String) - Short description of the event. - **host** (User) - User who hosts the event. - **hostPhoto** (Image) - Host's group photo. - **howToFindUs** (String) - Instructions on how to find the event location. - **group** (Group) - Group to which the event belongs. - **venue** (Venue) - Venue of the event. - **images** (Image) - REQUIRED - Images of the event. - **onlineVenue** (OnlineVenue) - Details if the event is online. - **status** (EventStatus) - Status of the event. - **timeStatus** (EventTimeStatus) - Time status of the event. - **dateTime** (ZonedDateTime) - REQUIRED - Date of the event. - **duration** (Duration) - REQUIRED - Duration of the event. - **timezone** (String) - REQUIRED - Timezone where the event is happening. - **endTime** (ZonedDateTime) - REQUIRED - Time when the event ends. - **createdAt** (ZonedDateTime) - Date when the event was created. - **priceTier** (EventPriceTier) - REQUIRED - Price tier of the event. - **fees** (Fees) - Fees associated with the event. - **taxType** (String) - Type of tax for payment. - **donation** (Donation) - Donation details for the event. - **maxTickets** (Int) - REQUIRED - Maximum amount of tickets available for the event. - **waitlistMode** (WaitlistMode) - REQUIRED - Waitlist handling when RSVP limit is reached. - **going** (Int) - REQUIRED - Number of participants. - **waiting** (Int) - REQUIRED - Number of waitlisted members. - **tickets** (EventTicketsConnection) - REQUIRED - List of tickets (input: TicketsConnectionInput). - **rsvpSearch** (RsvpSearchConnection) - Search for members RSVP'd to this event (input: ConnectionInput, filter: RsvpSearchFilter REQUIRED). - **isAttending** (Boolean) - If a particular user attends the event (userId: ID). - **attendingTicket** (Ticket) - Ticket of the requester. - **ticket** (Ticket) - RSVP of the requester, can be states other than YES. - **eventType** (EventType) - REQUIRED - Type of the event. - **isSaved** (Boolean) - REQUIRED - If the event is saved. - **isDeletable** (Boolean) - REQUIRED - True whenever the event may be deleted by the requesting user. - **isOnline** (Boolean) - REQUIRED - True whenever the event is online. - **isNetworkEvent** (Boolean) - REQUIRED - True if the event is part of a network event. - **imageUrl** (String) - REQUIRED - URL for an image representing the event, or a fallback image (under development). - **image** (EventImage) - REQUIRED - Image of the event. - **shortUrl** (String) - REQUIRED - A shortened link for the event. - **hosts** ([User]) - List of members who will be hosts of the event. - **hostRsvps** (HostRsvpsConnection) - REQUIRED - A list of RSVP's for hosts of the event (input: ConnectionInput). - **uiActions** (EventUiActions) - REQUIRED - The actions that a member can take on the event. - **rsvpEventQuestion** (RsvpQuestion) - Event RSVP question details. - **rsvpSurveySettings** (RsvpSurveySettings) - Pro event RSVP survey settings. - **rsvpState** (RsvpState) - The state of the current user's RSVP for this event. - **rsvpSettings** (RsvpOpenSettings) - Settings for when members can RSVP. - **comments** (EventCommentConnection) - Event comments (offset: Int REQUIRED, limit: Int REQUIRED, sortOrder: SortOrder). - **commentLikes** (EventCommentLikerConnection) - Event comment likers (id: ID REQUIRED, inReplyTo: String, offset: Int REQUIRED, limit: Int REQUIRED, sortOrder: SortOrder). - **guestsAllowed** (Boolean) - REQUIRED - True if the event allows members to bring guests. - **numberOfAllowedGuests** (Int) - Number of allowed guests. - **photoAlbum** (EventPhotoAlbum) - Event photo album. - **isProEmailShared** (Boolean) - True whenever the member shares email with the pro network. - **descriptionImageUrls** ([String]) - List of image URLs parsed from the event description. - **topics** (TopicsConnection) - REQUIRED - List of topics associated with the event. - **attributes** (EventAttributesConnection) - REQUIRED - Attributes associated with the event. - **proCompleteRsvp** (ProCompleteRsvp) - REQUIRED - Pro event complete RSVP details. - **calendarExportUrls** (CalendarExportUrls) - Collection of links for exporting event information to an external calendar system. - **covidPrecautions** (CovidPrecautions) - REQUIRED - Organizer-defined COVID-19 precautions. - **speakerDetails** (SpeakerDetails) - Speaker details. - **fundraising** (EventFundraising) - Settings related to fundraising. - **feeSettings** (EventFeeSettings) - Optional organizer-defined fee payment settings. - **zoomMeetingId** (ID) - A Zoom meeting ID if the event is online and uses Zoom integration. - **series** (Series) - If this event is part of a series, this field describes that series. - **isNewGroup** (Boolean) - Indicates if the group has been recently created. - **isFeatured** (Boolean) - REQUIRED - Returns true if the event is a featured event. - **template** (EventTemplate) - If an event was created from a template, the template metadata. - **creatorMember** (User) - Indicates the member who created the event. - **networkEvent** (NetworkEvent) - Network event details. - **ratings** (EventRatings) - REQUIRED - Summary of ratings for the Event. Values will only be returned for members that are able to see them. - **rsvpAvailability** (EventRsvpAvailability) - REQUIRED - Availability for RSVPing to the event. ``` -------------------------------- ### Event Promotion Source: https://www.meetup.com/api/schema Details about promotions available for an event, such as discounts or promo codes. ```APIDOC ## Event Promotion Object ### Description This object defines a promotion applicable to an event. ### Fields - **eventPromotionId** (ID) - Required - The unique identifier for the promotion. - **venueId** (ID) - Required - The ID of the venue the promotion was created for. - **promotionType** (EventPromotionType) - Required - The type of promotion (e.g., DISCOUNT, PROMO_CODE, EARLY_BIRD). - **amount** (Float) - The discounted amount or percentage. - **startDate** (String) - For 'PROMO_CODE' promotions: The date and time when the promo code becomes available (ISO-8601 format). - **endDate** (String) - For 'PROMO_CODE' promotions: The date and time when the promo code becomes unavailable (ISO-8601 format). - **endOffset** (Int) - For 'EARLY_BIRD' promotions: A relative offset in days from the event start time when the promotion expires. - **quantity** (Int) - The maximum number of tickets that can be purchased with this promotion. If omitted, there is no limit. - **promoCode** (String) - For 'PROMO_CODE' promotions: The actual code that triggers the promotion. - **redeemed** (Int) - Required - The number of tickets already purchased using this promotion. ```