OpenAPI 2.0 and 3.0 Support

Learn about valid API schema components that can be used to register a spec successfully.

Required Editions

Available in: Lightning Experience
Available in: Enterprise, Performance, Unlimited, and Developer Editions

Along with normal packaging support, you can use:

  • Nested parameters—rendered as Dynamic Apex-defined data types in Apex and Flow Builder.
  • Named arrays, anonymous arrays, or inline arrays, supported as generic List type in Apex, or as collection type in Flow Builder.
  • OpenAPI additionalProperties as generic Map type in Apex.
  • Header parameters in HTTP requests.
  • The following media types are supported:
    • application/json -- Structured data in JSON format
    • application/x-www-form-urlencoded -- URL encoded form
    • text/plain -- Unstructured data as plain text
  • Non-supported media types can be mapped to supported media types for request and response content serialization. See Media Type Mapping in External Service Registrations.
  • Form data parameters are supported.
  • Supports all Java runtime supported character set encodings. UTF-8 is the default encoding.
  • OpenAPI 2.0: Server and operation level consumes and produces directives.
  • OpenAPI 3.0: Content media type with supported media types.

Supported Schema Format

  • OpenAPI 2.0, JSON schema format
  • OpenAPI 3.0, JSON schema format
  • OpenAPI 2.0 schema, YAML format
  • OpenAPI 3.0 schema, YAML format
  • UTF-8, with full character set for names and identifiers

Unsupported Schema Formats

  • Interagent hyper-schema format

Unsupported Schema Constructs

  • OpenAPI 3.0: The composite schema keyword: not
  • Media types such as xml, png, and pdf
  • OpenAPI 3.0: Server variables. The servers[].variables object isn't supported. Variable placeholders in a server URL (for example, {subdomain} or {tenant}) aren't substituted at run time from variable default values or from named credential parameters. Use a literal URL instead. A schema that relies on server variables registers successfully but produces malformed callout URLs at run time and fails.