Mavenlink · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Kantata OX API

9 actions 9 updates security extends openapi/mavenlink-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Mavenlink's API. It is a proposal applied on top of the contract, not a document Mavenlink publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-reversal-ofx-reversibilityx-window-statedcontactx-spec-sourcex-providerx-api-evangelist-profilesecurity

Targets 9

$.info
$
$.securityDefinitions.OauthSecurity
$.paths..responses
$.definitions.Error
$.paths['/subscribed_events'].get
$.paths['/invoices/{id}/cancel'].put
$.paths['/timesheet_submissions/{id}/cancel'].put
$.paths['/expense_report_submissions/{id}/cancel'].put

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Kantata OX API
  version: 1.0.0
extends: openapi/mavenlink-openapi.yml
x-provenance:
  generated: '2026-08-25'
  method: generated
  source: >-
    openapi/mavenlink-openapi.yml (harvested verbatim from https://app.mavenlink.com/oas/specification) plus the
    Kantata OX API reference at https://developer.kantata.com/ and the discovery documents in well-known/
  note: >-
    This overlay records API Evangelist's enhancements. It NEVER mutates the harvested contract. The largest
    correction it makes is applying the security requirement: the published Swagger 2.0 document declares two
    securityDefinitions and then references neither, so a generated client would send no Authorization header
    even though all 419 operations require a bearer token.
actions:
- target: $.info
  description: Record the true public contract location and the provider's current corporate identity.
  update:
    contact:
      name: Kantata Support
      url: https://www.kantata.com/customer-resources
    x-spec-source: https://app.mavenlink.com/oas/specification
    x-provider: Kantata (formerly Mavenlink; Kantata OX product line)
    x-api-evangelist-profile: https://apis.io/provider/mavenlink
- target: $
  description: >-
    Apply the declared security globally. The published contract defines BearerToken and OauthSecurity but
    applies neither, so spec-driven clients and generators produce unauthenticated calls against an API where
    every endpoint returns 401 without a token.
  update:
    security:
    - BearerToken: []
    - OauthSecurity: []
- target: $.securityDefinitions.OauthSecurity
  description: >-
    Populate the empty scopes map from the OAuth/OIDC discovery documents Kantata serves anonymously at
    /.well-known/openid-configuration and /.well-known/oauth-authorization-server.
  update:
    scopes:
      api_only: Kantata OX API access without OpenID identity claims
      openid: Request an OpenID Connect ID token
      email: Release the email claim
      profile: Release profile claims including account_id and account_name
      mcp: Access the Kantata OX MCP server at https://api.mavenlink.com/mcp
      offline_access: Request a refresh token
    x-discovery: https://api.mavenlink.com/.well-known/openid-configuration
- target: $.paths..responses
  description: >-
    Document the 429 the API reference says the API returns. It is described in prose under Rate Limits but is
    absent from every one of the 419 operations, so no generated client has a branch for it.
  update:
    '429':
      description: >-
        Too Many Requests. Documented in the API reference Rate Limits section; retry after a small delay. No
        RateLimit-* or Retry-After header is emitted. The exact limits are published only in a customer-login
        knowledge-base article.
      schema:
        $ref: '#/definitions/Errors'
- target: $.definitions.Error
  description: Record the enumerated error `type` values published in the API reference Errors section.
  update:
    x-error-types:
    - oauth
    - system
    - validation
    x-source: https://developer.kantata.com/
- target: $.paths['/subscribed_events'].get
  description: Record the published retention window and delivery semantics on the change-feed operation itself.
  update:
    x-retention-days: 9
    x-delivery: polling
    x-ordering-guaranteed: false
    x-duplicates-possible: true
    x-entitlement: add-on; Account Administrators only
    x-docs: https://knowledge.kantata.com/hc/en-us/articles/4407962435227-Subscribed-Events-Reference
- target: $.paths['/invoices/{id}/cancel'].put
  description: Mark the reversal path for invoice issuance so an agent can find it before it acts.
  update:
    x-reversal-of: Create Invoice
    x-reversibility: documented
    x-window-stated: false
- target: $.paths['/timesheet_submissions/{id}/cancel'].put
  description: Mark the reversal path for timesheet submission.
  update:
    x-reversal-of: Create Timesheet Submission
    x-reversibility: documented
    x-window-stated: false
- target: $.paths['/expense_report_submissions/{id}/cancel'].put
  description: Mark the reversal path for expense report submission.
  update:
    x-reversal-of: Create Expense Report Submission
    x-reversibility: documented
    x-window-stated: false