Download the PHP package notideus/notideus-php without Composer
On this page you can find all versions of the php package notideus/notideus-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download notideus/notideus-php
More information about notideus/notideus-php
Files in notideus/notideus-php
Package notideus-php
Short Description Official PHP SDK for the Notideus email API
License MIT
Informations about the package notideus-php
notideus-php
Official PHP SDK for the Notideus email API. MIT licensed.
Requires PHP 8.2+. Built on Guzzle — responses are plain associative arrays, so payloads from the API reference work verbatim.
Install
Quickstart
Configuration
| Option | Type | Default | Notes |
|---|---|---|---|
apiKey |
?string (1st constructor arg) |
null |
omit for unauthenticated resources |
base_url |
string |
https://api.notideus.io |
override for self-hosting |
timeout |
float (seconds) |
30.0 |
request timeout |
max_retries |
int |
2 |
see Retry behavior below |
handler |
callable|HandlerStack|null |
Guzzle default stack | inject a custom Guzzle handler |
The key is optional: plans() and unsubscribe() work without one. Calling
an authenticated resource without a key surfaces the API's 401 as a
NotideusException.
Resources
Params and responses use snake_case exactly like the API.
Emails
WhatsApp messages
send returns one entry per recipient: [['id' => …, 'to' => …, 'status' => …]].
Contacts
Hosted unsubscribe (token-based, unauthenticated)
Plans (unauthenticated)
Error handling
Request-level failures throw Notideus\NotideusException:
Batch sends never throw per item — inspect the results instead:
A whole-batch failure (401, 402 quota_exceeded, 400 batch_too_large)
still throws.
Retry behavior
The SDK retries network errors, 5xx and 429 (honoring Retry-After) with
exponential backoff — but only idempotent requests: reads/writes other than
POST, and sends that include an idempotency_key (matching the API's replay
semantics, so a retried send never double-sends). Set max_retries: 0 to
disable.
Self-hosting / local development
Development
Releasing
- Update
versionincomposer.jsonand merge tomain. - Create a GitHub Release with tag
v<version>— it must matchcomposer.json, thepublishworkflow verifies this and fails otherwise. - The
publishworkflow runs the full gate (composer install,lint,stan,test). There is no publish step and no secrets at all: Packagist auto-updates the package from the release tag. - One-time setup: submit the repository on packagist.org (GitHub hook or manual "Update" enables auto-sync from tags). Unlike npm, Packagist has no registry-existence prerequisite — the very first release can go straight through the workflow.