Act! CRM · OpenAPI Overlay 1.0.0
API Evangelist enhancements to the Act! Web API contract
6 actions
4 updates
servers
Derived by API Evangelist
Built from the contracts Act! CRM publishes. Act! CRM did not publish this file.
What the actions change
descriptioncontacttermsOfServiceserverssecuritySchemessecurity
Targets 5
$.info
$
$.components
$.paths..responses
$.paths
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist enhancements to the Act! Web API contract
version: 1.0.0
x-provenance:
generated: '2026-08-13'
method: generated
source: >-
Captures every difference between the provider's own Swagger 2.0 document
(openapi/_original/act-web-api-swagger.json, fetched verbatim from
https://apimta.act.com/act.web.api/swagger/docs/v1 on 2026-08-13) and the
refined OpenAPI 3.1.0 documents in openapi/. Nothing here is invented: each
action carries the Act!-published URL the value came from.
extends: openapi/_original/act-web-api-swagger.json
applies_to: openapi/act-*-api-openapi.yml
note: >-
The provider document is never mutated. It declares no securitySchemes, no
servers block beyond host+basePath, no info.description, no contact and no
termsOfService, so an agent reading it alone cannot authenticate or reach
the API. These actions add exactly those facts, each sourced from Act!'s own
documentation.
actions:
- target: $.info
description: >-
Add a description explaining the OData query surface, batching and the
/authorize token exchange, plus contact and terms links. Sourced from
https://apimta.act.com/act.web.api/ and
https://apimta.act.com/act.web.api/OData/Index.
update:
description: >-
Act! Web API is a JSON-based REST API for the Act! CRM database,
exposing contacts, companies, groups, opportunities, activities, notes,
history and custom entities. Reads support OData query options ($filter,
$orderby, $top, $skip, $select, $expand) and requests may be batched via
POST /api/$batch. Authentication is a JWT bearer token obtained from GET
/authorize using HTTP Basic credentials plus an Act-Database-Name header.
contact:
name: Act! Developers
url: https://www.act.com/developer/
termsOfService: https://www.act.com/legal/terms-of-service/
- target: $
description: >-
Swagger 2.0 expresses only host + basePath, which flattens Act!'s three
real deployment shapes into one. Replace with an OpenAPI 3.1 servers[]
block carrying the concrete cloud host from the provider document plus the
two templated forms Act! publishes on its Web API home page under
"EndPoints".
update:
servers:
- url: https://apimta.act.com/act.web.api
description: >-
Act! Premium Cloud API — US region (host and basePath as published
in the provider Swagger document).
- url: https://{server}/{customer}-api/act.web.api
description: Act! Premium Cloud tenant endpoint, per the Act! Web API home page.
variables:
server:
default: apimta.act.com
customer:
default: customer
- url: https://{server}/act.web.api
description: Self-hosted Act! Premium for Web / Act! Premium Windows IIS deployment.
variables:
server:
default: localhost
- target: $.components
description: >-
The provider document declares NO securityDefinitions, so a generated
client has no way to authenticate. Add the three schemes Act! documents at
https://apimta.act.com/act.web.api/ — Basic (RFC 7617) to mint the token,
Bearer JWT (RFC 6750) to call, and the Act-Database-Name header that
selects the database.
update:
securitySchemes:
basicAuth:
type: http
scheme: basic
description: >-
HTTP Basic credentials (Act! user name and password, RFC 7617)
presented to GET /authorize together with the Act-Database-Name
header to mint a JWT bearer token.
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: >-
JWT bearer token returned by GET /authorize (RFC 6750). Sent as
Authorization: Bearer <token> on every API request.
actDatabaseName:
type: apiKey
in: header
name: Act-Database-Name
description: Name of the Act! database the request is scoped to.
- target: $
description: Apply the documented default security requirement to every operation.
update:
security:
- bearerAuth: []
actDatabaseName: []
- target: $.paths..responses
description: >-
NOTE — NOT APPLIED. Recorded as a recommendation only, because the
provider publishes no 429 and no Retry-After anywhere. Act! documents
X-RateLimit-Limit / -Remaining / -Reset for Act! Premium Cloud
(https://apimta.act.com/act.web.api/) but names no throttled status code,
so adding a 429 response would be an invention. Left for Act! to declare.
x-recommendation: >-
Declare the throttled status code and the X-RateLimit-* response headers
on operations subject to Act! Premium Cloud rate limiting.
- target: $.paths
description: >-
NOTE — NOT APPLIED. Eleven operations carry "Deprecated" or "Dep" inside
their generated operationId while advertising deprecated:false (listed in
lifecycle/act-lifecycle.yml under deprecated_by_naming_only). Marking them
deprecated:true here would assert a provider decision we cannot confirm;
it is recorded as a finding instead.
x-recommendation: >-
Set deprecated: true on ActivitySeries_*Deprecated_*,
Notes_GetByGroupDep_998BE8AB, HistoryTypes_GetDeprecated*,
System_GetMultilanguageCurrencyDeprecated_F1F71F04 and
Notes_GetByOpportunityDeprecated_8998BFA6.
x-conversion-notes:
- Swagger 2.0 body parameters converted to OpenAPI 3.1 requestBody, preserving the operation's declared consumes[] as the content media types.
- Swagger 2.0 formData parameters converted to a requestBody object schema.
- Response schema blocks converted to content keyed by the operation's declared produces[] (defaulting to application/json where produces was empty).
- '#/definitions/* references rewritten to #/components/schemas/*; schema names retained verbatim, including their dotted .NET namespace form.'
- x-nullable folded into JSON Schema 2020-12 type unions.
- 'deprecated: false was dropped as noise; no operation carried deprecated: true.'
- Split one document per tag (31 tags, 410 operations), carrying the transitive closure of the schemas each tag references.
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/act-web-api-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.