> ## Documentation Index
> Fetch the complete documentation index at: https://docs.narrativebanking.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Official JavaScript and Python SDKs for integrating Narrative SDK.

<Info>
  Use these SDKs when you want typed request helpers, consistent authentication handling, and a faster path from proof of concept to production integration.
</Info>

## Available SDKs

<Columns cols={2}>
  <Card title="JavaScript SDK" icon="https://mintcdn.com/narrative-b13c445c/qi6sqKB_OLTe8ty2/SVG/frontend-shell.svg?fit=max&auto=format&n=qi6sqKB_OLTe8ty2&q=85&s=13c676d362a2a3a7a60bfa0fae245ad6" width="64" height="64" data-path="SVG/frontend-shell.svg">
    Browser and server-side helpers for authentication, capability calls, and embedded runtime bootstrapping.
  </Card>

  <Card title="Python SDK" icon="https://mintcdn.com/narrative-b13c445c/qi6sqKB_OLTe8ty2/SVG/server.svg?fit=max&auto=format&n=qi6sqKB_OLTe8ty2&q=85&s=4a767cfdcb6585e74810e5c286495132" width="64" height="64" data-path="SVG/server.svg">
    Backend-friendly client for authentication, token exchange, and platform capability workflows.
  </Card>
</Columns>

## Installation

<Tabs>
  <Tab title="JavaScript">
    ```bash npm theme={null}
    npm install @narrativebanking/sdk
    ```

    ```bash pnpm theme={null}
    pnpm add @narrativebanking/sdk
    ```

    ```bash yarn theme={null}
    yarn add @narrativebanking/sdk
    ```
  </Tab>

  <Tab title="Python">
    ```bash pip theme={null}
    pip install narrative-sdk
    ```

    ```bash uv theme={null}
    uv add narrative-sdk
    ```
  </Tab>
</Tabs>

## Quick examples

<Tabs>
  <Tab title="JavaScript">
    ```ts theme={null}
    import { NarrativeClient } from "@narrativebanking/sdk";

    const client = new NarrativeClient({
      apiBaseUrl: process.env.NSDK_API_BASE_URL!,
      accessToken: process.env.NSDK_ACCESS_TOKEN!,
    });

    const me = await client.auth.me();
    const metrics = await client.money.metrics({ asOfDate: "2026-03-16" });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    from narrative_sdk import NarrativeClient

    client = NarrativeClient(
        api_base_url=os.environ["NSDK_API_BASE_URL"],
        access_token=os.environ["NSDK_ACCESS_TOKEN"],
    )

    me = client.auth.me()
    metrics = client.money.metrics(as_of_date="2026-03-16")
    ```
  </Tab>
</Tabs>

## What the SDKs cover

| Area                             | JavaScript SDK | Python SDK            |
| -------------------------------- | -------------- | --------------------- |
| Authentication helpers           | Yes            | Yes                   |
| Access-token bearer auth         | Yes            | Yes                   |
| Refresh flow support             | Yes            | Yes                   |
| Coach, Money, and Growth clients | Yes            | Yes                   |
| Embedded runtime bootstrapping   | Yes            | Backend token support |

## Package links

* JavaScript package: [npmjs.com/package/@narrativebanking/sdk](https://www.npmjs.com/package/@narrativebanking/sdk)
* Python package: [pypi.org/project/narrative-sdk](https://pypi.org/project/narrative-sdk)
* Source: [github.com/narrativebanking](https://github.com/narrativebanking)

## When to use SDKs vs direct integration

<AccordionGroup>
  <Accordion title="Use the SDKs when you want the fastest implementation path">
    The SDKs reduce boilerplate around auth, base URL configuration, and capability organisation.
  </Accordion>

  <Accordion title="Use direct integration when you need full transport control">
    If your environment already has a standardized HTTP abstraction, you can still integrate using your own client patterns.
  </Accordion>

  <Accordion title="You can mix both approaches">
    Many teams use the hosted loader for embedded UI and use SDKs mainly for backend or service-to-service workflows.
  </Accordion>
</AccordionGroup>

## Next steps

* [Quickstart](/sdk/quickstart)
* [Authentication](/sdk/authentication)
* [Capability guide overview](/sdk/api-reference)
* [SDK integration](/sdk/integration)
