Stand-in skills
OpenAPI integrations
OpenAPI integrations are team-shared connections that let selected AI Stand-ins read live data or perform confirmed actions through customer-provided REST APIs.
- Availability
- Business
- Configured in
- Dashboard → Stand-ins → Integrations; then select a Stand-in → Skills → Use integrations
- Category
- Stand-in skills
- Reference status
- Beta
Supported OpenAPI subset
Stand uses an OpenAPI declaration as a machine-readable contract for a REST API. OpenAPI describes HTTP APIs more broadly; this connector focuses on conventional request-response REST operations that can be represented safely as Stand-in tools.
Import preview checks whether Stand can turn each operation into a tool. It is not a complete OpenAPI conformance validator. An unsupported required input rejects the import, while an unsupported optional input is omitted from the generated tool.
- Learn OpenAPIOfficial introductory documentation and guides from the OpenAPI Initiative.
- OpenAPI SpecificationAuthoritative published specification versions.
| OpenAPI area | Stand support |
|---|---|
| Declaration | JSON or YAML using common Swagger 2.0, OpenAPI 3.0, or OpenAPI 3.1 structures. The declaration must be self-contained: local references are supported, but remote references and reference cycles are not. |
| Operations | GET, HEAD, OPTIONS, POST, PUT, PATCH, and DELETE operations under paths. Callbacks, webhooks, links, and other operation sources are not converted into tools. |
| Server and authentication | The exact base URL and authentication are configured in Stand. Servers, Swagger host/basePath/schemes, and OpenAPI security schemes are not imported. |
| Parameters | Scalar path, header, and query parameters, plus arrays of scalar query values using supported serialization styles. Required path and query sizes account for numeric bounds, and required declared headers are checked together with configured authentication against the 32 KiB outbound custom-header limit. Cookie, form, content-based, object, nested-array, reserved-header, and allowReserved inputs are not supported. |
| Request bodies | UTF-8 application/json and concrete application media types ending in +json, with a supported schema. Multipart, form-encoded, binary, and other request media types are not supported. |
| Schemas | Strings, integers, numbers, booleans, arrays, objects, enums, selected bounds, additionalProperties, and bounded allOf or anyOf combinations. Sibling bounds apply to every anyOf branch, and required combinations with no valid serializable input are rejected. OpenAPI 3.0 nullable is supported; OpenAPI 3.1 nullability must use a type union that includes null. oneOf, boolean schemas, and advanced JSON Schema assertions that Stand cannot enforce are not supported. |
| Responses | Bounded textual responses, including JSON, plain text, CSV, HTML, and XML. Live responses are not validated against declared response schemas; binary and compressed responses are not supported. |
Shared connection, explicit Stand-in access
An integration belongs to the organization and is visible to its active reps. Its base URL, authentication, retained OpenAPI declaration, and selected operations are configured once. Multiple instances may use the same provider with different URLs, credentials, or operation sets.
Access is configured separately for each Stand-in. Enabling Use integrations and selecting an instance makes only that instance’s normalized tools available to the Stand-in after the Stand-in is saved.
| Object | Scope |
|---|---|
| Integration instance | Shared across the organization and managed from the Integrations section. |
| Selected operation | One imported API operation exposed as a model tool. |
| Stand-in attachment | Permission for one Stand-in to receive an integration’s selected tools. |
| Visitor | Can ask the Stand-in to use any attached tool; visitor identity is not an API authorization boundary. |
Import and review an OpenAPI declaration
- Open Stand-ins, find Integrations, and choose New integration.
- Enter a team-facing name, optional description, and the exact public base URL Stand should call.
- Choose no authentication, bearer token, API-key header, or basic authentication. Tokens, API keys, and passwords must contain at least eight characters. Basic-authentication usernames and passwords cannot contain control characters. Keep credentials in the authentication fields rather than the declaration.
- Paste or upload OpenAPI JSON or YAML, then preview the operations against the configured base URL.
- Select only the operations the Stand-in needs and review each operation’s Read or Write mode before creating the integration.
- Expand the saved integration to verify its URL, authentication mode, selected tools, and current Stand-in attachment count.
Edit without replacing the integration
Edit retains the integration identity, current declaration, selected operations, Stand-in attachments, and saved credential unless the rep changes them. Metadata and credentials can be changed without re-importing tools.
Changing the declaration requires another preview so the replacement operation set can be reviewed before save. A changed base URL is validated against the retained tools, and changing the base URL or authentication configuration requires the secret to be entered again. Authentication changes are checked together with every selected or retained tool against the combined outbound-header limit before save. Successful changes refresh active sessions for attached Stand-ins.
Reads, writes, and visitor confirmation
- GET, HEAD, and OPTIONS operations start as Read. They may be configured as Write when the endpoint has side effects.
- POST, PUT, PATCH, and DELETE operations remain Write and cannot be downgraded to Read.
- A Write tool does not execute on its first call. The Stand-in describes the proposed action and asks the visitor for a later reply containing exactly confirm or confirmed.
- The retry uses a short-lived, single-use confirmation bound to the same conversation, operation, arguments, and later visitor message. One visitor confirmation can authorize only one pending action.
- Stand never automatically resends a Write tool after a transport failure because the API may already have completed the action. Failed read-only GET, HEAD, and OPTIONS calls may try another validated address within the same deadline.
- Removing an attachment or deleting or changing an integration prevents later calls from relying only on stale model state.
Use the API as the security boundary
- Stand accepts only public HTTP or HTTPS targets with valid ports from 1 through 65535, revalidates and pins resolved public addresses, and does not follow redirects. Configuration checks use a five-second DNS deadline; runtime DNS shares the eight-second call deadline. Authenticated integrations require HTTPS.
- Credentials are encrypted separately and injected into the outbound request after model input validation. Authentication secrets must contain at least eight characters. They are not included in the model’s tool schema.
- Declarations, tool metadata, and API responses are treated as untrusted content. Direct and commonly encoded credential echoes are redacted before a response is returned to the model.
- The configured API host necessarily receives the credential and operation inputs. Configure only hosts the organization trusts.
- Write confirmation reduces accidental actions; it is not proof of visitor identity or API authorization.
Operational limits
Calls are synchronous. Stand does not follow redirects or orchestrate callback-based or other long-running API workflows. Private, loopback, link-local, metadata, and internal network targets are blocked.
| Boundary | Current behavior |
|---|---|
| Integration instances | Up to 10 may be attached to one Stand-in. |
| Tools | Up to 50 selected operations per integration and 64 integration tools per Stand-in. |
| Declaration | Up to 2,000,000 characters, 300 imported operations, schema depth 20, and bounded descriptions and enum/composition complexity. |
| Request and response | Up to 16,384 ASCII request-target characters including the base path, operation path, and query; 128 KiB of serialized JSON per outbound request body; a 256 KB network response; up to 32,000 response characters returned to the model; and an 8-second total outbound deadline. |
Failure and removal behavior
- Invalid or unsupported declarations fail during preview or save without replacing the existing tools.
- Network, authentication, rate-limit, timeout, content-type, and response-size failures return a bounded tool error rather than exposing raw infrastructure details to the visitor.
- Deleting an integration detaches it from every Stand-in and cannot be undone.
- When the organization no longer has Business access, existing integrations remain listed but cannot be newly attached or used at runtime.