Infoworks · OpenAPI Overlay 1.0.0
API Evangelist enhancements for the Infoworks REST API v3
6 actions
6 updates
documentation
extends
../openapi/infoworks-rest-api-v3-openapi.yml
Derived by API Evangelist
Built from the contracts Infoworks publishes. Infoworks did not publish this file.
What the actions change
descriptioncontacttermsOfServicex-documentationx-api-referencex-product-version-at-capturex-vendorx-api-evangelist
Targets 5
$.info
$.servers[0]
$
$.tags[?(@.name=='Security')]
$.tags[?(@.name=='Job Hooks')]
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements for the Infoworks REST API v3
version: 1.0.0
extends: ../openapi/infoworks-rest-api-v3-openapi.yml
x-provenance:
generated: '2026-08-23'
method: generated
source: >-
Enhancements derived by API Evangelist from the provider's own published material — the REST API
chapter at https://docs.infoworks.io/developer-resources/rest-api, the release notes, the PyPI
package metadata for infoworkssdk, and Uniphore's published legal pages. Nothing here invents API
behaviour; every value is traceable to a provider-published source. The original contract at
openapi/infoworks-rest-api-v3-openapi.yml is never mutated.
actions:
- target: $.info
description: >-
Add the contact and terms metadata the published contract leaves empty (info.contact is literally
`{}`), so a generated client can name a support route and a legal basis.
update:
contact:
name: Infoworks Support (Uniphore)
url: https://support.infoworks.io/support/home
email: customer-engineering@infoworks.io
termsOfService: https://www.uniphore.com/legal/msa/
x-documentation: https://docs.infoworks.io/developer-resources/rest-api
x-api-reference: https://docs.infoworks.io/infoworks-rest-api-v3/ref
x-product-version-at-capture: 6.2.2
x-vendor: Uniphore (acquired Infoworks, 2024)
- target: $.servers[0]
description: >-
Document what the templated server actually means. Infoworks is deployed into the customer's own
cloud, so {host} is the customer's deployment; the spec's localhost:3001 default is the in-cluster
service address, while the first-party Python SDK README uses https on port 443 for an
ingress-fronted deployment.
update:
description: >-
Per-deployment base URL. Infoworks runs in the customer's own cloud account (Kubernetes on
AKS/EKS/GKE, or VM-based), so {host} and {port} are the customer's own values. Defaults
(http/localhost/3001) are the in-cluster service address. For an ingress-fronted deployment use
protocol=https and port=443, as the official Python SDK does.
- target: $
description: >-
Attach the derived artifact set so a consumer of the contract can reach the semantics the contract
itself does not carry — error codes, conventions, reversibility, entity graph and auth flows.
update:
x-api-evangelist:
authentication: authentication/infoworks-authentication.yml
conventions: conventions/infoworks-conventions.yml
errors: errors/infoworks-problem-types.yml
data_model: data-model/infoworks-data-model.yml
lifecycle: lifecycle/infoworks-lifecycle.yml
conformance: conformance/infoworks-conformance.yml
skills: skills/_index.yml
- target: $
description: >-
Record the measured contract-quality gaps as machine-readable findings rather than only in prose.
These are counts taken from the document itself on 2026-08-23, not opinions.
update:
x-contract-findings:
operations: 510
paths: 369
tags_declared: 41
tags_used_on_operations: 62
undeclared_tags: 21
undeclared_tags_note: >-
21 tags are applied to operations but never declared in the root tags[] array, so they carry no
description and no ordering in any rendered reference.
components_schemas: 0
components_schemas_note: >-
Every request and response body is inline. There is no reusable schema and no $ref graph, so no
code generator can produce named models from this contract.
operations_without_operation_id: 179
duplicate_operation_ids: 13
duplicate_operation_id_examples:
- 'GetUsers — GET /admin/users AND GET /users'
- 'deleteUserForAdmin — DELETE /admin/users/{user_id} AND DELETE /users/{user_id}'
- 'listServiceAuth — GET /admin/manage-secrets/service-auth AND GET /engagement/data/aggregate (clearly wrong)'
mislabelled_operation_ids:
- 'DELETE /domains/{domain_id}/workflows/{workflow_id} carries operationId `submitJob`'
- 'POST /sources/{source_id}/tables/source_tables carries operationId `getSourceTablesList`'
unsafe_verb_choices:
- 'GET /prodops/jobs/{job_id}/cancel — a state-changing cancel exposed as GET.'
- 'GET /security/authenticate returns a bearer token from a GET.'
status_code_anomalies:
- '406 Not Acceptable is returned for failed authentication on /security/authenticate, where 401 is expected.'
declared_error_help_links_dead: true
declared_error_help_links_note: >-
Every error response embeds help: http://api.infoworks.io/help/{iw_code}. api.infoworks.io does
not resolve (NXDOMAIN, probed 2026-08-23), so every remediation link in the contract is dead.
- target: $.tags[?(@.name=='Security')]
description: Give the auth tag the description the contract leaves empty, from the provider's own REST API chapter.
update:
description: >-
Token minting, validation and revocation. Exchange HTTP Basic (username:password) or a refresh
token from My Profile > Settings for a short-lived JWT (15 minutes by default), then send it as
a bearer token. Also carries SAML SSO initiation and LDAP authorisation/sync.
- target: $.tags[?(@.name=='Job Hooks')]
description: >-
Disambiguate a tag whose name reliably misleads integrators — Job Hooks are NOT HTTP webhooks.
update:
description: >-
Uploaded BASH or PYTHON scripts executed around job lifecycle events inside the deployment
(multipart/form-data upload; execution_type enum [BASH, PYTHON]; optional failJobIfHookFails).
These are in-process extensions, not outbound HTTP webhooks — Infoworks publishes no webhook or
AsyncAPI event contract.
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/infoworks-rest-api-v3-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.