PHPackages                             ifresh/filemaker-odata-api - 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. ifresh/filemaker-odata-api

ActiveLibrary[API Development](/categories/api)

ifresh/filemaker-odata-api
==========================

1.2.1(1mo ago)12063[1 PRs](https://github.com/iFreshDevelopment/filemaker-odata-api/pulls)PHP

Since Jan 10Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/iFreshDevelopment/filemaker-odata-api)[ Packagist](https://packagist.org/packages/ifresh/filemaker-odata-api)[ RSS](/packages/ifresh-filemaker-odata-api/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (12)Versions (10)Used By (0)

FileMaker OData API Client (ifresh/filemaker-odata-api)
=======================================================

[](#filemaker-odata-api-client-ifreshfilemaker-odata-api)

Lightweight PHP client for interacting with FileMaker's OData endpoint using Saloon.

Overview
--------

[](#overview)

- Connector: [`IFresh\FileMakerODataApi\FileMakerODataConnector`](src/FileMakerODataConnector.php) — builds the base URL, provides authentication and resources.
- Resources:
    - [`IFresh\FileMakerODataApi\Resources\Resources\MetadataResource`](src/Resources/Resources/MetadataResource.php) — metadata endpoints.
    - [`IFresh\FileMakerODataApi\Resources\Resources\RecordsResource`](src/Resources/Resources/RecordsResource.php) — CRUD operations for entity sets.
- Request classes live under `src/Requests` (metadata and records). Examples:
    - [`IFresh\FileMakerODataApi\Requests\Metadata\GetDatabaseNamesRequest`](src/Requests/Metadata/GetDatabaseNamesRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Metadata\GetTableListRequest`](src/Requests/Metadata/GetTableListRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Metadata\GetDatabaseMetadataRequest`](src/Requests/Metadata/GetDatabaseMetadataRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Records\CreateRecordRequest`](src/Requests/Records/CreateRecordRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Records\UpdateRecordRequest`](src/Requests/Records/UpdateRecordRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Records\DeleteRecordRequest`](src/Requests/Records/DeleteRecordRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Records\FetchRecordsRequest`](src/Requests/Records/FetchRecordsRequest.php)
    - [`IFresh\FileMakerODataApi\Requests\Records\FetchSingleRecordRequest`](src/Requests/Records/FetchSingleRecordRequest.php)
- Query helpers: [`IFresh\FileMakerODataApi\QueryOptions`](src/QueryOptions.php)
- Custom pending request to merge query params: [`IFresh\FileMakerODataApi\Requests\PendingFileMakerRequest`](src/Requests/PendingFileMakerRequest.php)

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

[](#installation)

```
composer require ifresh/filemaker-odata-api
```

Copy environment template and set values:

- [.env.example](.env.example)
    - FM\_HOST
    - FM\_USERNAME
    - FM\_PASSWORD

Basic Usage
-----------

[](#basic-usage)

```
use IFresh\FileMakerODataApi\FileMakerODataConnector;

$connector = new FileMakerODataConnector(
    host: 'https://example.com',
    username: 'user',
    password: 'pass',
    database: 'Tasks' // optional default database
);

// Metadata
$databases = $connector->metadata()->getDatabaseNames();

// Records
$recordsResource = $connector->records('Assignees');
$new = $recordsResource->createRecord(['First Name' => 'John', 'Last Name' => 'Doe']);
$single = $recordsResource->fetchSingleRecord($new['PrimaryKey']);
```

See [`src/FileMakerODataConnector.php`](src/FileMakerODataConnector.php) and resources for more methods.

Querying
--------

[](#querying)

Use [`IFresh\FileMakerODataApi\QueryOptions`](src/QueryOptions.php) to supply OData query options (filter, orderby, top, skip, select, count).

Tests
-----

[](#tests)

This package is tested with Pest. See the test bootstrap and helpers:

- [tests/Pest.php](tests/Pest.php)
- [tests/TestCase.php](tests/TestCase.php)
- Fixtures for faking HTTP responses: [tests/Fixtures/ODataFixture.php](tests/Fixtures/ODataFixture.php) and JSON fixtures in [tests/Fixtures/Saloon](tests/Fixtures/Saloon)

Run tests:

```
composer install --dev
./vendor/bin/pest
```

Notes for Contributors
----------------------

[](#notes-for-contributors)

- Coding standards via Laravel Pint (dev).
- Static analysis: [phpstan.neon](phpstan.neon) (level 6).
- The connector uses Saloon's `BasicAuthenticator` by default (see test: [tests/Feature/FileMakerODataConnectorTest.php](tests/Feature/FileMakerODataConnectorTest.php)).

License
-------

[](#license)

See composer.json for package metadata: [composer.json](composer.json)

###  Health Score

43

—

FairBetter than 91% of packages

Maintenance90

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 81.8% 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 ~74 days

Recently: every ~59 days

Total

7

Last Release

48d ago

Major Versions

0.1.1 → 1.0.02025-08-07

### Community

Maintainers

![](https://www.gravatar.com/avatar/a5745f0b6de488e95032a4a7023a50e3020be4e17f79160d53651926465b569c?d=identicon)[sbouman](/maintainers/sbouman)

---

Top Contributors

[![stephanbouman](https://avatars.githubusercontent.com/u/67788644?v=4)](https://github.com/stephanbouman "stephanbouman (9 commits)")[![P1-Roger](https://avatars.githubusercontent.com/u/70755754?v=4)](https://github.com/P1-Roger "P1-Roger (1 commits)")[![yvanderLinden](https://avatars.githubusercontent.com/u/56296922?v=4)](https://github.com/yvanderLinden "yvanderLinden (1 commits)")

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/ifresh-filemaker-odata-api/health.svg)

```
[![Health](https://phpackages.com/badges/ifresh-filemaker-odata-api/health.svg)](https://phpackages.com/packages/ifresh-filemaker-odata-api)
```

###  Alternatives

[skagarwal/google-places-api

Google Places Api

1913.0M8](/packages/skagarwal-google-places-api)[saloonphp/laravel-plugin

The official Laravel plugin for Saloon

805.7M125](/packages/saloonphp-laravel-plugin)[esign/laravel-conversions-api

A laravel wrapper package around the Facebook Conversions API

69145.4k](/packages/esign-laravel-conversions-api)[myoutdeskllc/salesforce-php

salesforce library for php8+

1560.8k](/packages/myoutdeskllc-salesforce-php)

PHPackages © 2026

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