# Salesforce Metadata

## List sObject types for a Salesforce connection

> Returns an array of all sObject type descriptors available on the given\
> Salesforce connection. This is the Salesforce describe-global response,\
> typically containing \~1058 sObject types.<br>

```json
{"openapi":"3.1.0","info":{"title":"Salesforce Metadata","version":"1.0.0"},"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"SObjectType":{"type":"object","description":"A Salesforce sObject type descriptor from the describe-global response.\n","properties":{"activateable":{"type":"boolean","description":"Whether the sObject supports the activate action."},"createable":{"type":"boolean","description":"Whether the sObject can be created."},"custom":{"type":"boolean","description":"Whether this is a custom sObject."},"customSetting":{"type":"boolean","description":"Whether this is a custom setting sObject."},"deletable":{"type":"boolean","description":"Whether the sObject can be deleted."},"deprecatedAndHidden":{"type":"boolean","description":"Whether the sObject is deprecated and hidden from the UI."},"feedEnabled":{"type":"boolean","description":"Whether Chatter feeds are enabled for this sObject."},"keyPrefix":{"type":["string","null"],"description":"The three-character prefix of record IDs for this sObject (e.g. `001`\nfor Account). Null for sObjects that do not have a key prefix.\n"},"label":{"type":"string","description":"Singular display label (e.g. `Account`)."},"labelPlural":{"type":"string","description":"Plural display label (e.g. `Accounts`)."},"layoutable":{"type":"boolean","description":"Whether page layouts can be configured for this sObject."},"mergeable":{"type":"boolean","description":"Whether records of this sObject can be merged."},"mruEnabled":{"type":"boolean","description":"Whether Most Recently Used tracking is enabled."},"name":{"type":"string","description":"The API name of the sObject (e.g. `Account`, `Custom__c`)."},"queryable":{"type":"boolean","description":"Whether the sObject supports SOQL queries."},"replicateable":{"type":"boolean","description":"Whether the sObject can be replicated."},"retrieveable":{"type":"boolean","description":"Whether individual records can be retrieved by ID."},"searchable":{"type":"boolean","description":"Whether the sObject is searchable via SOSL."},"triggerable":{"type":"boolean","description":"Whether Apex triggers can be defined on this sObject."},"undeletable":{"type":"boolean","description":"Whether deleted records can be undeleted."},"updateable":{"type":"boolean","description":"Whether existing records can be updated."},"urls":{"type":"object","description":"Relative URL paths for sObject operations.","properties":{"rowTemplate":{"type":"string","description":"URL template for accessing individual records by ID."},"describe":{"type":"string","description":"URL for the sObject describe endpoint."},"sobject":{"type":"string","description":"URL for the sObject resource."}}}},"required":["name","label","labelPlural","queryable","createable","updateable","deletable","custom"]}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/salesforce/metadata/connections/{_id}/sObjectTypes":{"get":{"summary":"List sObject types for a Salesforce connection","description":"Returns an array of all sObject type descriptors available on the given\nSalesforce connection. This is the Salesforce describe-global response,\ntypically containing ~1058 sObject types.\n","operationId":"listSalesforceSObjectTypes","tags":["Salesforce Metadata"],"parameters":[{"name":"_id","in":"path","description":"The unique identifier of the Salesforce connection","required":true,"schema":{"type":"string","format":"objectId"}}],"responses":{"200":{"description":"Successfully retrieved sObject types","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SObjectType"}}}}},"401":{"$ref":"#/components/responses/401-unauthorized"},"404":{"description":"Not found. The connection ID does not match any known connection.\n","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"required":["errors"]}}}},"422":{"description":"Unprocessable entity. The connection exists but is not authorized or\ncannot be used to fetch metadata.\n","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"required":["errors"]}}}}}}}}}
```

## Get sObject type detail for a Salesforce connection

> Returns the full Salesforce sObject describe response for the specified\
> sObject type on the given connection. This is a large payload that includes\
> all fields, child relationships, record type info, URLs, and other metadata.<br>

