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

# Models

> List available models and filter by free or paid tier.

## List all models

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    from meshapi import MeshAPI

    client = MeshAPI(base_url="https://api.meshapi.ai", token="rsk_...")

    models = client.models.list()
    for m in models:
        print(m.id, m.name, "free" if m.is_free else "paid")
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    const models = await client.models.list();
    models.forEach(m => {
      console.log(m.id, m.name, m.is_free ? "free" : "paid");
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    models, err := client.Models.List(ctx, meshapi.ListModelsParams{})
    if err != nil {
        log.Fatal(err)
    }
    for _, m := range models {
        fmt.Printf("%s %s\n", m.ID, m.Name)
    }
    ```
  </Tab>
</Tabs>

## List free models only

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    free = client.models.free()
    for m in free:
        print(m.id)
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    const free = await client.models.free();
    free.forEach(m => console.log(m.id));
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    free, err := client.Models.Free(ctx)
    for _, m := range free {
        fmt.Println(m.ID)
    }
    ```
  </Tab>
</Tabs>

## List paid models only

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    paid = client.models.paid()
    for m in paid:
        print(m.id)
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    const paid = await client.models.paid();
    paid.forEach(m => console.log(m.id));
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    paid, err := client.Models.Paid(ctx)
    for _, m := range paid {
        fmt.Println(m.ID)
    }
    ```
  </Tab>
</Tabs>

## Filter via list()

<Tabs>
  <Tab title="Python">
    ```python theme={null}
    # Only free
    filtered_free = client.models.list(free=True)

    # Only paid
    filtered_paid = client.models.list(free=False)
    ```
  </Tab>

  <Tab title="Node.js">
    ```javascript theme={null}
    const filteredFree = await client.models.list({ free: true });
    const filteredPaid = await client.models.list({ free: false });
    ```
  </Tab>

  <Tab title="Go">
    ```go theme={null}
    freeTrue := true
    free, _ := client.Models.List(ctx, meshapi.ListModelsParams{Free: &freeTrue})

    freeFalse := false
    paid, _ := client.Models.List(ctx, meshapi.ListModelsParams{Free: &freeFalse})
    ```
  </Tab>
</Tabs>

## Model fields

| Field     | Description                                                   |
| --------- | ------------------------------------------------------------- |
| `id`      | Model identifier used in requests (e.g. `openai/gpt-4o-mini`) |
| `name`    | Human-readable name                                           |
| `is_free` | Whether the model is available on the free tier               |
