{"id":32318718,"url":"https://github.com/trycourier/courier-ios","last_synced_at":"2026-05-02T01:00:53.414Z","repository":{"id":50534945,"uuid":"511614438","full_name":"trycourier/courier-ios","owner":"trycourier","description":"Inbox, Push Notifications \u0026 Preferences for iOS","archived":false,"fork":false,"pushed_at":"2026-04-09T16:45:07.000Z","size":36809,"stargazers_count":12,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-04-26T08:15:28.196Z","etag":null,"topics":["apns","apple-push-notifications","courier","fcm","firebase-cloud-messaging","ios","notifications","push-notifications","swift"],"latest_commit_sha":null,"homepage":"https://courier.com","language":"Swift","has_issues":true,"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/trycourier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"Contributing.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-07-07T17:16:40.000Z","updated_at":"2026-03-23T19:58:52.000Z","dependencies_parsed_at":"2023-10-03T00:03:46.887Z","dependency_job_id":"8e1aafae-b6d8-4028-ad72-01d43dc33529","html_url":"https://github.com/trycourier/courier-ios","commit_stats":{"total_commits":232,"total_committers":5,"mean_commits":46.4,"dds":0.4181034482758621,"last_synced_commit":"85bfa75df3c8682c33c6a70d973fc5057ff4b8c8"},"previous_names":[],"tags_count":168,"template":false,"template_full_name":null,"purl":"pkg:github/trycourier/courier-ios","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trycourier%2Fcourier-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trycourier%2Fcourier-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trycourier%2Fcourier-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trycourier%2Fcourier-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trycourier","download_url":"https://codeload.github.com/trycourier/courier-ios/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trycourier%2Fcourier-ios/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32518744,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["apns","apple-push-notifications","courier","fcm","firebase-cloud-messaging","ios","notifications","push-notifications","swift"],"created_at":"2025-10-23T11:33:03.369Z","updated_at":"2026-05-02T01:00:53.406Z","avatar_url":"https://github.com/trycourier.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg width=\"1000\" alt=\"ios-banner\" src=\"https://github.com/user-attachments/assets/3e7de20b-5b68-40df-90ca-057b18fd70ab\"\u003e\n\n\u003c!-- AUTO-GENERATED-OVERVIEW:START — Do not edit this section. It is synced from mintlify-docs. --\u003e\n# Courier iOS SDK\n\nThe Courier iOS SDK provides prebuilt UI components and Swift APIs for adding in-app notifications, push notifications, and notification preferences to your iOS app. It handles authentication, token management, and real-time message delivery.\n\n## Installation\n\n### Swift Package Manager\n\nIn Xcode, go to **File \u003e Add Packages** and paste:\n\n```\nhttps://github.com/trycourier/courier-ios\n```\n\n### CocoaPods\n\n```ruby\npod 'Courier_iOS'\n```\n\nRequires iOS 13.0+.\n\n## Quick Start\n\n```swift\nimport Courier_iOS\n\n// Sign in the user (JWT generated by your backend)\nTask {\n    await Courier.shared.signIn(\n        userId: \"user_123\",\n        accessToken: jwt\n    )\n}\n\n// Add a prebuilt Inbox view (SwiftUI)\nCourierInboxView(\n    didClickInboxMessageAtIndex: { message, index in\n        message.isRead ? message.markAsUnread() : message.markAsRead()\n    }\n)\n\n// Add a prebuilt Preferences view (SwiftUI)\nCourierPreferencesView(mode: .topic)\n```\n\n## Documentation\n\nFull documentation: **[courier.com/docs/sdk-libraries/ios](https://www.courier.com/docs/sdk-libraries/ios/)**\n\n- [Inbox Overview](https://www.courier.com/docs/platform/inbox/inbox-overview/)\n- [Authentication](https://www.courier.com/docs/platform/inbox/authentication/)\n- [Push Integrations](https://www.courier.com/docs/external-integrations/push/intro-to-push/)\n\u003c!-- AUTO-GENERATED-OVERVIEW:END --\u003e\n\n\u0026emsp;\n\n# Getting Started\n\nThese are all the available features of the SDK.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth width=\"25px\"\u003e\u003c/th\u003e\n            \u003cth width=\"250px\" align=\"left\"\u003eFeature\u003c/th\u003e\n            \u003cth width=\"725px\" align=\"left\"\u003eDescription\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr width=\"600px\"\u003e\n            \u003ctd align=\"center\"\u003e\n                1\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/1_Authentication.md\"\u003e\n                    \u003ccode\u003eAuthentication\u003c/code\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                Manages user credentials between app sessions. Required if you would like to use \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/2_Inbox.md\"\u003e\u003ccode\u003eInbox\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/3_PushNotifications.md\"\u003e\u003ccode\u003ePush Notifications\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/4_Preferences.md\"\u003e\u003ccode\u003ePreferences\u003c/code\u003e\u003c/a\u003e.\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr width=\"600px\"\u003e\n            \u003ctd align=\"center\"\u003e\n                2\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/2_Inbox.md\"\u003e\n                    \u003ccode\u003eInbox\u003c/code\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                An in-app notification center you can use to notify your users. Comes with a prebuilt UI and also supports fully custom UIs.\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr width=\"600px\"\u003e\n            \u003ctd align=\"center\"\u003e\n                3\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/3_PushNotifications.md\"\u003e\n                    \u003ccode\u003ePush Notifications\u003c/code\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                Automatically manages push notification device tokens and gives convenient functions for handling push notification receiving and clicking.\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr width=\"600px\"\u003e\n            \u003ctd align=\"center\"\u003e\n                4\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/4_Preferences.md\"\u003e\n                    \u003ccode\u003ePreferences\u003c/code\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                Allow users to update which types of notifications they would like to receive.\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr width=\"600px\"\u003e\n            \u003ctd align=\"center\"\u003e\n                5\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                \u003ca href=\"https://github.com/trycourier/courier-ios/blob/master/Docs/5_Client.md\"\u003e\n                    \u003ccode\u003eCourierClient\u003c/code\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"left\"\u003e\n                The base level API wrapper around the Courier endpoints. Useful if you have a highly customized user experience or codebase requirements.\n            \u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u0026emsp;\n\n# Example Projects\n\nSeveral common starter projects using the SDK.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth width=\"450px\" align=\"left\"\u003eProject Link\u003c/th\u003e\n            \u003cth width=\"200px\" align=\"center\"\u003eUI Framework\u003c/th\u003e\n            \u003cth width=\"200px\" align=\"center\"\u003ePackage Manager\u003c/th\u003e\n            \u003cth width=\"200px\" align=\"center\"\u003eLanguage\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr width=\"600px\"\u003e\n            \u003ctd align=\"left\"\u003e\n                \u003ca href=\"https://github.com/trycourier/courier-ios/tree/master/Example\"\u003e\n                    \u003ccode\u003eExample\u003c/code\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\u003ccode\u003eUIKit\u003c/code\u003e\u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\u003ccode\u003eSwift\u003c/code\u003e\u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\u003ccode\u003eSwift\u003c/code\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u0026emsp;\n\n# **Share feedback with Courier**\n\nWe want to make this the best SDK for managing notifications! Have an idea or feedback about our SDKs? Let us know!\n\n[Courier iOS Issues](https://github.com/trycourier/courier-ios/issues)\n\n## EU endpoints\n\nIf your workspace uses EU-hosted Courier endpoints, pass the built-in EU preset through `apiUrls`.\n\n```swift\nTask {\n    await Courier.shared.signIn(\n        userId: \"your_user_id\",\n        accessToken: jwt,\n        apiUrls: .eu\n    )\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrycourier%2Fcourier-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrycourier%2Fcourier-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrycourier%2Fcourier-ios/lists"}