---
schema_version: "1"
id: 31ea994c84090db124e9b0c4e5f65b074ae2c743a0a08d7510fc3d76c8b1777f
title: Apex Reserved Keywords
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/external_services_schema_def_apex_reserved_keywords.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.external_services_schema_def_apex_reserved_keywords.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: e3bdba1311fe731d13cce97788f8b9534e3c774c650a60f2b2e71664d8032ed1
description: Learn about External Service's support for Apex reserved keywords.
products:
  - Salesforce Platform
  - Security
release: "264"
---
# Apex Reserved Keywords

Learn about External Service's support for Apex reserved keywords.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: Lightning Experience</td></tr><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in: <strong>Enterprise</strong>, <strong>Performance</strong>, <strong>Unlimited</strong>, and <strong>Developer</strong> Editions</td></tr></tbody></table>

Although not a best practice, External Services doesn’t prohibit schema entities with the same name as the Apex reserved keywords. If your schema name conflicts with an Apex reserved keyword, External Services creates a unique name by encoding it to be compatible with Apex identifier rules.

For example, you have an account object with property name `type`. Because the property name `type` conflicts with the Apex reserved keyword `type`, External Services encodes the property name `type` as `z0type` to make it Apex compliant. During callout, the property name `type` is used according to the original OpenAPI schema.

Special characters that aren’t valid Apex identifiers are UTF-8 encoded. For example,

```
5getOpen-bankingV2.2Atms
```

is encoded as

```
x35getOpenx2dbankingV2x2e2Atms
```

for a valid Apex identifier.

Although the character underscore “`_`” is a valid Apex identifier character, it’s UTF-8 encoded and is used for separating parts lexicographically defined in an External Services spec. For example,

```
fixed_array_of_AutoContext
```

includes the special character underscore “`_`”. The character underscore is used as a parts separator for External Services hierarchical object names. In this example, the character underscore is encoded as

```
fixedx5farrayx5fofx5fAutoContext 
```

for a valid Apex identifier. You don’t need to change the name in the schema, as External Services runtime translates this back to the character underscore when calling the service.

#### See Also

- [Schema Examples](https://help.salesforce.com/s/articleView?id=platform.external_services_examples.htm&release=264.0.0&type=5 "Explore various scenarios with OpenAPI 2.0 and OpenAPI 3.0 compliant JSON or YAML schemas supported by External Services. The examples cover schema elements like HTTP header as input parameters, and include example usage in Apex. Understanding the examples helps with proper syntax and code placement.")
- [Invoke External Service Callouts Using Apex](https://help.salesforce.com/s/articleView?id=platform.external_services_apex_invoking.htm&release=264.0.0&type=5 "You can call external service registrations natively from Apex. Make a callout to an external service like the Apex Http Class without the need to write boilerplate code. The registered services are strongly typed in Apex with the registration’s schema as Apex types. These Apex types reflect your registered service’s specification, making the Apex compiler do the heavy lifting for you.")