{ "openapi": "3.0.3", "info": { "version": "0.13.1", "title": "Metadata API", "contact": { "name": "Supaglue", "email": "docs@supaglue.com", "url": "https://supaglue.com" }, "description": "#### Introduction\n\nWelcome to the Metadata API documentation for CRM. You can use this API to operate on metadata across multiple third-party providers.\n\n[![Run in Postman](https://run.pstmn.io/button.svg)](https://www.postman.com/supaglue/workspace/supaglue-public/overview)\n\n#### Base API URL\n```\nhttps://api.supaglue.io/metadata/v2\n```\n" }, "servers": [ { "url": "https://api.supaglue.io/metadata/v2", "description": "Supaglue API" } ], "paths": { "/objects/custom": { "get": { "operationId": "listCustomObjects", "deprecated": true, "summary": "List custom objects (deprecated)", "tags": [ "CustomObjects" ], "security": [ { "x-api-key": [] } ], "parameters": [], "responses": { "200": { "description": "Custom objects", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/simple_custom_object" } } } } }, "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" } ] }, "/objects/standard": { "get": { "operationId": "listStandardObjects", "summary": "List standardObjects", "tags": [ "StandardObjects" ], "security": [ { "x-api-key": [] } ], "parameters": [], "responses": { "200": { "description": "StandardObject", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/standard_object" } } } } }, "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" } ] }, "/properties": { "get": { "operationId": "listPropertiesDeprecated", "summary": "List properties (deprecated)", "deprecated": true, "tags": [ "Properties" ], "security": [ { "x-api-key": [] } ], "parameters": [ { "name": "type", "in": "query", "required": true, "schema": { "type": "string", "enum": [ "standard", "custom" ] } }, { "name": "name", "in": "query", "required": true, "schema": { "type": "string", "description": "The name of the object for which you want to list properties." } } ], "responses": { "200": { "description": "List of properties", "content": { "application/json": { "schema": { "type": "object", "properties": { "properties": { "type": "array", "items": { "$ref": "#/components/schemas/property_deprecated" } } }, "required": [ "properties" ] } } } }, "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" } ] } }, "tags": [ { "name": "StandardObjects", "description": "A `Standard Object` is an object that is available by default in the provider." }, { "name": "Properties", "description": "A `Property` is a field in a Provider Object." } ], "components": { "securitySchemes": { "x-api-key": { "type": "apiKey", "name": "x-api-key", "in": "header", "description": "API key to allow developers to access the API" } }, "schemas": { "property_deprecated": { "type": "object", "properties": { "id": { "type": "string", "description": "The machine name of the property as it appears in the third-party Provider.", "example": "FirstName" }, "label": { "type": "string", "description": "The human-readable name of the property as provided by the third-party Provider.", "example": "First Name" }, "type": { "type": "string", "description": "The type of the property as provided by the third-party Provider. These types are not unified by Supaglue. For Intercom, this is string, integer, boolean, or object. For Outreach, this is integer, boolean, number, array, or string.", "example": "string" }, "raw_details": { "type": "object", "description": "The raw details of the property as provided by the third-party Provider, if available.", "additionalProperties": true, "example": {} } }, "required": [ "id", "label" ] }, "standard_object": { "type": "object", "properties": { "name": { "type": "string", "example": "ticket" } }, "required": [ "name" ] }, "simple_custom_object": { "type": "object", "properties": { "id": { "type": "string", "example": "42579f73-8524-4570-9b67-ecbd702c6b14" }, "name": { "type": "string", "example": "ticket" } }, "required": [ "id", "name" ] }, "object_type": { "type": "string", "enum": [ "common", "standard", "custom" ] }, "object": { "type": "object", "properties": { "id": { "type": "string" }, "origin_type": { "$ref": "#/components/schemas/object_type" } }, "required": [ "id", "origin_type" ] }, "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" } ] } }, "warnings": { "type": "array", "items": { "type": "object", "properties": { "detail": { "type": "string" }, "problem_type": { "type": "string" }, "title": { "type": "string" } } } } }, "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 } }, "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" } } } } } } } } }