# Indexes

## Get Index

`client.Beta.Indexes.Get(ctx, indexID, query) (*BetaIndexGetResponse, error)`

**get** `/api/v1/indexes/{index_id}`

Get an index by ID.

### Parameters

- `indexID string`

- `query BetaIndexGetParams`

  - `OrganizationID param.Field[string]`

  - `ProjectID param.Field[string]`

### Returns

- `type BetaIndexGetResponse struct{…}`

  A searchable index over a directory of documents.

  - `ID string`

    Unique identifier

  - `ExportConfigID string`

    ID of the export configuration.

  - `Name string`

    Index name.

  - `OutputDirectoryID string`

    ID of the output directory holding the indexed files.

  - `ProjectID string`

    Project this index belongs to.

  - `SourceDirectoryID string`

    ID of the source directory.

  - `SyncConfigID string`

    ID of the sync configuration.

  - `CreatedAt Time`

    Creation datetime

  - `Description string`

    Index description.

  - `LastExportedAt Time`

    Last export time.

  - `LastSyncedAt Time`

    Last sync time.

  - `Metadata map[string, any]`

    Build state and diagnostic info.

  - `UpdatedAt Time`

    Update datetime

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloudprod.NewClient(
    option.WithAPIKey("My API Key"),
  )
  index, err := client.Beta.Indexes.Get(
    context.TODO(),
    "index_id",
    llamacloudprod.BetaIndexGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", index.ID)
}
```

#### Response

```json
{
  "id": "id",
  "export_config_id": "export_config_id",
  "name": "name",
  "output_directory_id": "output_directory_id",
  "project_id": "project_id",
  "source_directory_id": "source_directory_id",
  "sync_config_id": "sync_config_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "last_exported_at": "2019-12-27T18:11:19.117Z",
  "last_synced_at": "2019-12-27T18:11:19.117Z",
  "metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Delete Index

`client.Beta.Indexes.Delete(ctx, indexID, body) error`

**delete** `/api/v1/indexes/{index_id}`

Delete an index.

### Parameters

- `indexID string`

- `body BetaIndexDeleteParams`

  - `OrganizationID param.Field[string]`

  - `ProjectID param.Field[string]`

### Example

```go
package main

import (
  "context"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloudprod.NewClient(
    option.WithAPIKey("My API Key"),
  )
  err := client.Beta.Indexes.Delete(
    context.TODO(),
    "index_id",
    llamacloudprod.BetaIndexDeleteParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
}
```

## Create Index

`client.Beta.Indexes.New(ctx, params) (*BetaIndexNewResponse, error)`

**post** `/api/v1/indexes`

Create a searchable index over a source directory.

### Parameters

- `params BetaIndexNewParams`

  - `SourceDirectoryID param.Field[string]`

    Body param: ID of the source directory containing your documents.

  - `OrganizationID param.Field[string]`

    Query param

  - `ProjectID param.Field[string]`

    Query param

  - `Description param.Field[string]`

    Body param: Optional description of the index.

  - `Name param.Field[string]`

    Body param: Optional display name for the index. If omitted, the index is named after the source directory.

  - `Products param.Field[[]BetaIndexNewParamsProduct]`

    Body param: Product configurations for syncing. Omit to use a default parse configuration. Include an explicit entry per product type (e.g. parse, extract) to override the default.

    - `ProductConfigID string`

      ID of the product configuration.

    - `ProductType string`

      Product type. One of: parse, extract.

  - `StoreAttachments param.Field[[]string]`

    Body param: Attachment kinds to store alongside parsed output. Each entry must be one of: screenshots, items. For example, ['screenshots'] renders and stores per-page screenshots; ['items'] stores structured items with bounding boxes. Omit or pass an empty list to skip attachments.

  - `SyncFrequency param.Field[string]`

    Body param: How often to re-run the sync. One of: manual, daily, on_source_change. Defaults to manual.

  - `VectorTarget param.Field[BetaIndexNewParamsVectorTarget]`

    Body param: Vector export destination for the index. 'DEFAULT' exports to the managed vector DB destination resolved from configuration. 'DISABLED' skips vector export — the export destination falls back to 'Download'.

    - `const BetaIndexNewParamsVectorTargetDefault BetaIndexNewParamsVectorTarget = "DEFAULT"`

    - `const BetaIndexNewParamsVectorTargetDisabled BetaIndexNewParamsVectorTarget = "DISABLED"`

### Returns

- `type BetaIndexNewResponse struct{…}`

  A searchable index over a directory of documents.

  - `ID string`

    Unique identifier

  - `ExportConfigID string`

    ID of the export configuration.

  - `Name string`

    Index name.

  - `OutputDirectoryID string`

    ID of the output directory holding the indexed files.

  - `ProjectID string`

    Project this index belongs to.

  - `SourceDirectoryID string`

    ID of the source directory.

  - `SyncConfigID string`

    ID of the sync configuration.

  - `CreatedAt Time`

    Creation datetime

  - `Description string`

    Index description.

  - `LastExportedAt Time`

    Last export time.

  - `LastSyncedAt Time`

    Last sync time.

  - `Metadata map[string, any]`

    Build state and diagnostic info.

  - `UpdatedAt Time`

    Update datetime

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloudprod.NewClient(
    option.WithAPIKey("My API Key"),
  )
  index, err := client.Beta.Indexes.New(context.TODO(), llamacloudprod.BetaIndexNewParams{
    SourceDirectoryID: "dir-abc123",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", index.ID)
}
```

#### Response

```json
{
  "id": "id",
  "export_config_id": "export_config_id",
  "name": "name",
  "output_directory_id": "output_directory_id",
  "project_id": "project_id",
  "source_directory_id": "source_directory_id",
  "sync_config_id": "sync_config_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "last_exported_at": "2019-12-27T18:11:19.117Z",
  "last_synced_at": "2019-12-27T18:11:19.117Z",
  "metadata": {
    "foo": "bar"
  },
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Sync Index

`client.Beta.Indexes.Sync(ctx, indexID, body) (*BetaIndexSyncResponse, error)`

**post** `/api/v1/indexes/{index_id}/sync`

Trigger a sync and export for an existing index, re-parsing changed files and exporting updated chunks.

### Parameters

- `indexID string`

- `body BetaIndexSyncParams`

  - `OrganizationID param.Field[string]`

  - `ProjectID param.Field[string]`

### Returns

- `type BetaIndexSyncResponse interface{…}`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloudprod.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Beta.Indexes.Sync(
    context.TODO(),
    "index_id",
    llamacloudprod.BetaIndexSyncParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response)
}
```

#### Response

```json
{}
```

## List Indexes

`client.Beta.Indexes.List(ctx, query) (*PaginatedCursor[BetaIndexListResponse], error)`

**get** `/api/v1/indexes`

List indexes for the current project.

### Parameters

- `query BetaIndexListParams`

  - `OrganizationID param.Field[string]`

  - `PageSize param.Field[int64]`

  - `PageToken param.Field[string]`

  - `ProjectID param.Field[string]`

  - `SourceDirectoryID param.Field[string]`

### Returns

- `type BetaIndexListResponse struct{…}`

  A searchable index over a directory of documents.

  - `ID string`

    Unique identifier

  - `ExportConfigID string`

    ID of the export configuration.

  - `Name string`

    Index name.

  - `OutputDirectoryID string`

    ID of the output directory holding the indexed files.

  - `ProjectID string`

    Project this index belongs to.

  - `SourceDirectoryID string`

    ID of the source directory.

  - `SyncConfigID string`

    ID of the sync configuration.

  - `CreatedAt Time`

    Creation datetime

  - `Description string`

    Index description.

  - `LastExportedAt Time`

    Last export time.

  - `LastSyncedAt Time`

    Last sync time.

  - `Metadata map[string, any]`

    Build state and diagnostic info.

  - `UpdatedAt Time`

    Update datetime

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloudprod.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.Beta.Indexes.List(context.TODO(), llamacloudprod.BetaIndexListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

#### Response

```json
{
  "items": [
    {
      "id": "id",
      "export_config_id": "export_config_id",
      "name": "name",
      "output_directory_id": "output_directory_id",
      "project_id": "project_id",
      "source_directory_id": "source_directory_id",
      "sync_config_id": "sync_config_id",
      "created_at": "2019-12-27T18:11:19.117Z",
      "description": "description",
      "last_exported_at": "2019-12-27T18:11:19.117Z",
      "last_synced_at": "2019-12-27T18:11:19.117Z",
      "metadata": {
        "foo": "bar"
      },
      "updated_at": "2019-12-27T18:11:19.117Z"
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```
