Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Integrators' FAQ

Short answers to the questions integrators ask most about Exponential - APIs, authentication, webhooks, imports, identity, search, performance, upgrades, licensing and the partner program - each with a link to the page…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/integrators/integrators-faq.md

On this page

Integrators' FAQ

Short answers with links. Each answer is checked against the code and settings of Exponential 6.0.15 and the extensions the root composer.json requires.

Contents

  1. APIs
  2. Authentication and identity
  3. Imports and exports
  4. Events and hooks
  5. Operations
  6. Business

APIs

Is there a REST API? Yes: the ezprestapi extension serves content reads at /api/ezp/v1/... and /api/ezp/v2/..., and create and delete at v2 (REST API for integrators).

Can I update content over REST? Not through ezprestapi: the update route answers 501. Use expobject::update of expservices, or PHP on the server (Remote services with expservices).

Is there GraphQL or an OpenAPI description? No. Velocity publishes /.well-known/openapi.json for its own handlers, not for the content API (Integration surfaces at a glance).

What is expservices? About a thousand named JSON services over /ezjscore/call/exp<domain>::<method>, the administration's functions as an API, each behind its policy.

Is there search over an API? expsearch::search, count, facets and more in expservices; not in the REST API.

Is SOAP still there? Yes, SOAP 1.1 without WSDL, off by default (soap.ini EnableSOAP=false) (WebDAV and SOAP). Its address is /index_soap.php since 6.0.15; /soap.php still answers as a forwarding shim (the SOAP entry script is now index_soap.php).

Authentication and identity

How does a server authenticate? With a personal API key of a service account (Authorization: Bearer expk_...) for REST, or an expservices token (Choosing credentials).

Is there a client-credentials grant? No; the OAuth server supports authorization_code and refresh_token. Use an API key for machine-to-machine (OAuth applications).

Can staff sign in with Active Directory? Through the LDAP login handler, with LDAPVersion=3 and an ldaps:// connection (Login handlers).

Is there SAML? No. Use an identity-aware proxy in front and an SSO handler of your own, or custom work (Single sign-on).

Social login? Yes, through sevenx_authentication_2fa (Google, Facebook, Meta, Instagram, Twitter, ID.me).

Imports and exports

How do I avoid duplicates? Give every imported object a remote_id from a key scheme and find it with eZContentObject::fetchByRemoteID() before creating (Idempotent imports).

Can I write to the database tables directly? No. Use eZContentFunctions; direct writes skip versions, workflows, caches, the search index and the audit.

Will an import send thousands of notification mails? Not if you pass $notify = false to the content functions (Mail and notifications).

Is there a no-code file exchange? xrowextract: CSV, JSON, XML and packages, scheduled, delivered to SFTP, S3, WebDAV or HTTP (Bulk data exchange).

How do I move a subtree between installations? A package with ezpm.php, or continuously with syndication.

Events and hooks

Is there a webhook when content is published? Not a generic one. Use a workflow event on content / publish / after with an outbox, or route content.object.publish to the audit trail's signed webhook sink (Workflows and triggers, Audit webhooks).

Can another system approve a publication? A workflow event on content / publish / before can accept, reject or defer to the cronjob.

How do I purge a CDN? Listen to content/cache and content/cache/all (Event listeners).

Is there an incoming webhook endpoint? No; build one as a module view, a server function or an expservices domain of your extension, storing the payload first (inbox).

Operations

Do I need to do anything special for Velocity? Restart it after class changes, never keep request state in statics, and know that anonymous GET answers may come from its response cache when it is enabled (Velocity and performance).

Why does the site show old content after my import? Content published through the content functions clears its own caches; template blocks, Velocity's response cache and outer caches may need clearing (Caching after imports).

How do I know the integration still works? Summary lines, alert on their absence, backlog and freshness checks (Monitoring).

Will an upgrade break my integration? Read the behavior change notes, rehearse on a copy, run the acceptance cases (Upgrades).

Business

Under which license can I distribute my connector? Choose GPL v2 or later for code that runs inside Exponential and is distributed; not legal advice (Contributing integrations back).

Does the partner program fit integration companies? Yes, usually as an IT partner; levels from Student to Platinum, 10% or 20% lead commission (Integrators and the partner program).

Who answers questions about the kernel? The forums and Telegram for the community; 7x for paid support (Integrators: start here).

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x