openapi: 3.2.0 info: title: Custom Objects Service Custom Data Schema Custom Data Schema API description: API to manage and import custom objects version: 3.4.3 servers: - url: https://api.actonsoftware.com/custom-objects description: Generated server url security: - bearerAuth: [] tags: - name: Custom Data Schema API description: Custom Data Schema API paths: /v1/{accountId}/schema/{objectId}: get: tags: - Custom Data Schema API summary: Returns a Custom Data schema description: Get a Custom Data schema operationId: getSchema parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: objectId in: path description: The Custom Data Schema Id for this request required: true schema: type: string responses: '200': description: Retrieved. content: application/json: schema: type: object '400': description: Received a bad request. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '404': description: Object schema not found. content: application/json: schema: type: object '415': description: Unsupported Media Type. content: application/json: schema: type: object '500': description: Internal Server Error. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' put: tags: - Custom Data Schema API summary: Updates a Custom Data schema basic properties description: Updates a Custom Data schema basic properties operationId: updateSchema parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: objectId in: path description: The Custom Data schema Id for this request required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSchemaRequestDTO' required: true responses: '200': description: Schema updated successfully content: application/json: schema: type: object '400': description: Bad request content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '404': description: Schema not found content: application/json: schema: type: object '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' delete: tags: - Custom Data Schema API summary: Deletes one Custom Data schema description: Deletes one Custom Data schema operationId: deleteSchema parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: objectId in: path description: The Custom Data schema Id to delete required: true schema: type: string - name: hard in: query description: Whether to perform a hard delete required: false schema: type: boolean responses: '200': description: Retrieved. content: application/json: schema: type: object '400': description: Received a bad request. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '404': description: Object Schema not found. content: application/json: schema: type: object '415': description: Unsupported Media Type. content: application/json: schema: type: object '500': description: Internal Server Error. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' /v1/{accountId}/schema/{objectId}/field: put: tags: - Custom Data Schema API summary: Updates Custom Data schema field properties description: Updates a Custom Data schema fields basic properties operationId: updateFields parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: objectId in: path description: The Custom Data schema Id for this request required: true schema: type: string requestBody: content: application/json: schema: type: array description: The field definitions with updated properties items: $ref: '#/components/schemas/FieldDefinitionDTO' required: true responses: '200': description: Fields updated successfully content: application/json: schema: type: object '400': description: Bad request content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '404': description: Schema or fields not found content: application/json: schema: type: object '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' post: tags: - Custom Data Schema API summary: Adds fields to Custom Data schemas description: Adds fields to Custom Data schemas operationId: addFields parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: objectId in: path description: The Custom Data schema Id for this request required: true schema: type: string requestBody: content: application/json: schema: type: array description: The fields to add items: $ref: '#/components/schemas/FieldDefinitionDTO' required: true responses: '200': description: Fields added successfully content: application/json: schema: type: object '400': description: Received a bad request content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '404': description: Schema not found content: application/json: schema: type: object '415': description: Unsupported Media Type content: application/json: schema: type: object '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' delete: tags: - Custom Data Schema API summary: Deletes fields from Custom Data schemas description: Deletes fields from Custom Data schemas operationId: deleteFields parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: objectId in: path description: The Custom Data schema Id for this request required: true schema: type: string requestBody: content: application/json: schema: type: array description: The field names to delete items: type: string required: true responses: '200': description: Fields deleted successfully content: application/json: schema: type: object '400': description: Received a bad request content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '404': description: Schema or fields not found content: application/json: schema: type: object '415': description: Unsupported Media Type content: application/json: schema: type: object '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' /v1/{accountId}/schema: post: tags: - Custom Data Schema API summary: Create a Custom Data schema description: Create a Custom Data schema operationId: createSchema parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: dryRun in: query description: When true, validates the request without creating the schema required: false schema: type: boolean default: false requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateSchemaRequestDTO' required: true responses: '200': description: Successful response content: application/json: schema: type: object '400': description: Bad request content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '403': description: Forbidden content: application/json: schema: type: object '409': description: Schema already exists content: application/json: schema: type: object '415': description: Unsupported Media Type content: application/json: schema: type: object '500': description: Internal Server Error content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' /v1/{accountId}/schema/all: get: tags: - Custom Data Schema API summary: Returns all Custom Data schemas description: Get all Custom Data schemas operationId: getAllSchemas parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string responses: '200': description: Retrieved. content: application/json: schema: type: object '400': description: Received a bad request. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '415': description: Unsupported Media Type. content: application/json: schema: type: object '500': description: Internal Server Error. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' delete: tags: - Custom Data Schema API summary: Deletes all Custom Data schemas description: Deletes all Custom Data schemas operationId: deleteAllSchemas parameters: - name: accountId in: path description: The Act-On account Id for this request required: true schema: type: string - name: hard in: query description: Whether to perform a hard delete required: false schema: type: boolean responses: '200': description: Retrieved. content: application/json: schema: type: object '400': description: Received a bad request. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '401': description: Unauthorized content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' '415': description: Unsupported Media Type. content: application/json: schema: type: object '500': description: Internal Server Error. content: '*/*': schema: $ref: '#/components/schemas/HttpErrorResponse' components: schemas: FieldDefinitionDTO: type: object description: A custom object field definition properties: id: type: string description: ID of the field name: type: string description: Name of the field type: type: string description: Data type of the field description: type: string description: Description of the field displayName: type: string description: Display name of the field properties: type: object additionalProperties: type: string description: 'Field specific set of properties. Supported properties vary by field type: JSON: ''format'' (json|base64) ENUM: ''enumName'' (string), ''enumValues'' (string), ''enumValuesCaseSensitive'' (true|false) STRING_ARRAY: ''CSVSeparator'' (comma, semicolon, pipe, or tab) DATE: ''format'' (date format pattern), ''formatHint'' (hint string) DATETIME: ''format'' (datetime format pattern), ''formatHint'' (hint string), ''timezone'' (timezone identifier) CURRENCY: ''currencyCode'' (ISO currency code like USD, EUR, etc.)' example: timezone: US/Eastern extraData: type: string description: Extra data CreateSchemaRequestDTO: type: object description: The schema creation details properties: name: type: string description: Name of the custom object description: type: string description: Description of the custom object dataType: type: string description: Data type of the custom object fields: type: array description: List of fields in the custom object items: $ref: '#/components/schemas/FieldDefinitionDTO' requiredFields: type: array description: List of required fields in the custom object items: type: string uniqueFieldSet: type: array description: List of unique fields in the custom object items: type: string eventTimestampField: type: string description: Field name that contains the event timestamp primaryEmailField: type: string description: Field name that contains the primary email externalIdField: type: string description: Field name that contains the external id objectTypeField: type: string description: Field name that contains the object type relationships: type: array description: List of relationships of the custom object items: $ref: '#/components/schemas/RelationshipDefinitionDTO' HttpErrorResponse: type: object properties: errorId: type: string requestUri: type: string errorMessage: type: string errorList: type: array items: type: string status: type: string enum: - 100 CONTINUE - 101 SWITCHING_PROTOCOLS - 102 PROCESSING - 103 EARLY_HINTS - 103 CHECKPOINT - 200 OK - 201 CREATED - 202 ACCEPTED - 203 NON_AUTHORITATIVE_INFORMATION - 204 NO_CONTENT - 205 RESET_CONTENT - 206 PARTIAL_CONTENT - 207 MULTI_STATUS - 208 ALREADY_REPORTED - 226 IM_USED - 300 MULTIPLE_CHOICES - 301 MOVED_PERMANENTLY - 302 FOUND - 302 MOVED_TEMPORARILY - 303 SEE_OTHER - 304 NOT_MODIFIED - 305 USE_PROXY - 307 TEMPORARY_REDIRECT - 308 PERMANENT_REDIRECT - 400 BAD_REQUEST - 401 UNAUTHORIZED - 402 PAYMENT_REQUIRED - 403 FORBIDDEN - 404 NOT_FOUND - 405 METHOD_NOT_ALLOWED - 406 NOT_ACCEPTABLE - 407 PROXY_AUTHENTICATION_REQUIRED - 408 REQUEST_TIMEOUT - 409 CONFLICT - 410 GONE - 411 LENGTH_REQUIRED - 412 PRECONDITION_FAILED - 413 PAYLOAD_TOO_LARGE - 413 REQUEST_ENTITY_TOO_LARGE - 414 URI_TOO_LONG - 414 REQUEST_URI_TOO_LONG - 415 UNSUPPORTED_MEDIA_TYPE - 416 REQUESTED_RANGE_NOT_SATISFIABLE - 417 EXPECTATION_FAILED - 418 I_AM_A_TEAPOT - 419 INSUFFICIENT_SPACE_ON_RESOURCE - 420 METHOD_FAILURE - 421 DESTINATION_LOCKED - 422 UNPROCESSABLE_ENTITY - 423 LOCKED - 424 FAILED_DEPENDENCY - 425 TOO_EARLY - 426 UPGRADE_REQUIRED - 428 PRECONDITION_REQUIRED - 429 TOO_MANY_REQUESTS - 431 REQUEST_HEADER_FIELDS_TOO_LARGE - 451 UNAVAILABLE_FOR_LEGAL_REASONS - 500 INTERNAL_SERVER_ERROR - 501 NOT_IMPLEMENTED - 502 BAD_GATEWAY - 503 SERVICE_UNAVAILABLE - 504 GATEWAY_TIMEOUT - 505 HTTP_VERSION_NOT_SUPPORTED - 506 VARIANT_ALSO_NEGOTIATES - 507 INSUFFICIENT_STORAGE - 508 LOOP_DETECTED - 509 BANDWIDTH_LIMIT_EXCEEDED - 510 NOT_EXTENDED - 511 NETWORK_AUTHENTICATION_REQUIRED RelationshipDefinitionDTO: type: object properties: name: type: string description: type: string type: type: string fieldName: type: string fieldValue: type: string otherObject: type: string otherFieldName: type: string otherFieldValue: type: string properties: type: object additionalProperties: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT x-readme: {}