Skip to main content
The Courier PHP SDK gives typed access to the from any PHP 8.1+ application. It takes optional arguments as named parameters and returns typed response objects. Available on GitHub.
The PHP SDK is in beta. APIs may change between releases. Share feedback or report issues on GitHub.

Installation

Install from Packagist with Composer:
Requires PHP 8.1+. Latest version on Packagist.

Quick start

Pass your API key in the COURIER_API_KEY environment variable, or to the constructor: new Client(apiKey: 'YOUR_COURIER_API_KEY').

Authentication

Get your API key from . Set it as an environment variable:
Or pass it to the client constructor:

Sending notifications

Design your notification in , then reference it by ID:

Available resources

The SDK covers the full Courier API.

Common operations

Checking message status

Managing user profiles

Issuing JWT tokens

Courier’s (React, JavaScript, mobile) authenticate users with a JWT your backend issues. covers the token flow, the scope strings, and token refresh. Use $client->auth->issueToken:

Configuration

Error handling

The SDK throws typed exceptions for API failures. All extend Courier\Core\Exceptions\APIException:

Retries

The SDK retries failed requests up to 2 times with exponential backoff.

Journeys

are multi-step workflows: send, delay, branch, throttle, digest, and more. Invoke one by ID or alias to start a run. Cancel runs by ID, or by a shared cancelation token.
cancel takes exactly one of run_id or cancelation_token (spelled with one “l”). Build and manage journeys from code with create, list, publish, and archive. See .

More operations

A few more resources from the full :

API Reference

Full REST API docs with request/response examples.

Send API

Learn about the Send endpoint, routing, and message options.

Quickstart

Send your first notification in under two minutes.

GitHub

Source code, issues, and changelog.

Idempotent sends

Pass an idempotency key and Courier replays the first response for that key instead of sending again. The SDK sets the Idempotency-Key header for you. covers the scoping rule and the replay window.