# Infoworks > Infoworks is an Enterprise Data Operations and Orchestration (EDO2) platform that automates data > onboarding, preparation and operationalization onto Databricks, Snowflake, BigQuery, Synapse and > Apache Spark. It is deployed into the customer's own cloud account rather than run as a > multi-tenant SaaS. Uniphore acquired Infoworks in 2024 and sells it as InfoWorks inside the > Uniphore Business AI platform. This file was GENERATED by API Evangelist from Infoworks' published > OpenAPI and documentation on 2026-08-23 — Infoworks does not publish an llms.txt of its own > (docs.infoworks.io/llms.txt returns HTTP 403 "Access denied."). ## What the API is The Infoworks REST API v3 has 369 paths and 510 operations across 62 tags. Base URL is templated: `{protocol}://{host}:{port}/v3`, where {host} is the customer's own Infoworks deployment. There is no vendor-hosted API endpoint, no status page, and no public sandbox — because there is no shared service to host, status or sandbox. ## Authentication Two-step. Mint a short-lived JWT, then bearer it. - `GET /v3/security/authenticate` with `Authorization: Basic base64(username:password)` — not usable for SAML deployments. - `GET /v3/security/token/access` with `Authorization: Basic ` — the refresh token is copied from the Infoworks UI at My Profile > Settings; works for every auth mechanism including SAML. - Both return the JWT at `result.authentication_token`. Default lifetime 15 minutes, configurable. - `GET /v3/security/token/validate` checks a token; `DELETE /v3/security/token/access` purges it; `DELETE /v3/security/token/refresh` rotates the refresh token and blacklists the old one. - No OAuth 2.0, no OpenID Connect, no API keys, no scopes. ## Conventions an agent needs - Pagination: `offset` / `limit` (default 10) / `sort_by` / `order_by` (asc|desc) / `filter`. Responses echo limit and offset and carry `links.base` and `links.self`. No cursor, no total count. - Errors: proprietary JSON envelope `{message, details, iw_code, help}`. NOT RFC 9457. Branch on `iw_code` (IW10004 auth, IW10005 unauthorized, IW10006 bad request, IW10002 server error, IW10031 authentication failed). The `help` URLs point at api.infoworks.io, which no longer resolves. - 406 Not Acceptable — not 401 — is returned for bad credentials on `/security/authenticate`. - IDEMPOTENCY: NOT SUPPORTED. There is no Idempotency-Key on any operation. Do not blind-retry a POST. - RATE LIMITS: none published, no 429 declared, no Retry-After. The only documented time bound is the 15-minute token lifetime. - REVERSIBILITY: cancel/pause/resume/unlock exist for running work; every DELETE is permanent with no restore and no stated retention window. Take `GET /sources/{source_id}/config-migration` (or the pipeline/workflow equivalent) BEFORE any destructive call — that export is the only recovery path the provider publishes. ## Core entities Source -> Table / TableGroup / TopicMapping / FileMapping; Domain -> Pipeline (-> PipelineVersion -> Node) / PipelineGroup / Workflow (-> WorkflowVersion, WorkflowRun -> Task); Environment -> storage, compute templates, interactive clusters; plus Job, User, Secret, ServiceAuth, JobHook, Extension, Subscriber. IDs are 24-character hex MongoDB ObjectIds with no type prefix. ## High-value operations - `GET /sources` (getSourceList), `POST /sources` (createSource), `GET /sources/{source_id}` (getSourceInfo) - `POST /sources/{source_id}/fetch-tables` (fetchTablesList) — list candidate tables WITHOUT adding them - `POST /sources/{source_id}/tables/source_tables` (getSourceTablesList) — add tables and crawl metadata - `POST /sources/{source_id}/jobs` (createJobForSource) — start ingestion - `GET /admin/jobs` (getJobs), `GET /admin/jobs/{job_id}/logs` (get_job_logs_admin) - `POST /domains/{domain_id}/workflows/{workflow_id}/start` (startWorkflow) - `GET /domains/{domain_id}/workflows/{workflow_id}/runs` (getWorkflowRunsByWorkflowId) - `POST /domains/{domain_id}/workflows/{workflow_id}/runs/{workflow_run_id}/cancel` (cancelWorkflowRun) - `GET /domains/{domain_id}/workflows/{workflow_id}/lineage` (getWorkflowLineage) - `GET /prodops/jobs/{job_id}/cancel` (cancelJobByIdForProdOps) — note: a cancel exposed as GET ## What does not exist No MCP server. No A2A agent card. No GraphQL. No gRPC/protobuf. No WSDL. No AsyncAPI and no outbound HTTP webhooks — "Job Hooks" are uploaded BASH/PYTHON scripts run in-process, and Event Notifications drive email. No public pricing, no self-serve signup, no sandbox, no status page, no security.txt, no OAuth scopes, no CLI, no embeddable components. No `components.schemas` in the contract at all. ## Links - Documentation: https://docs.infoworks.io/ - REST API guide: https://docs.infoworks.io/developer-resources/rest-api - API reference: https://docs.infoworks.io/infoworks-rest-api-v3/ref - Getting started: https://docs.infoworks.io/getting-started/navigating-infoworks - Release notes: https://docs.infoworks.io/infoworks-release-notes/release-notes - Support: https://support.infoworks.io/support/home - Python SDK: https://pypi.org/project/infoworkssdk/ (`pip install infoworkssdk`, 5.1.2, 2025-10-21) - Product page: https://www.uniphore.com/infoworks/ - Trust center: https://trust.uniphore.com/