Fixture · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Fixture API v1

8 actions 8 updates update extends ../openapi/fixture-v1-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Fixture's API. It is a proposal applied on top of the contract, not a document Fixture publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

contacttermsOfServicex-logox-statusx-apis-io-providerexternalDocsx-llms-txtx-mcp-server

Targets 8

$.info
$
$.servers
$.components.securitySchemes.bearerAuth
$.paths['/api/v1/activities'].post
$.paths['/api/v1/contacts/{contact_id}'].get
$.paths['/api/v1/leads/{lead_id}/convert'].post
$.components

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Fixture API v1
  version: 1.0.0
extends: ../openapi/fixture-v1-openapi.json
x-generated: '2026-07-20'
x-method: generated
x-source: openapi/fixture-v1-openapi.json plus https://fixture.app/docs (overview, errors,
  rate-limiting, authentication, scopes, activities)
actions:
- target: $.info
  description: Add contact, license placeholder, terms, and external docs so the description
    is self-contained.
  update:
    contact:
      name: Fixture
      url: https://fixture.app/docs
    termsOfService: https://fixture.app/terms
    x-logo:
      url: https://fixture.app/logo-for-black.svg
    x-status: beta
    x-apis-io-provider: fixture
- target: $
  description: Attach external documentation and the agent-facing surfaces that are documented
    but absent from the generated description.
  update:
    externalDocs:
      description: Fixture Docs
      url: https://fixture.app/docs
    x-llms-txt: https://fixture.app/docs/llms.txt
    x-mcp-server:
      endpoint: https://beta-api.fixture.app/api/mcp
      transport: http
      authorization: oauth2
      docs: https://fixture.app/docs/guides/agents/fixture-mcp
    x-cli:
      name: fixture
      install: curl -fsSL https://downloads.fixture.app/fixture-cli/install.sh | bash
      docs: https://fixture.app/docs/guides/agents/fixture-cli
    x-status-page: https://status.fixture.app
- target: $.servers
  description: Document the beta host explicitly rather than leaving an unlabeled server entry.
  update:
  - url: https://beta-api.fixture.app
    description: Beta / current customer release host. Pairs with the beta.fixture.app dashboard.
- target: $.components.securitySchemes.bearerAuth
  description: Record the two credential shapes accepted by the single bearer scheme, and
    that session cookies are rejected.
  update:
    x-credential-types:
    - type: api-key
      prefix: fx_
      used_by: External integrations and service jobs
      docs: https://fixture.app/docs/authentication/api-keys
    - type: oauth-access-token
      prefix: eyJ
      used_by: Fixture CLI, in-app Agent, and MCP clients
      docs: https://fixture.app/docs/authentication/scopes
    x-session-cookies-accepted: false
    x-oauth-metadata: https://beta-api.fixture.app/.well-known/oauth-authorization-server
    x-scopes-docs: https://fixture.app/docs/authentication/scopes
- target: $.paths['/api/v1/activities'].post
  description: Make the external_id idempotency contract machine-readable on the one operation
    that implements it.
  update:
    x-idempotency:
      supported: true
      style: body-field
      field: external_id
      replay_identical_status: 200
      conflict_status: 409
      conflict_code: idempotency_conflict
      header: none
      docs: https://fixture.app/docs/api-reference/activities
- target: $.paths['/api/v1/contacts/{contact_id}'].get
  description: Record the merged-Contact redirect semantics as a machine-readable lifecycle
    signal.
  update:
    x-lifecycle:
      merged_redirect_status: 301
      pointer_field: merged_into
      guidance: Follow merged_into and repoint stored Contact IDs at the surviving record.
- target: $.paths['/api/v1/leads/{lead_id}/convert'].post
  description: Record the compound scope requirement documented for Lead conversion.
  update:
    x-required-scopes:
      always:
      - leads:write
      - accounts:write
      - contacts:write
      conditional:
      - scope: deals:write
        when: create_deal is true
      failure_status: 403
      docs: https://fixture.app/docs/authentication/scopes
- target: $.components
  description: Publish the rate-limit response headers as reusable header components, since
    the generated description omits them.
  update:
    headers:
      X-RateLimit-Limit:
        description: Maximum requests allowed in the current window (100 per minute per API
          key).
        schema:
          type: integer
      X-RateLimit-Remaining:
        description: Requests remaining in the current window.
        schema:
          type: integer
      X-RateLimit-Reset:
        description: Unix timestamp at which the current window resets.
        schema:
          type: integer
      Retry-After:
        description: Seconds to wait before retrying, returned on 429.
        schema:
          type: integer