> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/identity-and-access-management-iam/api-docs-scim/discovery-apis/schemas.md).

# Schemas

### Overview

The `/Schemas` endpoint returns the schema definitions supported by this SCIM service.

It describes:

* Available resources (e.g., User)
* Attributes within each resource
* Attribute types and constraints

Identity providers use this endpoint to:

* Validate request/response structure
* Map attributes between systems
* Configure provisioning behavior

***

### Endpoints

```bash
GET /Schemas
GET /Schemas/{id}
```

***

### Full URLs

```bash
https://api.ggwp.com/scim/v2/Schemas
https://api.ggwp.com/scim/v2/Schemas/{schemaId}
```

***

### Authentication

Requires Bearer token:

```http
Authorization: Bearer <access_token>
```

***

## Get All Schemas

### Example Request

```bash
GET /Schemas
```

***

### Response

```json
{
  "data": {
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
    "totalResults": 1,
    "Resources": [
      {
        "id": "urn:ietf:params:scim:schemas:core:2.0:User",
        "name": "User",
        "description": "User Account",
        "endpoint": "/Users",
        "schema": "urn:ietf:params:scim:schemas:core:2.0:User"
      }
    ]
  },
  "message": "Success"
}
```

***

## Get Schema by ID

### Example Request

```bash
GET /Schemas/urn:ietf:params:scim:schemas:core:2.0:User
```

***

### Response

### Success (200 OK)

```json
{
  "data": {
    "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": "userName",
        "type": "string",
        "multiValued": false,
        "required": true,
        "caseExact": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "server"
      },
      {
        "name": "externalId",
        "type": "string",
        "multiValued": false,
        "required": false,
        "mutability": "readWrite",
        "returned": "default",
        "uniqueness": "server"
      },
      {
        "name": "displayName",
        "type": "string",
        "multiValued": false,
        "required": false,
        "mutability": "readWrite",
        "returned": "default"
      },
      {
        "name": "active",
        "type": "boolean",
        "multiValued": false,
        "required": false,
        "mutability": "readWrite",
        "returned": "default"
      },
      {
        "name": "emails",
        "type": "complex",
        "multiValued": false,
        "required": true,
        "mutability": "readWrite",
        "returned": "default",
        "subAttributes": [
          {
            "name": "value",
            "type": "string",
            "required": true
          },
          {
            "name": "primary",
            "type": "boolean"
          }
        ]
      },
      {
        "name": "roles",
        "type": "complex",
        "multiValued": false,
        "required": true,
        "mutability": "readWrite",
        "returned": "default",
        "subAttributes": [
          {
            "name": "value",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "name",
        "type": "complex",
        "multiValued": false,
        "required": false,
        "subAttributes": [
          {
            "name": "givenName",
            "type": "string"
          },
          {
            "name": "familyName",
            "type": "string"
          }
        ]
      }
    ]
  },
  "message": "Success"
}
```

***

## Attribute Fields Explained

<table><thead><tr><th width="167">Field</th><th>Description</th></tr></thead><tbody><tr><td>name</td><td>Attribute name</td></tr><tr><td>type</td><td>Data type (string, boolean, complex)</td></tr><tr><td>required</td><td>Whether attribute is mandatory</td></tr><tr><td>multiValued</td><td>Indicates array values</td></tr><tr><td>mutability</td><td>readOnly / readWrite</td></tr><tr><td>uniqueness</td><td>server / none</td></tr></tbody></table>

***

## Supported Schema

### User Schema

URN:

```json
urn:ietf:params:scim:schemas:core:2.0:User
```

***

### Key Attributes

| Attribute       | Description     |
| --------------- | --------------- |
| userName        | Unique username |
| name.givenName  | First name      |
| name.familyName | Last name       |
| emails.value    | Email address   |
| active          | User status     |
