| Vendor | Alchemy | Montala Limited |
|---|
| HQ | France (Paris) | UK (Watchfield, Oxfordshire) |
|---|
| Founded | 1996 | 2006 |
|---|
| Ownership | independent (privately held French SARL) | independent (100% employee-owned via an Employee Ownership Trust since 2020-10) |
|---|
| Target market | SMB to enterprise (companies, public sector, photographers) | Mid-market |
|---|
| Hosting regions | Not public | UK |
|---|
| Pricing model | free open-source licence; SaaS plans by workspaces, storage and request quotas (from €169/month); services packs | free open-source software (BSD-style licence); paid annual hosting + support packages (4 public tiers) |
|---|
| SSO | SAML, OIDC | SAML, LDAP |
|---|
| Certifications | None published | ISO 27001 |
|---|
| OpenAPI spec | Yes | No |
|---|
| Webhooks (overview) | Yes | PartialAPI Webhooks plugin: user-triggered outbound POST buttons, no event subscriptions |
|---|
| Official MCP server | No | NoMCP API interface on the official 11.1 roadmap, planned 2027-02-23, status Scoping; unreleased prototype in a public SVN branch |
|---|
| API base URL | Phrasea: https://api-databox.{domain}/ · Phraseanet: https://{host}/api/v3/ | https://{host}/api/ |
|---|
| Authentication | OAuth 2.0 authorization code, OAuth 2.0 PKCE, OAuth 2.0 client credentials, OAuth 2.0 password, API key | API key, Session login |
|---|
| Token lifetime | Phrasea: Keycloak realm setting (Not public); Phraseanet v1: tokens do not expire | User key: no expiry documented; session key tied to login session |
|---|
| Rate limit | Phraseanet v1: none; Phrasea SaaS plans: 5-40 concurrent requests + request quotas | None documented (API throttling on the 11.2 roadmap, not yet scheduled) |
|---|
| Pagination | Phrasea: page + limit (max 100); Phraseanet v3: offset/limit or page/per_page (max 100) | offset (do_search fetchrows "offset,limit" returns total + data; offset param) |
|---|
| Webhooks (API) | Phrasea: admin-managed entity events, unsigned; Phraseanet: per OAuth app, 17 events | none (API Webhooks plugin = user-triggered outbound POST buttons) |
|---|
| API spec | OpenAPI 3.1.0 Databox (239 ops) + Expose (37 ops); Phraseanet v3 OpenAPI 3.0.3 (7 ops) | none published (KB-described per-instance OpenAPI generator absent from 11.0 code) |
|---|
| Official SDKs | Phraseanet PHP SDK (last release 2021); no official Phrasea SDK | none official (built-in API test tool generates PHP and cURL code) |
|---|