curl --request PATCH \
--url https://api.getmembrane.com/integrations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uuid": "<string>",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"meta": {},
"logoUri": "<string>",
"externalAppId": "<string>",
"externalAppUuid": "<string>",
"oAuthCallbackUri": "<string>",
"logoBase64": "<string>",
"connectorVersion": "<string>",
"connectorId": "<string>",
"connectorUuid": "<string>",
"connectorKey": "<string>",
"parameters": {},
"optionsConfig": {}
}
'import requests
url = "https://api.getmembrane.com/integrations/{id}"
payload = {
"uuid": "<string>",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"meta": {},
"logoUri": "<string>",
"externalAppId": "<string>",
"externalAppUuid": "<string>",
"oAuthCallbackUri": "<string>",
"logoBase64": "<string>",
"connectorVersion": "<string>",
"connectorId": "<string>",
"connectorUuid": "<string>",
"connectorKey": "<string>",
"parameters": {},
"optionsConfig": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
uuid: '<string>',
key: '<string>',
name: '<string>',
description: '<string>',
meta: {},
logoUri: '<string>',
externalAppId: '<string>',
externalAppUuid: '<string>',
oAuthCallbackUri: '<string>',
logoBase64: '<string>',
connectorVersion: '<string>',
connectorId: '<string>',
connectorUuid: '<string>',
connectorKey: '<string>',
parameters: {},
optionsConfig: {}
})
};
fetch('https://api.getmembrane.com/integrations/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getmembrane.com/integrations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'uuid' => '<string>',
'key' => '<string>',
'name' => '<string>',
'description' => '<string>',
'meta' => [
],
'logoUri' => '<string>',
'externalAppId' => '<string>',
'externalAppUuid' => '<string>',
'oAuthCallbackUri' => '<string>',
'logoBase64' => '<string>',
'connectorVersion' => '<string>',
'connectorId' => '<string>',
'connectorUuid' => '<string>',
'connectorKey' => '<string>',
'parameters' => [
],
'optionsConfig' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getmembrane.com/integrations/{id}"
payload := strings.NewReader("{\n \"uuid\": \"<string>\",\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"meta\": {},\n \"logoUri\": \"<string>\",\n \"externalAppId\": \"<string>\",\n \"externalAppUuid\": \"<string>\",\n \"oAuthCallbackUri\": \"<string>\",\n \"logoBase64\": \"<string>\",\n \"connectorVersion\": \"<string>\",\n \"connectorId\": \"<string>\",\n \"connectorUuid\": \"<string>\",\n \"connectorKey\": \"<string>\",\n \"parameters\": {},\n \"optionsConfig\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.getmembrane.com/integrations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uuid\": \"<string>\",\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"meta\": {},\n \"logoUri\": \"<string>\",\n \"externalAppId\": \"<string>\",\n \"externalAppUuid\": \"<string>\",\n \"oAuthCallbackUri\": \"<string>\",\n \"logoBase64\": \"<string>\",\n \"connectorVersion\": \"<string>\",\n \"connectorId\": \"<string>\",\n \"connectorUuid\": \"<string>\",\n \"connectorKey\": \"<string>\",\n \"parameters\": {},\n \"optionsConfig\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmembrane.com/integrations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uuid\": \"<string>\",\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"meta\": {},\n \"logoUri\": \"<string>\",\n \"externalAppId\": \"<string>\",\n \"externalAppUuid\": \"<string>\",\n \"oAuthCallbackUri\": \"<string>\",\n \"logoBase64\": \"<string>\",\n \"connectorVersion\": \"<string>\",\n \"connectorId\": \"<string>\",\n \"connectorUuid\": \"<string>\",\n \"connectorKey\": \"<string>\",\n \"parameters\": {},\n \"optionsConfig\": {}\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"id": "<string>",
"uuid": "<string>",
"key": "<string>",
"description": "<string>",
"meta": {},
"state": "BUILDING",
"errors": [
{
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
}
],
"revision": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"archivedAt": "<string>",
"isDeactivated": true,
"isReadOnly": true,
"logoUri": "<string>",
"connectorId": "<string>",
"connectorVersion": "<string>",
"oAuthCallbackUri": "<string>",
"parameters": {},
"hasMissingParameters": true,
"hasDocumentation": true,
"hasOperations": true,
"operationsCount": 123,
"hasData": true,
"dataCollectionsCount": 123,
"hasEvents": true,
"eventsCount": 123,
"hasGlobalWebhooks": true,
"hasUdm": true,
"isTest": true,
"externalAppId": "<string>",
"authType": "integration-app-token",
"optionsConfig": {},
"connection": {
"id": "<string>",
"name": "<string>",
"userId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"tenantId": "<string>",
"type": "connector",
"key": "<string>",
"isTest": true,
"connected": true,
"disconnected": true,
"isDefunct": true,
"state": "BUILDING",
"errors": [
{
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
}
],
"requestError": {
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
},
"error": {
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
},
"integrationId": "<string>",
"connectorId": "<string>",
"externalAppId": "<string>",
"connectorVersion": "<string>",
"authOptionKey": "<string>",
"lastActiveAt": "<string>",
"nextCredentialsRefreshAt": "<string>",
"nextRetryTimestamp": "<string>",
"retryAttempts": 123,
"canTest": true,
"canRefreshCredentials": true,
"archivedAt": "<string>",
"isDeactivated": true,
"meta": {},
"buildingAgentSessionId": "<string>",
"clientAction": {
"type": "connect",
"description": "<string>",
"uiUrl": "<string>",
"agentInstructions": "<string>",
"handoffAgentInstructions": "<string>"
}
},
"spec": {},
"appUri": "<string>",
"isConnected": true
}Update integration partially
curl --request PATCH \
--url https://api.getmembrane.com/integrations/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"uuid": "<string>",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"meta": {},
"logoUri": "<string>",
"externalAppId": "<string>",
"externalAppUuid": "<string>",
"oAuthCallbackUri": "<string>",
"logoBase64": "<string>",
"connectorVersion": "<string>",
"connectorId": "<string>",
"connectorUuid": "<string>",
"connectorKey": "<string>",
"parameters": {},
"optionsConfig": {}
}
'import requests
url = "https://api.getmembrane.com/integrations/{id}"
payload = {
"uuid": "<string>",
"key": "<string>",
"name": "<string>",
"description": "<string>",
"meta": {},
"logoUri": "<string>",
"externalAppId": "<string>",
"externalAppUuid": "<string>",
"oAuthCallbackUri": "<string>",
"logoBase64": "<string>",
"connectorVersion": "<string>",
"connectorId": "<string>",
"connectorUuid": "<string>",
"connectorKey": "<string>",
"parameters": {},
"optionsConfig": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
uuid: '<string>',
key: '<string>',
name: '<string>',
description: '<string>',
meta: {},
logoUri: '<string>',
externalAppId: '<string>',
externalAppUuid: '<string>',
oAuthCallbackUri: '<string>',
logoBase64: '<string>',
connectorVersion: '<string>',
connectorId: '<string>',
connectorUuid: '<string>',
connectorKey: '<string>',
parameters: {},
optionsConfig: {}
})
};
fetch('https://api.getmembrane.com/integrations/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.getmembrane.com/integrations/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'uuid' => '<string>',
'key' => '<string>',
'name' => '<string>',
'description' => '<string>',
'meta' => [
],
'logoUri' => '<string>',
'externalAppId' => '<string>',
'externalAppUuid' => '<string>',
'oAuthCallbackUri' => '<string>',
'logoBase64' => '<string>',
'connectorVersion' => '<string>',
'connectorId' => '<string>',
'connectorUuid' => '<string>',
'connectorKey' => '<string>',
'parameters' => [
],
'optionsConfig' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.getmembrane.com/integrations/{id}"
payload := strings.NewReader("{\n \"uuid\": \"<string>\",\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"meta\": {},\n \"logoUri\": \"<string>\",\n \"externalAppId\": \"<string>\",\n \"externalAppUuid\": \"<string>\",\n \"oAuthCallbackUri\": \"<string>\",\n \"logoBase64\": \"<string>\",\n \"connectorVersion\": \"<string>\",\n \"connectorId\": \"<string>\",\n \"connectorUuid\": \"<string>\",\n \"connectorKey\": \"<string>\",\n \"parameters\": {},\n \"optionsConfig\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.getmembrane.com/integrations/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"uuid\": \"<string>\",\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"meta\": {},\n \"logoUri\": \"<string>\",\n \"externalAppId\": \"<string>\",\n \"externalAppUuid\": \"<string>\",\n \"oAuthCallbackUri\": \"<string>\",\n \"logoBase64\": \"<string>\",\n \"connectorVersion\": \"<string>\",\n \"connectorId\": \"<string>\",\n \"connectorUuid\": \"<string>\",\n \"connectorKey\": \"<string>\",\n \"parameters\": {},\n \"optionsConfig\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmembrane.com/integrations/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"uuid\": \"<string>\",\n \"key\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"meta\": {},\n \"logoUri\": \"<string>\",\n \"externalAppId\": \"<string>\",\n \"externalAppUuid\": \"<string>\",\n \"oAuthCallbackUri\": \"<string>\",\n \"logoBase64\": \"<string>\",\n \"connectorVersion\": \"<string>\",\n \"connectorId\": \"<string>\",\n \"connectorUuid\": \"<string>\",\n \"connectorKey\": \"<string>\",\n \"parameters\": {},\n \"optionsConfig\": {}\n}"
response = http.request(request)
puts response.read_body{
"name": "<string>",
"id": "<string>",
"uuid": "<string>",
"key": "<string>",
"description": "<string>",
"meta": {},
"state": "BUILDING",
"errors": [
{
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
}
],
"revision": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"archivedAt": "<string>",
"isDeactivated": true,
"isReadOnly": true,
"logoUri": "<string>",
"connectorId": "<string>",
"connectorVersion": "<string>",
"oAuthCallbackUri": "<string>",
"parameters": {},
"hasMissingParameters": true,
"hasDocumentation": true,
"hasOperations": true,
"operationsCount": 123,
"hasData": true,
"dataCollectionsCount": 123,
"hasEvents": true,
"eventsCount": 123,
"hasGlobalWebhooks": true,
"hasUdm": true,
"isTest": true,
"externalAppId": "<string>",
"authType": "integration-app-token",
"optionsConfig": {},
"connection": {
"id": "<string>",
"name": "<string>",
"userId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"tenantId": "<string>",
"type": "connector",
"key": "<string>",
"isTest": true,
"connected": true,
"disconnected": true,
"isDefunct": true,
"state": "BUILDING",
"errors": [
{
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
}
],
"requestError": {
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
},
"error": {
"message": "<string>",
"type": "bad_request",
"key": "<string>",
"data": {},
"stack": {},
"causedByError": "<unknown>",
"logs": [
{}
]
},
"integrationId": "<string>",
"connectorId": "<string>",
"externalAppId": "<string>",
"connectorVersion": "<string>",
"authOptionKey": "<string>",
"lastActiveAt": "<string>",
"nextCredentialsRefreshAt": "<string>",
"nextRetryTimestamp": "<string>",
"retryAttempts": 123,
"canTest": true,
"canRefreshCredentials": true,
"archivedAt": "<string>",
"isDeactivated": true,
"meta": {},
"buildingAgentSessionId": "<string>",
"clientAction": {
"type": "connect",
"description": "<string>",
"uiUrl": "<string>",
"agentInstructions": "<string>",
"handoffAgentInstructions": "<string>"
}
},
"spec": {},
"appUri": "<string>",
"isConnected": true
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Stable unique identifier (UUID). Can be provided on create; otherwise generated. Must be unique across elements of this type.
Stable key for referencing the element (e.g. in selectors). Unique per (parent, integration) scope. Generated from name if not provided on create.
Display name. Optional on create; used to generate key when key is omitted.
Optional human-readable description.
Optional key-value metadata.
Show child attributes
Show child attributes
External app id; alternative to connectorId — resolves to the app's default connector.
ID of the connector this integration uses.
Key of the connector; alternative to connectorId. Resolved to connectorId by the API.
Connector-specific parameters (e.g. OAuth { clientId, clientSecret, scopes }).
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
Display name. Always present in API responses (filled by API if not set on create).
Stable unique identifier (UUID). Can be provided on create; otherwise generated. Must be unique across elements of this type.
Stable key for referencing the element (e.g. in selectors). Unique per (parent, integration) scope. Generated from name if not provided on create.
Optional human-readable description.
Optional key-value metadata.
Show child attributes
Show child attributes
Current lifecycle or health state (e.g. READY, SETUP_FAILED, CONFIGURATION_ERROR, BUILDING). Set by the engine during setup and validation.
BUILDING, CLIENT_ACTION_REQUIRED, CONFIGURATION_ERROR, SETUP_FAILED, READY, DISCONNECTING Validation or setup errors when state is not READY.
Show child attributes
Show child attributes
Opaque revision token; changes on each update. Used for optimistic concurrency.
ISO date when the element was created.
ISO date when the element was last updated.
When true, the element cannot be modified (e.g. published package elements or elements from another workspace).
integration-app-token, membrane-token, oauth2, oauth1, client-credentials, proxy Show child attributes
Show child attributes
Show child attributes
Show child attributes
Was this page helpful?