> For the complete documentation index, see [llms.txt](https://developers.gallantreecapital.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.gallantreecapital.com/readme.md).

# README

Build against Gallantree's loan management platform through a versioned public REST API. Read loans, capital programs, organisations, individuals, collaterals, base rates. Create loans, upload documents. Subscribe to signed webhooks and react to changes as they happen.

* **Base URL:** `https://developers.gallantreecapital.com/api/v1/`
* **Authentication:** [API keys](/guides/authentication.md) (`x-api-key` header) or [OAuth 2.0 client credentials](/guides/oauth.md)
* **Webhooks:** [signed with HMAC-SHA256](/webhooks/verify-signature.md), delivered within seconds of the underlying event, retried on your schedule
* **Environments:** [sandbox and production](/getting-started/environments.md) on the same host — swap the key, not the URL

## Get started in four steps

1. [**Register an app**](/getting-started/register-an-app.md) in the portal.
2. Generate a sandbox API key. The portal shows the full key **once** — copy it into your secret store immediately.
3. Make [**your first request**](/getting-started/first-request.md) against the sandbox — `GET /api/v1/loans` and you'll see seed data.
4. When you're ready to receive events, [**subscribe to a webhook**](/webhooks/subscribe.md) and verify the signature on delivery.

## What's here

* [**Getting started**](/getting-started/overview.md) — orientation, register an app, first request, environments.
* [**Data model**](/concepts/data-model.md) — how capital programs, products, loans, organisations, individuals, and collaterals hang together. Read this before writing any integration code.
* [**Guides**](/guides/authentication.md) — the concepts every integration needs: authentication, key rotation, versioning, rate limits, error model, idempotency, and webhooks.
* **Resources** — narrative guides for the resources your integration will spend most of its time on: [**loans**](/resources/loans.md), [**organisations**](/resources/organisations.md), [**individuals**](/resources/individuals.md).
* [**API reference**](/reference/openapi.md) — every route, request body, response schema, and error, generated from the OpenAPI spec.
* [**Error codes**](/reference/error-codes.md) — the specific strings your integration will see, grouped by HTTP status.
* [**Changelog**](/changelog/changelog.md) — additions and deprecations to the v1 surface.

## A note on style

Every guide ends with a runnable example. Copy, paste, replace the placeholder credentials, and it should work against sandbox. If a snippet doesn't work as documented, the bug is in the docs — [tell us](https://github.com/Token-Gesture/lms/issues/new) so we can fix it.


---

# 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://developers.gallantreecapital.com/readme.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.
