> This page is for Developers.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://zuora.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server.

# List all schemas of resources

GET https://rest.test.zuora.com/scim/v2/Schemas

Lists all schemas for all supported resources. A schema is a collection of attribute definitions that describe the contents of an entire or partial resource, e.g., "urn:ietf:params:scim:schemas:core:2.0:User".  

The attribute definitions specify the name of the attribute, and metadata such as type (e.g., string, binary), cardinality (singular, multi, complex), mutability, and returnability.


Reference: https://zuora.ferndocs.com/developers/api-reference/zuora-api/oneid/scim/get-schema-of-scim

## Authentication

- `Authorization` header (bearer token, required) — Use `Bearer {{token}}` in the `Authorization` header for authentication.

## Servers

- `https://rest.test.zuora.com` (US Developer & Central Sandbox (incl. Test Drive), default)
- `https://rest.sandbox.na.zuora.com` (US API Sandbox Cloud 1)
- `https://rest.apisandbox.zuora.com` (US API Sandbox Cloud 2)
- `https://rest.na.zuora.com` (US Production Cloud 1)
- `https://rest.zuora.com` (US Production Cloud 2)
- `https://rest.test.eu.zuora.com` (EU Developer & Central Sandbox)
- `https://rest.sandbox.eu.zuora.com` (EU API Sandbox)
- `https://rest.eu.zuora.com` (EU Production)
- `https://rest.test.ap.zuora.com` (APAC Developer & Central Sandbox)
- `https://rest.ap.zuora.com` (APAC Production)

## Request

### Headers

- `Idempotency-Key` (string, optional) — Unique key used to ensure idempotent behavior.
- `Accept-Encoding` (string, optional) — Indicates the response's preferred content encoding. Supported values are `gzip` and `identity`.
- `Content-Encoding` (string, optional) — This header is returned if you specify the `Accept-Encoding: gzip` request header and the response contains over 1000 bytes of data.
- `Authorization` (string, optional) — The value is in the `Bearer {token}` format where \{token} is a valid OAuth token generated by calling [Create an OAuth token](https://developer.zuora.com/api-references/api/operation/createToken).
- `Zuora-Track-Id` (string, optional) — A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue. The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (`:`), semicolon (`;`), double quote (`"`), and quote (`'`).
- `Zuora-Entity-Ids-Single` (string, optional)

## Response

### 200

OK

- `schemas` (list of string, optional) — List of schema identifiers defining the structure of the response.
- `patch` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaPatch, optional) — Information about support for patch operations.
- `bulk` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaBulk, optional) — Information about support for bulk operations.
- `filter` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaFilter, optional) — Information about support for filtering.
- `changePassword` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaChangePassword, optional) — Information about support for password change operations.
- `sort` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaSort, optional) — Information about support for sorting.
- `etag` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaEtag, optional) — Information about support for ETag operations.
- `authenticationSchemes` (list of ScimV2SchemasGetResponsesContentApplicationJsonSchemaAuthenticationSchemesItems, optional) — List of supported authentication schemes.
- `id` (string, optional, nullable)
- `externalId` (string, optional, nullable)
- `meta` (ScimV2SchemasGetResponsesContentApplicationJsonSchemaMeta, optional, nullable) — Metadata about the resource type.
- `totalResults` (integer, optional) — Total number of user groups returned in the response.
- `resources` (list of ScimV2SchemasGetResponsesContentApplicationJsonSchemaResourcesItems, optional) — List of resource types available.

## Types

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaPatch

Information about support for patch operations.

- `supported` (boolean, optional) — Indicates if patch operations are supported.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaBulk

Information about support for bulk operations.

- `supported` (boolean, optional) — Indicates if bulk operations are supported.
- `maxOperations` (integer, optional) — Maximum number of operations allowed in a single bulk request.
- `maxPayloadSize` (integer, optional) — Maximum size (in bytes) of the payload allowed for a bulk request.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaFilter

Information about support for filtering.

- `supported` (boolean, optional) — Indicates if filtering is supported.
- `maxResults` (integer, optional) — Maximum number of results that can be returned by a single filter query.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaChangePassword

Information about support for password change operations.

- `supported` (boolean, optional) — Indicates if password change operations are supported.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaSort

Information about support for sorting.

- `supported` (boolean, optional) — Indicates if sorting is supported.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaEtag

Information about support for ETag operations.

- `supported` (boolean, optional) — Indicates if ETag operations are supported.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaAuthenticationSchemesItems

- `name` (string, optional) — Name of the authentication scheme.
- `description` (string, optional) — Description of the authentication scheme.
- `specUri` (string, optional) — URI for the specification of the authentication scheme.
- `type` (string, optional) — Type of the authentication scheme (e.g., OAuth, Basic).
- `primary` (boolean, optional) — Indicates if this is the primary authentication scheme.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaMeta

Metadata about the resource type.

- `resourceType` (string, optional) — Type of the resource (e.g., ResourceType).
- `location` (string, optional) — URL where the resource type can be accessed.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaResourcesItems

- `schemas` (list of string, optional) — List of schema identifiers that define the structure of the resource type.
- `id` (string, optional) — Unique identifier of the resource type.
- `name` (string, optional) — Name of the resource type.
- `description` (string, optional) — Detailed description of the resource type.
- `attributes` (list of ScimV2SchemasGetResponsesContentApplicationJsonSchemaResourcesItemsAttributesItems, optional) — List of attributes defined by the schema.

