{"id":24515621,"url":"https://github.com/magicbell/magicbell-go","last_synced_at":"2026-02-12T22:02:03.372Z","repository":{"id":268948242,"uuid":"905949976","full_name":"magicbell/magicbell-go","owner":"magicbell","description":"Go package to work with the MagicBell multi-channel notifications API.","archived":false,"fork":false,"pushed_at":"2026-02-09T06:19:28.000Z","size":427,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-09T12:21:33.610Z","etag":null,"topics":["notifications","push-notifications"],"latest_commit_sha":null,"homepage":"https://www.magicbell.com","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/magicbell.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-19T20:52:43.000Z","updated_at":"2025-08-25T17:23:49.000Z","dependencies_parsed_at":"2024-12-19T22:35:45.675Z","dependency_job_id":"7e30367e-8bac-4b36-abd4-a7143c584926","html_url":"https://github.com/magicbell/magicbell-go","commit_stats":null,"previous_names":["magicbell/magicbell-go-project-client","magicbell/magicbell-go"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/magicbell/magicbell-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmagicbell-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmagicbell-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmagicbell-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmagicbell-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/magicbell","download_url":"https://codeload.github.com/magicbell/magicbell-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/magicbell%2Fmagicbell-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29382870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T20:34:40.886Z","status":"ssl_error","status_checked_at":"2026-02-12T20:23:00.490Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["notifications","push-notifications"],"created_at":"2025-01-22T01:18:37.352Z","updated_at":"2026-02-12T22:02:03.366Z","avatar_url":"https://github.com/magicbell.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MagicBell Go SDK\n\nWelcome to the MagiBell GO SDK documentation. This guide will help you get started with integrating and using the MagicBell GO SDK in your project.\n\n## Authentication\n\nBoth the ProjectClient and the UserClient require authentication. Please read more about authentication and generation of tokens in our [Authentication docs](https://www.magicbell.com/docs/api/authentication).\n\n# ProjectClient\n\n\u003c!-- AUTO-GENERATED-CONTENT:START (project-client) --\u003e\n\n## Authentication\n\n### Access Token Authentication\n\nThe Client API uses an Access Token for authentication.\n\nThis token must be provided to authenticate your requests to the API.\n\n#### Setting the Access Token\n\nWhen you initialize the SDK, you can set the access token as follows:\n\n```go\nimport (\n    \"github.com/magicbell/magicbell-go/pkg/project-client/client\"\n    \"github.com/magicbell/magicbell-go/pkg/project-client/clientconfig\"\n  )\n\nconfig := clientconfig.NewConfig()\nconfig.SetAccessToken(\"YOUR-TOKEN\")\n\nsdk := client.NewClient(config)\n```\n\nIf you need to set or update the access token after initializing the SDK, you can use:\n\n```go\nimport (\n    \"github.com/magicbell/magicbell-go/pkg/project-client/client\"\n    \"github.com/magicbell/magicbell-go/pkg/project-client/clientconfig\"\n  )\n\nconfig := clientconfig.NewConfig()\n\nsdk := client.NewClient(config)\nsdk.SetAccessToken(\"YOUR-TOKEN\")\n```\n\n## Services\n\nThe SDK provides various services to interact with the API.\n\n\u003cdetails\u003e \n\u003csummary\u003eBelow is a list of all available services with links to their detailed documentation:\u003c/summary\u003e\n\n| Name                                                                  |\n| :-------------------------------------------------------------------- |\n| [BroadcastsService](docs/project-client/services/broadcasts_service.md)     |\n| [ChannelsService](docs/project-client/services/channels_service.md)         |\n| [EventsService](docs/project-client/services/events_service.md)             |\n| [IntegrationsService](docs/project-client/services/integrations_service.md) |\n| [UsersService](docs/project-client/services/users_service.md)               |\n\n\u003c/details\u003e\n\n### Response Wrappers\n\nAll services use response wrappers to provide a consistent interface to return the responses from the API.\n\nThe response wrapper itself is a generic struct that contains the response data and metadata.\n\n\u003cdetails\u003e\n\u003csummary\u003eBelow are the response wrappers used in the SDK:\u003c/summary\u003e\n\n#### `ClientResponse[T]`\n\nThis response wrapper is used to return the response data from the API. It contains the following fields:\n\n| Name     | Type                     | Description                                 |\n| :------- | :----------------------- | :------------------------------------------ |\n| Data     | `T`                      | The body of the API response                |\n| Metadata | `ClientResponseMetadata` | Status code and headers returned by the API |\n\n#### `ClientError`\n\nThis response wrapper is used to return an error. It contains the following fields:\n\n| Name     | Type                     | Description                                 |\n| :------- | :----------------------- | :------------------------------------------ |\n| Err      | `error`                  | The error that occurred                     |\n| Body     | `T`                      | The body of the API response                |\n| Metadata | `ClientResponseMetadata` | Status code and headers returned by the API |\n\n#### `ClientResponseMetadata`\n\nThis struct is shared by both response wrappers and contains the following fields:\n\n| Name       | Type                | Description                                      |\n| :--------- | :------------------ | :----------------------------------------------- |\n| Headers    | `map[string]string` | A map containing the headers returned by the API |\n| StatusCode | `int`               | The status code returned by the API              |\n\n\u003c/details\u003e\n\n## Models\n\nThe SDK includes several models that represent the data structures used in API requests and responses. These models help in organizing and managing the data efficiently.\n\n\u003cdetails\u003e \n\u003csummary\u003eBelow is a list of all available models with links to their detailed documentation:\u003c/summary\u003e\n\n| Name                                                                                    | Description |\n| :-------------------------------------------------------------------------------------- | :---------- |\n| [BroadcastCollection](docs/project-client/models/broadcast_collection.md)                     |             |\n| [Broadcast](docs/project-client/models/broadcast.md)                                          |             |\n| [CategoryDeliveryConfig](docs/project-client/models/category_delivery_config.md)              |             |\n| [InboxTokenResponseCollection](docs/project-client/models/inbox_token_response_collection.md) |             |\n| [InboxTokenResponse](docs/project-client/models/inbox_token_response.md)                      |             |\n| [DiscardResult](docs/project-client/models/discard_result.md)                                 |             |\n| [ApnsTokenCollection](docs/project-client/models/apns_token_collection.md)                    |             |\n| [ApnsToken](docs/project-client/models/apns_token.md)                                         |             |\n| [ExpoTokenCollection](docs/project-client/models/expo_token_collection.md)                    |             |\n| [ExpoToken](docs/project-client/models/expo_token.md)                                         |             |\n| [FcmTokenCollection](docs/project-client/models/fcm_token_collection.md)                      |             |\n| [FcmToken](docs/project-client/models/fcm_token.md)                                           |             |\n| [SlackTokenCollection](docs/project-client/models/slack_token_collection.md)                  |             |\n| [SlackToken](docs/project-client/models/slack_token.md)                                       |             |\n| [TeamsTokenCollection](docs/project-client/models/teams_token_collection.md)                  |             |\n| [TeamsToken](docs/project-client/models/teams_token.md)                                       |             |\n| [WebPushTokenCollection](docs/project-client/models/web_push_token_collection.md)             |             |\n| [WebPushToken](docs/project-client/models/web_push_token.md)                                  |             |\n| [EventCollection](docs/project-client/models/event_collection.md)                             |             |\n| [Event](docs/project-client/models/event.md)                                                  |             |\n| [IntegrationConfigCollection](docs/project-client/models/integration_config_collection.md)    |             |\n| [ApnsConfigCollection](docs/project-client/models/apns_config_collection.md)                  |             |\n| [ApnsConfigPayload](docs/project-client/models/apns_config_payload.md)                        |             |\n| [ExpoConfigCollection](docs/project-client/models/expo_config_collection.md)                  |             |\n| [ExpoConfigPayload](docs/project-client/models/expo_config_payload.md)                        |             |\n| [FcmConfigCollection](docs/project-client/models/fcm_config_collection.md)                    |             |\n| [FcmConfigPayload](docs/project-client/models/fcm_config_payload.md)                          |             |\n| [GithubConfigCollection](docs/project-client/models/github_config_collection.md)              |             |\n| [GithubConfigPayload](docs/project-client/models/github_config_payload.md)                    |             |\n| [InboxConfigCollection](docs/project-client/models/inbox_config_collection.md)                |             |\n| [InboxConfigPayload](docs/project-client/models/inbox_config_payload.md)                      |             |\n| [MailgunConfigCollection](docs/project-client/models/mailgun_config_collection.md)            |             |\n| [MailgunConfigPayload](docs/project-client/models/mailgun_config_payload.md)                  |             |\n| [PingConfigCollection](docs/project-client/models/ping_config_collection.md)                  |             |\n| [PingConfigPayload](docs/project-client/models/ping_config_payload.md)                        |             |\n| [SendgridConfigCollection](docs/project-client/models/sendgrid_config_collection.md)          |             |\n| [SendgridConfigPayload](docs/project-client/models/sendgrid_config_payload.md)                |             |\n| [SesConfigCollection](docs/project-client/models/ses_config_collection.md)                    |             |\n| [SesConfigPayload](docs/project-client/models/ses_config_payload.md)                          |             |\n| [SlackConfigCollection](docs/project-client/models/slack_config_collection.md)                |             |\n| [SlackConfigPayload](docs/project-client/models/slack_config_payload.md)                      |             |\n| [StripeConfigCollection](docs/project-client/models/stripe_config_collection.md)              |             |\n| [StripeConfigPayload](docs/project-client/models/stripe_config_payload.md)                    |             |\n| [TwilioConfigCollection](docs/project-client/models/twilio_config_collection.md)              |             |\n| [TwilioConfigPayload](docs/project-client/models/twilio_config_payload.md)                    |             |\n| [WebpushConfigCollection](docs/project-client/models/webpush_config_collection.md)            |             |\n| [WebpushConfigPayload](docs/project-client/models/webpush_config_payload.md)                  |             |\n| [UserCollection](docs/project-client/models/user_collection.md)                               |             |\n| [User](docs/project-client/models/user.md)                                                    |             |\n| [Links](docs/project-client/models/links.md)                                                  |             |\n| [IntegrationConfig](docs/project-client/models/integration_config.md)                         |             |\n| [ApnsConfig](docs/project-client/models/apns_config.md)                                       |             |\n| [ExpoConfig](docs/project-client/models/expo_config.md)                                       |             |\n| [FcmConfig](docs/project-client/models/fcm_config.md)                                         |             |\n| [GithubConfig](docs/project-client/models/github_config.md)                                   |             |\n| [InboxConfig](docs/project-client/models/inbox_config.md)                                     |             |\n| [MailgunConfig](docs/project-client/models/mailgun_config.md)                                 |             |\n| [PingConfig](docs/project-client/models/ping_config.md)                                       |             |\n| [SendgridConfig](docs/project-client/models/sendgrid_config.md)                               |             |\n| [SesConfig](docs/project-client/models/ses_config.md)                                         |             |\n| [SlackConfig](docs/project-client/models/slack_config.md)                                     |             |\n| [StripeConfig](docs/project-client/models/stripe_config.md)                                   |             |\n| [TwilioConfig](docs/project-client/models/twilio_config.md)                                   |             |\n| [WebpushConfig](docs/project-client/models/webpush_config.md)                                 |             |\n\n\u003c/details\u003e\n\n\u003c!-- AUTO-GENERATED-CONTENT:END (project-client) --\u003e\n\n# UserClient\n\n\u003c!-- AUTO-GENERATED-CONTENT:START (user-client) --\u003e\n\n## Authentication\n\n### Access Token Authentication\n\nThe Client API uses an Access Token for authentication.\n\nThis token must be provided to authenticate your requests to the API.\n\n#### Setting the Access Token\n\nWhen you initialize the SDK, you can set the access token as follows:\n\n```go\nimport (\n    \"github.com/magicbell/magicbell-go/pkg/user-client/client\"\n    \"github.com/magicbell/magicbell-go/pkg/user-client/clientconfig\"\n  )\n\nconfig := clientconfig.NewConfig()\nconfig.SetAccessToken(\"YOUR-TOKEN\")\n\nsdk := client.NewClient(config)\n```\n\nIf you need to set or update the access token after initializing the SDK, you can use:\n\n```go\nimport (\n    \"github.com/magicbell/magicbell-go/pkg/user-client/client\"\n    \"github.com/magicbell/magicbell-go/pkg/user-client/clientconfig\"\n  )\n\nconfig := clientconfig.NewConfig()\n\nsdk := client.NewClient(config)\nsdk.SetAccessToken(\"YOUR-TOKEN\")\n```\n\n## Services\n\nThe SDK provides various services to interact with the API.\n\n\u003cdetails\u003e \n\u003csummary\u003eBelow is a list of all available services with links to their detailed documentation:\u003c/summary\u003e\n\n| Name                                                                    |\n| :---------------------------------------------------------------------- |\n| [ChannelsService](docs/user-client/services/channels_service.md)           |\n| [IntegrationsService](docs/user-client/services/integrations_service.md)   |\n| [NotificationsService](docs/user-client/services/notifications_service.md) |\n\n\u003c/details\u003e\n\n### Response Wrappers\n\nAll services use response wrappers to provide a consistent interface to return the responses from the API.\n\nThe response wrapper itself is a generic struct that contains the response data and metadata.\n\n\u003cdetails\u003e\n\u003csummary\u003eBelow are the response wrappers used in the SDK:\u003c/summary\u003e\n\n#### `ClientResponse[T]`\n\nThis response wrapper is used to return the response data from the API. It contains the following fields:\n\n| Name     | Type                     | Description                                 |\n| :------- | :----------------------- | :------------------------------------------ |\n| Data     | `T`                      | The body of the API response                |\n| Metadata | `ClientResponseMetadata` | Status code and headers returned by the API |\n\n#### `ClientError`\n\nThis response wrapper is used to return an error. It contains the following fields:\n\n| Name     | Type                     | Description                                 |\n| :------- | :----------------------- | :------------------------------------------ |\n| Err      | `error`                  | The error that occurred                     |\n| Body     | `T`                      | The body of the API response                |\n| Metadata | `ClientResponseMetadata` | Status code and headers returned by the API |\n\n#### `ClientResponseMetadata`\n\nThis struct is shared by both response wrappers and contains the following fields:\n\n| Name       | Type                | Description                                      |\n| :--------- | :------------------ | :----------------------------------------------- |\n| Headers    | `map[string]string` | A map containing the headers returned by the API |\n| StatusCode | `int`               | The status code returned by the API              |\n\n\u003c/details\u003e\n\n## Models\n\nThe SDK includes several models that represent the data structures used in API requests and responses. These models help in organizing and managing the data efficiently.\n\n\u003cdetails\u003e \n\u003csummary\u003eBelow is a list of all available models with links to their detailed documentation:\u003c/summary\u003e\n\n| Name                                                                                             | Description |\n| :----------------------------------------------------------------------------------------------- | :---------- |\n| [InboxTokenResponseCollection](docs/user-client/models/inbox_token_response_collection.md)          |             |\n| [InboxToken](docs/user-client/models/inbox_token.md)                                                |             |\n| [InboxTokenResponse](docs/user-client/models/inbox_token_response.md)                               |             |\n| [DiscardResult](docs/user-client/models/discard_result.md)                                          |             |\n| [ApnsTokenCollection](docs/user-client/models/apns_token_collection.md)                             |             |\n| [ApnsTokenPayload](docs/user-client/models/apns_token_payload.md)                                   |             |\n| [ApnsToken](docs/user-client/models/apns_token.md)                                                  |             |\n| [ExpoTokenCollection](docs/user-client/models/expo_token_collection.md)                             |             |\n| [ExpoTokenPayload](docs/user-client/models/expo_token_payload.md)                                   |             |\n| [ExpoToken](docs/user-client/models/expo_token.md)                                                  |             |\n| [FcmTokenCollection](docs/user-client/models/fcm_token_collection.md)                               |             |\n| [FcmTokenPayload](docs/user-client/models/fcm_token_payload.md)                                     |             |\n| [FcmToken](docs/user-client/models/fcm_token.md)                                                    |             |\n| [SlackTokenCollection](docs/user-client/models/slack_token_collection.md)                           |             |\n| [SlackTokenPayload](docs/user-client/models/slack_token_payload.md)                                 |             |\n| [SlackToken](docs/user-client/models/slack_token.md)                                                |             |\n| [TeamsTokenCollection](docs/user-client/models/teams_token_collection.md)                           |             |\n| [TeamsTokenPayload](docs/user-client/models/teams_token_payload.md)                                 |             |\n| [TeamsToken](docs/user-client/models/teams_token.md)                                                |             |\n| [WebPushTokenCollection](docs/user-client/models/web_push_token_collection.md)                      |             |\n| [WebPushTokenPayload](docs/user-client/models/web_push_token_payload.md)                            |             |\n| [WebPushToken](docs/user-client/models/web_push_token.md)                                           |             |\n| [InboxConfigPayload](docs/user-client/models/inbox_config_payload.md)                               |             |\n| [SlackInstallation](docs/user-client/models/slack_installation.md)                                  |             |\n| [SlackFinishInstallResponse](docs/user-client/models/slack_finish_install_response.md)              |             |\n| [SlackStartInstall](docs/user-client/models/slack_start_install.md)                                 |             |\n| [SlackStartInstallResponseContent](docs/user-client/models/slack_start_install_response_content.md) |             |\n| [WebPushStartInstallationResponse](docs/user-client/models/web_push_start_installation_response.md) |             |\n| [NotificationCollection](docs/user-client/models/notification_collection.md)                        |             |\n| [Notification](docs/user-client/models/notification.md)                                             |             |\n| [Links](docs/user-client/models/links.md)                                                           |             |\n\n\u003c/details\u003e\n\n\u003c!-- AUTO-GENERATED-CONTENT:END (user-client) --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicbell%2Fmagicbell-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmagicbell%2Fmagicbell-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmagicbell%2Fmagicbell-go/lists"}