```json
{"openapi":"3.1.0","info":{"title":"Salesforce Metadata","version":"1.0.0"},"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"SObjectTypeDetail":{"type":"object","description":"Full Salesforce sObject describe response. This is a large payload that\nincludes field definitions, child relationships, record type info, URLs,\nand many other metadata attributes for the sObject.\n","properties":{"name":{"type":"string","description":"The API name of the sObject."},"label":{"type":"string","description":"Singular display label."},"labelPlural":{"type":"string","description":"Plural display label."},"keyPrefix":{"type":["string","null"],"description":"Three-character ID prefix for this sObject."},"custom":{"type":"boolean","description":"Whether this is a custom sObject."},"queryable":{"type":"boolean"},"createable":{"type":"boolean"},"updateable":{"type":"boolean"},"deletable":{"type":"boolean"},"searchable":{"type":"boolean"},"fields":{"type":"array","description":"All fields defined on this sObject.","items":{"type":"object","properties":{"name":{"type":"string","description":"The API name of the field."},"label":{"type":"string","description":"The display label."},"type":{"type":"string","description":"The Salesforce field type (e.g. `string`, `boolean`, `reference`,\n`picklist`, `double`, `datetime`, `id`, `textarea`, `currency`).\n"},"length":{"type":"integer","description":"Maximum length for string-type fields."},"nillable":{"type":"boolean","description":"Whether the field accepts null values."},"createable":{"type":"boolean"},"updateable":{"type":"boolean"},"filterable":{"type":"boolean"},"sortable":{"type":"boolean"},"externalId":{"type":"boolean","description":"Whether this field is an external ID."},"referenceTo":{"type":"array","description":"sObject types this field can reference (for lookup/master-detail fields).","items":{"type":"string"}},"relationshipName":{"type":["string","null"],"description":"The relationship name for reference fields."},"picklistValues":{"type":"array","description":"Available picklist values, if applicable.","items":{"type":"object","properties":{"active":{"type":"boolean"},"label":{"type":"string"},"value":{"type":"string"},"defaultValue":{"type":"boolean"}}}}}}},"childRelationships":{"type":"array","description":"Child relationships where this sObject is the parent.","items":{"type":"object","properties":{"childSObject":{"type":"string","description":"The child sObject API name."},"field":{"type":"string","description":"The lookup field on the child sObject."},"relationshipName":{"type":["string","null"],"description":"The name used for relationship queries."},"cascadeDelete":{"type":"boolean"}}}},"recordTypeInfos":{"type":"array","description":"Record types configured on this sObject.","items":{"type":"object","properties":{"active":{"type":"boolean"},"available":{"type":"boolean"},"defaultRecordTypeMapping":{"type":"boolean"},"master":{"type":"boolean"},"name":{"type":"string"},"recordTypeId":{"type":"string"}}}},"urls":{"type":"object","description":"Relative URL paths for sObject operations.","properties":{"rowTemplate":{"type":"string"},"describe":{"type":"string"},"sobject":{"type":"string"}}}},"required":["name","label","fields"]},"Error":{"type":"object","description":"Standard error response envelope returned by integrator.io APIs.","properties":{"errors":{"type":"array","description":"List of errors that occurred while processing the request.","items":{"type":"object","properties":{"code":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Machine-readable error code. Usually a string like\n`invalid_ref`, `missing_required_field`, or `unauthorized`;\nmay be an **integer** when the error mirrors an upstream HTTP\nstatus (e.g. `500`) — most commonly returned by connection-ping\nand adaptor-proxy responses."},"message":{"type":"string","description":"Human-readable description of the error."},"field":{"type":"string","description":"Optional pointer to the document field that caused the error.\nUsed by structural validation errors (`missing_required_field`,\n`invalid_ref`) to indicate which field is at fault\n(e.g. `_id`, `type`, `http.baseURI`)."},"source":{"type":"string","description":"Optional origin layer for the error — e.g. `application` when\nthe error came from the remote system the adaptor called,\n`connector` when the adaptor itself rejected the request."}},"required":["message"]}}},"required":["errors"]}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}},"404-not-found":{"description":"Not found. The requested resource does not exist or is not visible to the caller.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/v1/salesforce/metadata/connections/{_id}/sObjectTypes/{sObjectType}":{"get":{"summary":"Get sObject type detail for a Salesforce connection","description":"Returns the full Salesforce sObject describe response for the specified\nsObject type on the given connection. This is a large payload that includes\nall fields, child relationships, record type info, URLs, and other metadata.\n","operationId":"getSalesforceSObjectTypeDetail","tags":["Salesforce Metadata"],"parameters":[{"name":"_id","in":"path","description":"The unique identifier of the Salesforce connection","required":true,"schema":{"type":"string","format":"objectId"}},{"name":"sObjectType","in":"path","description":"The Salesforce sObject API name (e.g. `Account`, `Contact`, `Custom__c`).","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved sObject type detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SObjectTypeDetail"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"},"404":{"$ref":"#/components/responses/404-not-found"},"422":{"description":"Unprocessable entity. Failed to fetch metadata for the specified sObject type.\n","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]}}},"required":["errors"]}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.celigo.com/api/api-reference/salesforce-metadata.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
