Agile CRM · OpenAPI Overlay 1.0.0

Agile CRM Deals API - API Evangelist enrichment overlay

28 actions 28 updates documentation extends ../openapi/agile-crm-deals-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Agile CRM's API. It is a proposal applied on top of the contract, not a document Agile CRM publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationId401204400x-apievangelist-sourcex-provider-publishes-openapix-default-response-formatx-json-requires-accept-header

Targets 27 · first 16 shown; the file carries all of them

$.info
$.paths['/api/contacts/{id}/deals'].get
$.paths['/api/opportunity'].get
$.paths['/api/opportunity'].post
$.paths['/api/opportunity/based'].get
$.paths['/api/opportunity/bulk'].post
$.paths['/api/opportunity/byMilestone'].get
$.paths['/api/opportunity/byPipeline/based'].get
$.paths['/api/opportunity/email/{email}'].post
$.paths['/api/opportunity/my/deals'].get
$.paths['/api/opportunity/partial-update'].put
$.paths['/api/opportunity/partial-update/delete-contact'].put
$.paths['/api/opportunity/{id}'].get
$.paths['/api/opportunity/{id}'].delete
$.paths['/api/contacts/{id}/deals'].get.responses
$.paths['/api/opportunity'].get.responses

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: Agile CRM Deals API - API Evangelist enrichment overlay
  version: 1.0.0
extends: ../openapi/agile-crm-deals-api-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: https://github.com/agilecrm/rest-api/blob/master/README.md
x-note: 'Captures the enrichments API Evangelist applied on top of the base document: stable operationIds (the vendor names
  none), the error statuses documented in prose but absent from any machine-readable artifact, and the XML-by-default content-negotiation
  trap. It does NOT capture the path corrections made on 2026-08-13, which were applied to the base document itself because
  the previous paths did not match the vendor documentation and were therefore wrong, not enhanced.'
actions:
- target: $.info
  description: Record that this document is maintained by API Evangelist from the vendor's published REST API documentation,
    and that Agile CRM publishes no OpenAPI of its own.
  update:
    x-apievangelist-source: https://github.com/agilecrm/rest-api/blob/master/README.md
    x-provider-publishes-openapi: false
- target: $.paths['/api/contacts/{id}/deals'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: listContactDeals
- target: $.paths['/api/opportunity'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: listDeals
- target: $.paths['/api/opportunity'].post
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: createDeal
- target: $.paths['/api/opportunity/based'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: listDealsByTrack
- target: $.paths['/api/opportunity/bulk'].post
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: bulkDeleteDeals
- target: $.paths['/api/opportunity/byMilestone'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: listDealsByMilestone
- target: $.paths['/api/opportunity/byPipeline/based'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: listDealsByPipeline
- target: $.paths['/api/opportunity/email/{email}'].post
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: createDealForContactByEmail
- target: $.paths['/api/opportunity/my/deals'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: listMyDeals
- target: $.paths['/api/opportunity/partial-update'].put
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: updateDeal
- target: $.paths['/api/opportunity/partial-update/delete-contact'].put
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: removeDealContacts
- target: $.paths['/api/opportunity/{id}'].get
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: getDeal
- target: $.paths['/api/opportunity/{id}'].delete
  description: Assign a stable operationId; the vendor's documentation names no operation identifiers.
  update:
    operationId: deleteDeal
- target: $.paths['/api/contacts/{id}/deals'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity'].post.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '400':
      description: Bad Request - the input is in the wrong format. No field-level detail is returned.
- target: $.paths['/api/opportunity/based'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity/bulk'].post.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '400':
      description: Bad Request - the input is in the wrong format. No field-level detail is returned.
- target: $.paths['/api/opportunity/byMilestone'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity/byPipeline/based'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity/email/{email}'].post.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '400':
      description: Bad Request - the input is in the wrong format. No field-level detail is returned.
- target: $.paths['/api/opportunity/my/deals'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity/partial-update'].put.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '400':
      description: Bad Request - the input is in the wrong format. No field-level detail is returned.
- target: $.paths['/api/opportunity/partial-update/delete-contact'].put.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '400':
      description: Bad Request - the input is in the wrong format. No field-level detail is returned.
- target: $.paths['/api/opportunity/{id}'].get.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
    '204':
      description: No Content - Agile CRM returns 204 rather than 404 when no matching record exists.
- target: $.paths['/api/opportunity/{id}'].delete.responses
  description: Add the error statuses the vendor documents in its "Response - statuses" blocks but omits from any machine-readable
    form.
  update:
    '401':
      description: Unauthorised - the account email or REST client API key is wrong.
- target: $.info
  description: 'Flag the XML-by-default content negotiation: an Accept: application/json header is required on EVERY call
    or the response is XML.'
  update:
    x-default-response-format: application/xml
    x-json-requires-accept-header: true