The Content Gateway is a customer-hosted REST API that serves content into Moveworks Enterprise Search. You expose the gateway endpoints behind your own HTTPS server; Moveworks polls them on a schedule and handles ingestion (polling, diffing, retries), search indexing, and permission enforcement.
Build it once for any source system. Field mapping, content shape, rate limits, and access control all stay on your side, behind a stable spec.
You implement the spec. Moveworks does everything downstream: content normalization, indexing, AI grounding, and permission-aware search responses for end users.
Use Content Gateway when:
If a built-in connector already covers your source (Confluence, SharePoint, Google Drive, Zendesk, etc.), use that instead. See Built-in Content Connectors.
For a comparison of build approaches (source APIs vs web scraping), see Integration Strategies.
Content Gateway vs Legacy Gateways. The older Knowledge / Forms / Identity gateways are still supported but built on legacy search infrastructure. Content Gateway is the path forward; it supports per-file ReBAC permissions and is what new integrations should use. See Legacy Gateways only if you are maintaining an existing integration.
Full request and response schemas are in the Content Gateway API spec. For the access-control model see How Permissions Work; for sync pattern, capacity planning, and rate limits see the Operational Guide; for mistakes to avoid see Common Pitfalls.
The gateway returns ReBAC (relationship-based access control) permissions. Your /v1/files/permissions/metadata endpoint must declare model: "resource_permission", which is the only model Moveworks supports.
For the full permission model behavior (graph traversal, wildcard requirements, VIEW-only action), see How Permissions Work.
The fastest route from zero to a working gateway:
Clone the Starter Code repo. Run it locally to verify the protocol layer works against the demo data. The starter code handles OData pagination, Bearer auth, and error response shapes; you only write the source layer (calling your API and field mapping). Rate-limit header emission is a separate opt-in for production use.
See Starter Code for the walkthrough.
Run the included validate.py script to confirm every endpoint on your running server returns responses that conform to the schema. It catches field-mapping bugs and protocol drift before Moveworks-side ingestion ever runs.
See Verifying Your Build.
In Moveworks Setup, create a Content Gateway connector pointing at your server, configure ingestion under Enterprise Search, and verify content appears in search results.
See Connecting Your Gateway to Moveworks.
Choose API Key or OAuth 2.0 Client Credentials. Set the matching value in the connector you created in step 3.
See Authentication.