> For the complete documentation index, see [llms.txt](https://docs.thewalletcrew.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.thewalletcrew.io/api-reference/advanced/config-schemas.md).

# Config Schemas

## GET /api/{tenantId}/admin/configuration/schemas

> List configuration schemas

```json
{"openapi":"3.1.1","info":{"title":"Neostore internal API","version":"v1"},"tags":[{"name":"ConfigSchemas"}],"servers":[{"url":"https://app.neostore.cloud","description":"Production Server"},{"url":"https://app-qa.neostore.cloud","description":"Staging Server"}],"security":[{"admin-bearer":["tenant.core:read"]},{"apiKey":[]}],"components":{"securitySchemes":{"admin-bearer":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://auth.neostore.cloud/authorize?audience=https://app.neostore.cloud/api/","scopes":{}}}},"apiKey":{"type":"apiKey","name":"X-API-KEY","in":"header"}},"schemas":{"ConfigSchemaCatalog":{"type":"object","properties":{"definitions":{"type":"object","additionalProperties":{},"description":"Every schema by title. References between them are written `#/definitions/{title}`, so\nthe object is a JSON Schema definitions map and can be used as one without rewriting."},"associations":{"type":"array","items":{"description":"The rule binding one schema to the files it validates. The same rules decide which schema a file is\nvalidated against when it is saved.","$ref":"#/components/schemas/SchemaAssociation"},"description":"Which files each schema validates. A file matched by no association has no schema, e.g. web hooks,\nscripts and unknown files."}},"additionalProperties":false,"description":"The tenant configuration schemas, and which file each of them validates."},"SchemaAssociation":{"type":"object","properties":{"schema":{"type":"string","description":"Title of the schema this rule selects."},"kind":{"description":"Which of the matching rules applies.","$ref":"#/components/schemas/SchemaAssociationKind"},"path":{"type":"string","description":"The exact file for Neo.Configuration.Tenants.Documentation.SchemaAssociationKind.File (e.g. `config.yml`), otherwise the folder\nprefix the file name must start with, trailing `/` included (e.g. `server/passes/`)."},"extension":{"type":["null","string"],"description":"Suffix the file name must end with, dot included (e.g. `.yml`), for\nNeo.Configuration.Tenants.Documentation.SchemaAssociationKind.Prefix. Null accepts any file under Path."},"property":{"type":["null","string"],"description":"Top-level property of the file carrying the discriminating value, for\nNeo.Configuration.Tenants.Documentation.SchemaAssociationKind.Discriminator; null otherwise."},"value":{"type":["null","string"],"description":"String that property must hold, for Neo.Configuration.Tenants.Documentation.SchemaAssociationKind.Discriminator; null otherwise."}},"additionalProperties":false,"description":"The rule binding one schema to the files it validates. The same rules decide which schema a file is\nvalidated against when it is saved."},"SchemaAssociationKind":{"enum":["File","Prefix","Discriminator"],"type":"string","description":"How a schema decides which configuration files it validates."},"ProblemDetails":{"type":"object","properties":{"type":{"type":["null","string"]},"title":{"type":["null","string"]},"status":{"type":["null","integer"],"format":"int32"},"detail":{"type":["null","string"]},"instance":{"type":["null","string"]}},"additionalProperties":{}},"HttpValidationProblemDetails":{"type":"object","allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"additionalProperties":{}}}},"paths":{"/api/{tenantId}/admin/configuration/schemas":{"get":{"tags":["ConfigSchemas"],"summary":"List configuration schemas","parameters":[{"name":"tenantId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Schema catalogue returned.","content":{"text/plain":{"schema":{"description":"The tenant configuration schemas, and which file each of them validates.","$ref":"#/components/schemas/ConfigSchemaCatalog"}},"application/json":{"schema":{"description":"The tenant configuration schemas, and which file each of them validates.","$ref":"#/components/schemas/ConfigSchemaCatalog"}},"text/json":{"schema":{"description":"The tenant configuration schemas, and which file each of them validates.","$ref":"#/components/schemas/ConfigSchemaCatalog"}}}},"401":{"description":"The caller is not authenticated.","content":{"application/problem+json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"403":{"description":"The caller lacks the <c>tenant.core:read</c> scope.","content":{"application/problem+json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}},"429":{"description":"Over 1200 requests per minute to this endpoint for the tenant (default limit); retry after <c>Retry-After</c>.","headers":{"Retry-After":{"description":"Seconds to wait before retrying. Sent when the limiter knows it.","schema":{"type":"integer"}}},"content":{"application/problem+json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"$ref":"#/components/schemas/HttpValidationProblemDetails"}]}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.thewalletcrew.io/api-reference/advanced/config-schemas.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
