PHPackages                             fmasites/omeda - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. fmasites/omeda

ActiveLibrary[API Development](/categories/api)

fmasites/omeda
==============

Omeda API client and utilities for Laravel

v0.5.0(1w ago)0131MITPHPPHP ^8.3CI passing

Since Mar 12Pushed 4mo agoCompare

[ Source](https://github.com/FMASites/omeda-api)[ Packagist](https://packagist.org/packages/fmasites/omeda)[ RSS](/packages/fmasites-omeda/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (7)Dependencies (10)Versions (8)Used By (0)

fmasites/omeda
==============

[](#fmasitesomeda)

A Laravel package for interacting with the [Omeda API](https://knowledgebase.omeda.com/omedaclientkb/api-overview).

Requirements
------------

[](#requirements)

- PHP 8.3+
- Laravel 11 or 12

Installation
------------

[](#installation)

```
composer require fmasites/omeda
```

Configuration
-------------

[](#configuration)

Add the following to your `.env` file:

```
OMEDA_APP_ID=
OMEDA_BASE_API_URL=
OMEDA_BRAND=
OMEDA_CLIENT=
OMEDA_CLIENT_BASE_API_URL=
OMEDA_INPUT_ID=
```

VariableDescription`OMEDA_APP_ID`Your Omeda application ID`OMEDA_BASE_API_URL`Base URL for the Omeda brand API`OMEDA_BRAND`Your Omeda brand abbreviation`OMEDA_CLIENT`Your Omeda client abbreviation`OMEDA_CLIENT_BASE_API_URL`Base URL for client-level API endpoints`OMEDA_INPUT_ID`Input ID used for POST requestsUsage
-----

[](#usage)

### OmedaApi

[](#omedaapi)

```
use FMASites\Omeda\OmedaApi;

$api = new OmedaApi();
```

You can also inject custom base URLs directly, which is useful in tests:

```
$api = new OmedaApi(baseApiUrl: 'https://...', clientBaseApiUrl: 'https://...');
```

#### Available methods

[](#available-methods)

```
// Brand
$api->brandComprehensiveLookup();             // Cached for 8 hours

// Customer
$api->customerComprehensiveLookup($id);
$api->customerLookupByEmail($email);
$api->customerLookupByEmailCandidates($email);  // 300 (multiple matches) returns the Customers list instead of false

// Orders & Transactions
$api->storeCustomerAndOrder($data);
$api->transactionLookup($transactionId);
$api->runProcessor($transactionIds);          // Utility API

// Postal
$api->postalInfoLookup($zipCode);             // Utility API

// Behaviors
$api->assignBehavior($customerId, $behaviors);

// Email
$api->emailOptinQueue($email, $deploymentTypeId, $options);

// Products & Deployments
$api->productLookupByBrand();                 // All defined products for the brand, including past Issues per product
$api->emailDeploymentSearch($criteria);       // Search past Omail deployments, e.g. ['Type' => $deploymentTypeId, 'DeploymentDateStart' => ..., 'DeploymentDateEnd' => ..., 'Statuses' => ['SENT']]
$api->emailDeploymentLookup($trackId);        // Deployment detail, including per-split HtmlContentUrl/TextContentUrl
$api->fetchDeploymentContent($url);           // Fetches a HtmlContentUrl/TextContentUrl - these need the appid header too, so they can't be linked to directly
```

GET methods return `array|false` — `false` indicates a non-successful response (404, 300, etc.). POST methods return an `Illuminate\Http\Client\Response` instance.

#### Getting HTML links for past issues of a deployment product

[](#getting-html-links-for-past-issues-of-a-deployment-product)

1. Call `productLookupByBrand()` and find the product of interest (e.g. filter by `ProductType` or `DeploymentTypeId`).
2. Call `emailDeploymentSearch()` with that product's `DeploymentTypeId` as `Type`, a date range, and `Statuses => ['SENT']` to get the past deployments' `TrackId`s.
3. Call `emailDeploymentLookup($trackId)` for each and read `HtmlContentUrl` off each entry in `Splits`.
4. `HtmlContentUrl`/`TextContentUrl` are themselves Omeda API URLs and 400 with "No applicationId was submitted" if fetched directly (e.g. linked to from a browser) - fetch them server-side with `fetchDeploymentContent($url)` instead.

### DataAdapter

[](#dataadapter)

Utilities for transforming brand comprehensive lookup data:

```
use FMASites\Omeda\DataAdapter;

// Filter demographics down to specific type IDs
DataAdapter::filterByDemographicTypes($brandData, [1, 2, 3]);

// Simplify the full brand lookup response to a smaller structure
DataAdapter::simplifyBrandComprehensiveLookupData($brandData);

// Remove specific demographic value options by ID
DataAdapter::removeDemographicValueOptionsById($brandData, [10, 11]);

// Simplify a products array
DataAdapter::simplifyProductData($products);
```

### Enums

[](#enums)

The package includes enums for common Omeda constants:

EnumDescription`AddressContactType`Address contact type codes`EmailContactType`Email contact type codes`PhoneContactType`Phone contact type codes`MarketingClassCode`Marketing classification codes`ProductType`Product type codes`SubscriptionClassCode`Subscription classification codes`LocationCodes`Country, US state, Canadian province, and Mexican state codesTesting
-------

[](#testing)

```
composer install
./vendor/bin/phpunit
```

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance85

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~22 days

Recently: every ~32 days

Total

7

Last Release

12d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/150a0cec8002f01c2630f20f1bafb4b2d599ec4832cb5ea08809486580f269d8?d=identicon)[mkunzelman](/maintainers/mkunzelman)

---

Top Contributors

[![kunzelmanm](https://avatars.githubusercontent.com/u/18157080?v=4)](https://github.com/kunzelmanm "kunzelmanm (6 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/fmasites-omeda/health.svg)

```
[![Health](https://phpackages.com/badges/fmasites-omeda/health.svg)](https://phpackages.com/packages/fmasites-omeda)
```

###  Alternatives

[mike-bronner/laravel-model-caching

Automatic caching for Eloquent models.

2.4k161.4k1](/packages/mike-bronner-laravel-model-caching)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.4M354](/packages/psalm-plugin-laravel)[defstudio/telegraph

A laravel facade to interact with Telegram Bots

818336.8k3](/packages/defstudio-telegraph)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[forjedio/inertia-table

Backend-driven dynamic tables for Laravel + Inertia.js

272.0k](/packages/forjedio-inertia-table)[jasara/php-amzn-selling-partner-api

A fluent interface for Amazon's Selling Partner API in PHP

1349.3k1](/packages/jasara-php-amzn-selling-partner-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
