{"id":24461078,"url":"https://github.com/cunningdj/meetup-api-client","last_synced_at":"2025-05-06T00:08:10.928Z","repository":{"id":273443420,"uuid":"919737279","full_name":"CunningDJ/meetup-api-client","owner":"CunningDJ","description":"Meetup API GQL Client, in Typescript","archived":false,"fork":false,"pushed_at":"2025-02-15T20:31:28.000Z","size":167,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T00:08:03.740Z","etag":null,"topics":["client","gql","gql-api","javascript","meetup","meetup-api","nodejs","typescript"],"latest_commit_sha":null,"homepage":"https://nyctnb.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CunningDJ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-20T23:10:58.000Z","updated_at":"2025-02-22T14:48:39.000Z","dependencies_parsed_at":"2025-01-21T00:23:08.480Z","dependency_job_id":"f15118df-c915-475e-b3df-38ec395cce33","html_url":"https://github.com/CunningDJ/meetup-api-client","commit_stats":null,"previous_names":["cunningdj/meetup-api-client"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CunningDJ%2Fmeetup-api-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CunningDJ%2Fmeetup-api-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CunningDJ%2Fmeetup-api-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CunningDJ%2Fmeetup-api-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CunningDJ","download_url":"https://codeload.github.com/CunningDJ/meetup-api-client/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252596418,"owners_count":21773845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client","gql","gql-api","javascript","meetup","meetup-api","nodejs","typescript"],"created_at":"2025-01-21T04:17:33.078Z","updated_at":"2025-05-06T00:08:10.902Z","avatar_url":"https://github.com/CunningDJ.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv  align=\"center\"\u003e\n\u003cimg src=\"https://cdn.bglad.io/img/meetup-api-client/meetup-api-client.logo.png\" style=\"max-height:500px;max-width:500px;\" height=\"100%\" width=\"75%\" alt=\"MAC: Meetup API Client\"/\u003e\n\u003c/div\u003e\n\n[![npm: meetup-api-client](https://img.shields.io/npm/v/meetup-api-client.svg?color=blue)](https://npmjs.com/package/meetup-api-client)\n# MAC: Meetup API Client\nThere doesn't appear to be any Node client library for [Meetup's GQL API](https://www.meetup.com/api/general/), so I made one for [organizing purposes](https://nyctnb.com), complete with Typescript types.\n\nFeel free to [contribute](CONTRIBUTING.md) or [let me know](../../issues) if there's something you think can be added or improved!\n\n## Installing\n```bash\n$ npm install meetup-api-client\n```\nYou can also use equivalent `yarn`, `pnpm`, or `bower` commands to install.\n\n## Getting Started\n\n1. **Optional**: Set `MEETUP_API_SECRET` env variable\n   * From testing, this only seems necessary for the `proNetwork` query, so this is not necessary to use the other queries in this library\n   * This the **API Secret** value that must be requested and approved in the **[Meetup API admin console](https://www.meetup.com/api/oauth/list/)** first\n   * Once this secret key is obtained, it can be set in the env in different ways, but in the [dev environment](CONTRIBUTING.md) for this repo, we use [dotenv](https://www.npmjs.com/package/dotenv)\n2. Import (or `require`) the client functions:\n```js\nimport { queryMeetup, queryEvent, queryGroup, queryHealthCheck, queryKeywordSearch, queryProNetwork } from 'meetup-api-client';\n```\nThese are complete with typescript definitions, so you can see what data you can expect to get back from each.\n\n## Contributing\nIf you're interested in contributing, look [here](CONTRIBUTING.md).  I'd love if others would like to help build this further into a polished, full-fledged client for the Meetup API.  It would help organizers with dev skills do something with all of their group and member data.  In the meantime, I'll continue building on it where I find time, and I think in its current state it meets a variety of use cases and taps into a lot of key data in a developer-friendly way.\n\n## Meetup API: Background\nThe query system is based on Meetup API's [GQL schema](https://www.meetup.com/api/schema/#graphQl-schema).  It uses an axios version of this query:\n\n```bash\nquery='query { self { id name } }'\ncurl -X POST https://api.meetup.com/gql \\\n  -H 'Authorization: Bearer {YOUR_TOKEN}' \\\n  -H 'Content-Type: application/json' \\\n  -d @- \u003c\u003cEOF\n    {\"query\": \"$query\"}\n```\n\nWhich comes out to basically this:\n```typescript\nconst axiosClient = axios.create({\n  baseURL: 'https://api.meetup.com/gql',\n  headers: {\n    'Authorization': `Bearer ${process.env.MEETUP_API_TOKEN}`\n  }\n});\n\nexport const queryMeetup = (gqlQuery: string): AxiosPromise =\u003e {\n  return axiosClient.post('', {'query': gqlQuery});\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcunningdj%2Fmeetup-api-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcunningdj%2Fmeetup-api-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcunningdj%2Fmeetup-api-client/lists"}