### ScimV2SchemasGetResponsesContentApplicationJsonSchemaResourcesItemsAttributesItems

- `name` (string, optional) — Name of the attribute.
- `type` (string, optional) — Data type of the attribute (e.g., string, boolean).
- `multiValued` (boolean, optional) — Indicates if the attribute can hold multiple values.
- `description` (string, optional) — Description of the attribute.
- `required` (boolean, optional) — Indicates if the attribute is required.
- `caseExact` (boolean, optional) — Indicates if the attribute value is case-sensitive.
- `mutability` (string, optional) — Specifies the mutability of the attribute (e.g., readOnly, readWrite).
- `returned` (string, optional) — Specifies when the attribute is returned in responses (e.g., always, never).
- `uniqueness` (string, optional) — Specifies the uniqueness of the attribute values (e.g., none, server).

## Examples

**Response**

```json
{
  "schemas": [
    "urn:ietf:params:scim:api:messages:2.0:ListResponse"
  ],
  "id": null,
  "externalId": null,
  "meta": null,
  "totalResults": 4,
  "resources": [
    {
      "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:Schema"
      ],
      "id": "urn:ietf:params:scim:schemas:core:2.0:User",
      "name": "User",
      "description": "User Account",
      "attributes": [
        {
          "name": "active",
          "type": "boolean",
          "multiValued": false,
          "description": "A Boolean value indicating the User's administrative status.",
          "required": false,
          "caseExact": true,
          "mutability": "readWrite",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "addresses",
          "type": "complex",
          "multiValued": true,
          "description": "Physical mailing addresses for this User.",
          "required": false,
          "caseExact": true,
          "mutability": "readWrite",
          "returned": "default",
          "uniqueness": "none",
          "subAttributes": [
            {
              "caseExact": false,
              "description": "The country name component.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "country",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": false,
              "description": "The full mailing address, formatted for display or use with a mailing label. This attribute MAY contain newlines.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "formatted",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": false,
              "description": "The city or locality component.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "locality",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": false,
              "description": "The zipcode or postal code component.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "postalCode",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": true,
              "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred address. The primary attribute value 'true' MUST appear no more than once.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "primary",
              "required": false,
              "returned": "default",
              "type": "boolean",
              "uniqueness": "none"
            },
            {
              "caseExact": false,
              "description": "The state or region component.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "region",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": false,
              "description": "The full street address component, which may include house number, street name, PO BOX, and multi-line extended street address information. This attribute MAY contain newlines.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "streetAddress",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "canonicalValues": [
                "other",
                "work",
                "home"
              ],
              "caseExact": false,
              "description": "A label indicating the attribute's function; e.g., 'work' or 'home'.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "type",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            }
          ]
        },
        {
          "name": "displayName",
          "type": "string",
          "multiValued": false,
          "description": "The name of the User, suitable for display to end-users. The name SHOULD be the full name of the User being described if known.",
          "required": false,
          "caseExact": false,
          "mutability": "readWrite",
          "returned": "default",
          "uniqueness": "none"
        },
        {
          "name": "emails",
          "type": "complex",
          "multiValued": true,
          "description": "E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g., bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
          "required": false,
          "caseExact": true,
          "mutability": "readWrite",
          "returned": "default",
          "uniqueness": "none",
          "subAttributes": [
            {
              "caseExact": false,
              "description": "A human readable name, primarily used for display purposes.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "display",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": true,
              "description": "A Boolean value indicating the 'primary' or preferred attribute value for this attribute, e.g., the preferred mailing address or primary e-mail address. The primary attribute value 'true' MUST appear no more than once.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "primary",
              "required": false,
              "returned": "default",
              "type": "boolean",
              "uniqueness": "none"
            },
            {
              "canonicalValues": [
                "other",
                "work",
                "home"
              ],
              "caseExact": false,
              "description": "A label indicating the attribute's function; e.g., 'work' or 'home'.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "type",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            },
            {
              "caseExact": false,
              "description": "E-mail addresses for the user. The value SHOULD be canonicalized by the Service Provider, e.g., bjensen@example.com instead of bjensen@EXAMPLE.COM. Canonical Type values of work, home, and other.",
              "multiValued": false,
              "mutability": "readWrite",
              "name": "value",
              "required": false,
              "returned": "default",
              "type": "string",
              "uniqueness": "none"
            }
          ]
        }
      ]
    }
  ]
}
```

**SDK Code**

```python SCIM_getSchemaOfSCIM_example
import requests

url = "https://rest.test.zuora.com/scim/v2/Schemas"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript SCIM_getSchemaOfSCIM_example
const url = 'https://rest.test.zuora.com/scim/v2/Schemas';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go SCIM_getSchemaOfSCIM_example
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://rest.test.zuora.com/scim/v2/Schemas"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby SCIM_getSchemaOfSCIM_example
require 'uri'
require 'net/http'

url = URI("https://rest.test.zuora.com/scim/v2/Schemas")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java SCIM_getSchemaOfSCIM_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://rest.test.zuora.com/scim/v2/Schemas")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php SCIM_getSchemaOfSCIM_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://rest.test.zuora.com/scim/v2/Schemas', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp SCIM_getSchemaOfSCIM_example
using RestSharp;

var client = new RestClient("https://rest.test.zuora.com/scim/v2/Schemas");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift SCIM_getSchemaOfSCIM_example
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://rest.test.zuora.com/scim/v2/Schemas")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```