{ "openapi": "3.0.3", "info": { "version": "0.14.0", "title": "Unified Enrichment API", "contact": { "name": "Supaglue", "email": "docs@supaglue.com", "url": "https://supaglue.com" }, "description": "#### Introduction\n\nWelcome to the Unified Actions API (Marketing Automation) documentation. You can use this API to write to third-party providers.\n\n[View common schema for Marketing Automation](https://docs.supaglue.com/platform/common-schemas/marketing-automation)\n\n#### Base API URL\n```\nhttps://api.supaglue.io/marketing-automation/v2\n```\n" }, "servers": [ { "url": "https://api.supaglue.io/marketing-automation/v2", "description": "Supaglue API" } ], "paths": { "/forms/{form_id}/_submit": { "post": { "operationId": "submitForm", "summary": "Submit form", "tags": [ "Forms" ], "security": [ { "x-api-key": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { "formFields": { "type": "object", "description": "a mapping of field name to value for each field in the form", "example": { "email": "me@supaglue.com", "firstName": "George", "lastName": "Xing" }, "additionalProperties": true } }, "required": [ "formFields" ], "example": { "formFields": { "email": "me@supaglue.com", "firstName": "George", "lastName": "Xing" } } } } } }, "responses": { "200": { "description": "Information about the lead created or updated by the form submission", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/submit_form_response" } } } }, "400": { "$ref": "#/components/responses/badRequest" }, "401": { "$ref": "#/components/responses/unauthorized" }, "403": { "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/notFound" }, "409": { "$ref": "#/components/responses/conflict" }, "422": { "$ref": "#/components/responses/unprocessableEntity" }, "499": { "$ref": "#/components/responses/remoteProviderError" }, "500": { "$ref": "#/components/responses/internalServerError" }, "501": { "$ref": "#/components/responses/notImplemented" } } }, "parameters": [ { "$ref": "#/components/parameters/x-customer-id" }, { "$ref": "#/components/parameters/x-provider-name" }, { "name": "form_id", "in": "path", "required": true, "schema": { "type": "string" }, "example": 12345 } ] }, "/forms": { "get": { "operationId": "listForms", "summary": "List forms", "tags": [ "Forms" ], "security": [ { "x-api-key": [] } ], "responses": { "200": { "description": "List of forms and their metadata", "content": { "application/json": { "schema": { "type": "object", "properties": { "forms": { "type": "array", "items": { "$ref": "#/components/schemas/form_metadata" } } }, "required": [ "forms" ] } } } }, "400": { "$ref": "#/components/responses/badRequest" }, "401": { "$ref": "#/components/responses/unauthorized" }, "403": { "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/notFound" }, "499": { "$ref": "#/components/responses/remoteProviderError" }, "500": { "$ref": "#/components/responses/internalServerError" }, "501": { "$ref": "#/components/responses/notImplemented" } } }, "parameters": [ { "$ref": "#/components/parameters/x-customer-id" }, { "$ref": "#/components/parameters/x-provider-name" }, { "$ref": "#/components/parameters/include_raw_data" } ] }, "/forms/{form_id}/_fields": { "get": { "operationId": "getFormFields", "summary": "Get form fields", "tags": [ "Forms" ], "security": [ { "x-api-key": [] } ], "responses": { "200": { "description": "List of fields on the form with the given ID", "content": { "application/json": { "schema": { "type": "object", "properties": { "fields": { "type": "array", "items": { "$ref": "#/components/schemas/form_field" } } }, "required": [ "fields" ] } } } }, "400": { "$ref": "#/components/responses/badRequest" }, "401": { "$ref": "#/components/responses/unauthorized" }, "403": { "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/notFound" }, "499": { "$ref": "#/components/responses/remoteProviderError" }, "500": { "$ref": "#/components/responses/internalServerError" }, "501": { "$ref": "#/components/responses/notImplemented" } } }, "parameters": [ { "$ref": "#/components/parameters/x-customer-id" }, { "$ref": "#/components/parameters/x-provider-name" }, { "$ref": "#/components/parameters/include_raw_data" }, { "name": "form_id", "in": "path", "required": true, "schema": { "type": "string" }, "example": 12345 } ] } }, "tags": [ { "name": "Forms", "description": "Endpoints for managing and submitting forms" } ], "components": { "securitySchemes": { "x-api-key": { "type": "apiKey", "name": "x-api-key", "in": "header", "description": "API key to allow developers to access the API" } }, "schemas": { "submit_form_response": { "type": "object", "properties": { "id": { "type": "string", "description": "The id of the lead that was created/updated as a result of submitting the form", "example": 12345 }, "status": { "type": "string", "example": "updated" } }, "required": [ "status" ] }, "form_metadata": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "created_at": { "type": "string", "example": "2022-02-27T00:00:00Z", "format": "date-time" }, "updated_at": { "type": "string", "example": "2022-02-27T00:00:00Z", "format": "date-time" }, "raw_data": { "type": "object", "additionalProperties": true } }, "required": [ "id", "name", "created_at", "updated_at" ] }, "form_field": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "required": { "type": "boolean" }, "form_id": { "type": "string" }, "data_format": { "type": "string" }, "data_options": { "type": "array", "description": "Selectable options for this field. Only applicable if the data_format is `select`. Only supported for Hubspot and Marketo.", "items": { "$ref": "#/components/schemas/form_data_option" } }, "validation_message": { "type": "string", "nullable": true }, "raw_data": { "type": "object", "additionalProperties": true } }, "required": [ "id", "name", "required", "form_id", "data_format" ] }, "form_data_option": { "type": "object", "properties": { "label": { "type": "string" }, "value": { "type": "string" }, "is_default": { "type": "boolean", "description": "If true, will be selected by default. Defaults to false." } }, "required": [ "label", "value" ] }, "errors": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "A unique identifier for the instance of the error. Provide this to support when contacting Supaglue.", "example": "9366efb4-8fb1-4a28-bfb0-8d6f9cc6b5c5" }, "detail": { "type": "string", "description": "A detailed description of the error.", "example": "Property values were not valid: [{\"isValid\":false,\"message\":\"Property \\\"__about_us\\\" does not exist\",\"error\":\"PROPERTY_DOESNT_EXIST\",\"name\":\"__about_us\",\"localizedErrorMessage\":\"Property \\\"__about_us\\\" does not exist\"}]" }, "problem_type": { "type": "string", "description": "The Supaglue error code associated with the error.", "example": "MISSING_REQUIRED_FIELD", "deprecated": true }, "title": { "type": "string", "description": "A brief description of the error. The schema and type of message will vary by Provider.", "example": "Property values were not valid\n" }, "code": { "type": "string", "description": "The Supaglue error code associated with the error.", "example": "MISSING_REQUIRED_FIELD" }, "status": { "type": "string", "description": "The HTTP status code associated with the error.", "example": "400" }, "meta": { "type": "object", "description": "Additional metadata about the error.", "properties": { "cause": { "type": "object", "description": "The cause of the error. Usually the underlying error from the remote Provider.", "example": { "code": 400, "body": { "status": "error", "message": "Property values were not valid: [{\"isValid\":false,\"message\":\"Property \\\"__about_us\\\" does not exist\",\"error\":\"PROPERTY_DOESNT_EXIST\",\"name\":\"__about_us\",\"localizedErrorMessage\":\"Property \\\"__about_us\\\" does not exist\"}]", "correlationId": "ac94252c-90b5-45d2-ad1d-9a9f7651d7d2", "category": "VALIDATION_ERROR" }, "headers": { "access-control-allow-credentials": "false", "cf-cache-status": "DYNAMIC", "cf-ray": "8053d17b9dae9664-SJC", "connection": "close", "content-length": "361", "content-type": "application/json;charset=utf-8", "date": "Mon, 11 Sep 2023 23:51:22 GMT", "nel": "{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}", "report-to": "{\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v3?s=FgwuXObO%2Fz6ahUJKsxjDLaXTWjooJ8tB0w4%2B%2BKaulGStx0FGkn1PoJoOx2KrFMfihzNdfAqikq7CmgbdlmwKB8hkmp3eTb68qpg10LXFlRgiSqRhbWM7yYSfo8CXmPBc\"}],\"group\":\"cf-nel\",\"max_age\":604800}", "server": "cloudflare", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", "vary": "origin, Accept-Encoding", "x-content-type-options": "nosniff", "x-envoy-upstream-service-time": "91", "x-evy-trace-listener": "listener_https", "x-evy-trace-route-configuration": "listener_https/all", "x-evy-trace-route-service-name": "envoyset-translator", "x-evy-trace-served-by-pod": "iad02/hubapi-td/envoy-proxy-6c94986c56-9xsh2", "x-evy-trace-virtual-host": "all", "x-hubspot-correlation-id": "ac94252c-90b5-45d2-ad1d-9a9f7651d7d2", "x-hubspot-ratelimit-interval-milliseconds": "10000", "x-hubspot-ratelimit-max": "100", "x-hubspot-ratelimit-remaining": "99", "x-hubspot-ratelimit-secondly": "10", "x-hubspot-ratelimit-secondly-remaining": "9", "x-request-id": "ac94252c-90b5-45d2-ad1d-9a9f7651d7d2", "x-trace": "2B1B4386362759B6A4C34802AD168B803DDC1BE770000000000000000000" } } }, "origin": { "type": "string", "enum": [ "remote-provider", "supaglue" ], "description": "The origin of the error.", "example": "remote-provider" }, "application_name": { "type": "string", "description": "The name of the application that generated the error.", "example": "MyCompany Production" } }, "required": [ "origin" ], "additionalProperties": true } }, "required": [ "id", "detail", "problem_type", "title", "code", "status", "meta" ], "example": [ { "meta": { "cause": { "code": 400, "body": { "status": "error", "message": "Property values were not valid: [{\"isValid\":false,\"message\":\"Property \\\"__about_us\\\" does not exist\",\"error\":\"PROPERTY_DOESNT_EXIST\",\"name\":\"__about_us\",\"localizedErrorMessage\":\"Property \\\"__about_us\\\" does not exist\"}]", "correlationId": "ac94252c-90b5-45d2-ad1d-9a9f7651d7d2", "category": "VALIDATION_ERROR" }, "headers": { "access-control-allow-credentials": "false", "cf-cache-status": "DYNAMIC", "cf-ray": "8053d17b9dae9664-SJC", "connection": "close", "content-length": "361", "content-type": "application/json;charset=utf-8", "date": "Mon, 11 Sep 2023 23:51:22 GMT", "nel": "{\"success_fraction\":0.01,\"report_to\":\"cf-nel\",\"max_age\":604800}", "report-to": "{\"endpoints\":[{\"url\":\"https://a.nel.cloudflare.com/report/v3?s=FgwuXObO%2Fz6ahUJKsxjDLaXTWjooJ8tB0w4%2B%2BKaulGStx0FGkn1PoJoOx2KrFMfihzNdfAqikq7CmgbdlmwKB8hkmp3eTb68qpg10LXFlRgiSqRhbWM7yYSfo8CXmPBc\"}],\"group\":\"cf-nel\",\"max_age\":604800}", "server": "cloudflare", "strict-transport-security": "max-age=31536000; includeSubDomains; preload", "vary": "origin, Accept-Encoding", "x-content-type-options": "nosniff", "x-envoy-upstream-service-time": "91", "x-evy-trace-listener": "listener_https", "x-evy-trace-route-configuration": "listener_https/all", "x-evy-trace-route-service-name": "envoyset-translator", "x-evy-trace-served-by-pod": "iad02/hubapi-td/envoy-proxy-6c94986c56-9xsh2", "x-evy-trace-virtual-host": "all", "x-hubspot-correlation-id": "ac94252c-90b5-45d2-ad1d-9a9f7651d7d2", "x-hubspot-ratelimit-interval-milliseconds": "10000", "x-hubspot-ratelimit-max": "100", "x-hubspot-ratelimit-remaining": "99", "x-hubspot-ratelimit-secondly": "10", "x-hubspot-ratelimit-secondly-remaining": "9", "x-request-id": "ac94252c-90b5-45d2-ad1d-9a9f7651d7d2", "x-trace": "2B1B4386362759B6A4C34802AD168B803DDC1BE770000000000000000000" } } }, "detail": "Property values were not valid: [{\"isValid\":false,\"message\":\"Property \\\"__about_us\\\" does not exist\",\"error\":\"PROPERTY_DOESNT_EXIST\",\"name\":\"__about_us\",\"localizedErrorMessage\":\"Property \\\"__about_us\\\" does not exist\"}]", "problem_type": "MISSING_REQUIRED_FIELD", "title": "Property values were not valid\n", "code": "MISSING_REQUIRED_FIELD", "status": "400", "id": "9366efb4-8fb1-4a28-bfb0-8d6f9cc6b5c5" } ] } } }, "parameters": { "x-customer-id": { "name": "x-customer-id", "in": "header", "schema": { "type": "string" }, "example": "my-customer-1", "description": "The customer ID that uniquely identifies the customer in your application", "required": true }, "x-provider-name": { "name": "x-provider-name", "in": "header", "schema": { "type": "string" }, "example": "salesforce", "description": "The provider name", "required": true }, "include_raw_data": { "name": "include_raw_data", "in": "query", "schema": { "type": "boolean" }, "description": "Whether to include raw data fetched from the 3rd party provider.", "example": true } }, "responses": { "badRequest": { "description": "Bad request", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "conflict": { "description": "Conflict", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "forbidden": { "description": "Forbidden", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "internalServerError": { "description": "Internal server error", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "notFound": { "description": "Not found", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "notImplemented": { "description": "Not implemented", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "remoteProviderError": { "description": "Remote provider error", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "unauthorized": { "description": "Unauthorized", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } }, "unprocessableEntity": { "description": "Unprocessable entity", "content": { "application/json": { "schema": { "type": "object", "properties": { "errors": { "$ref": "#/components/schemas/errors" } } } } } } } } }