openapi: 3.1.0 info: title: Act! Web API — Import version: v1 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/ 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 tags: - name: Import security: - bearerAuth: [] actDatabaseName: [] paths: /api/import/mapping/{entityType}: post: tags: - Import summary: Get list of target fields for mapping. operationId: Import_PostImportMapping_C381049D parameters: - name: entityType in: path required: true description: Type of entity (Contact, Company ectc.). schema: type: string enum: - Contact - Company requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingDataRequest' application/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingDataRequest' text/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingDataRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingDataRequest' description: Headers that should be mapped to target fields. responses: '200': description: OK indicates that the request succeeded and that the requested information is in the response. content: application/json: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingData' application/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingData' text/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.MappingData' '401': description: Unauthorized indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication. '500': description: Unexpected error. /api/s3-import: post: tags: - Import summary: Start import flow. operationId: Import_PostImport_FF1F73F5 requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportDataRequest' application/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportDataRequest' text/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportDataRequest' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportDataRequest' description: Import configurations. responses: '200': description: OK indicates that the request succeeded and that the requested information is in the response. content: application/json: schema: $ref: '#/components/schemas/act.web.api.models.Import.GenerateImport' application/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.GenerateImport' text/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.GenerateImport' '401': description: Unauthorized indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication. '500': description: Unexpected error. /api/s3-import/{id}: get: tags: - Import summary: Get import results. operationId: Import_GetImportResult_0BF82A0A parameters: - name: id in: path required: true description: Unique import identifier. schema: type: string responses: '200': description: OK indicates that the request succeeded and that the requested information is in the response. content: application/json: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportResult' application/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportResult' text/xml: schema: $ref: '#/components/schemas/act.web.api.models.Import.ImportResult' '401': description: Unauthorized indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication. '404': description: NotFound indicates that the requested resource does not exist on the server. '500': description: Unexpected error. post: tags: - Import summary: Imports contact records from .csv file. operationId: Import_PostStartImport_39EDCFD5 parameters: - name: id in: path required: true description: Unique import identifier. schema: type: string responses: '200': description: OK indicates that the request succeeded and that the requested information is in the response. content: application/json: schema: $ref: '#/components/schemas/System.Void' application/xml: schema: $ref: '#/components/schemas/System.Void' text/xml: schema: $ref: '#/components/schemas/System.Void' '401': description: Unauthorized indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication. '500': description: Unexpected error. components: 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 on every API request.' actDatabaseName: type: apiKey in: header name: Act-Database-Name description: Name of the Act! database the request is scoped to. schemas: System.Void: type: object properties: {} act.web.api.models.Import.GenerateImport: type: object properties: id: type: string preSignedUrl: type: string act.web.api.models.Import.ImportDataRequest: type: object properties: mappings: description: '' type: array items: $ref: '#/components/schemas/act.web.api.models.Import.ResolvedMapping' hasHeaders: description: '' type: boolean contentType: description: '' type: string entityType: description: '' enum: - Contact - Company type: string tempFilePath: description: '' type: string act.web.api.models.Import.ImportResult: description: Result of contacts import type: object properties: isReady: description: Define if import completed type: boolean success: description: Define if import was successful type: boolean errorMessage: description: Error message if import went wrong type: string successCount: format: int32 description: Count of successfully added/merged records type: integer failedCount: format: int32 description: Count of failed records type: integer failedErrors: description: '' type: array items: type: string act.web.api.models.Import.MappingData: description: '' type: object properties: targetFields: description: List of fields valid for mapping type: array items: $ref: '#/components/schemas/act.web.api.models.Import.WebImportField' mappings: description: Fields mappings type: array items: $ref: '#/components/schemas/act.web.api.models.Import.ResolvedMapping' uniqueHeaders: description: Define if all headers are unique type: boolean act.web.api.models.Import.MappingDataRequest: type: object properties: headers: description: Array of headers to map with fields type: array items: type: string act.web.api.models.Import.ResolvedMapping: type: object properties: sourceField: $ref: '#/components/schemas/act.web.api.models.Import.WebImportField' description: '' targetField: $ref: '#/components/schemas/act.web.api.models.Import.WebImportField' description: '' act.web.api.models.Import.WebImportField: type: object properties: name: description: Field name type: string display: description: Display name type: string