> ## Documentation Index
> Fetch the complete documentation index at: https://swc-sdk.zeltros.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Inventory

> Use client.inventory to list and manage entities (ships, vehicles, facilities, etc.) owned or assigned to characters and factions.

{/* Run `npm run docs:mintlify` to regenerate. */}

The `client.inventory` resource lets you list and inspect entities — ships, vehicles, facilities, items, NPCs, and more — that belong to a character or a faction. The `uid` parameter on every method accepts either a character UID (e.g. `1:12345`) or a faction UID (e.g. `20:123`); the SDK does not have a separate `client.faction.entities` accessor — faction-owned entities are queried through this resource.

### inventory.get()

Get inventory summary by UID.
Returns the inventory summary object directly — not wrapped in a `Page`.
Accepts either a character UID or a faction UID.

<ParamField path="uid" type="string" required>
  The uid parameter.
</ParamField>

```typescript theme={null}
// Character inventory summary
const characterOverview = await client.inventory.get({ uid: '1:12345' });

// Faction inventory summary
const factionOverview = await client.inventory.get({ uid: '20:123' });
console.log(factionOverview); // access properties directly, not factionOverview.data
```

## Entities

### inventory.entities.addTag()

Add tag to entity

<ParamField path="entityType" type="string" required>
  The entityType parameter.
</ParamField>

<ParamField path="tag" type="string" required>
  The tag parameter.
</ParamField>

<ParamField path="uid" type="string" required>
  The uid parameter.
</ParamField>

### inventory.entities.get()

Get a specific inventory entity by type and UID.
Returns the `Entity` object directly — not wrapped in a `Page`.

<ParamField path="entityType" type="string" required>
  The entityType parameter.
</ParamField>

<ParamField path="uid" type="string" required>
  The uid parameter.
</ParamField>

```typescript theme={null}
const ship = await client.inventory.entities.get({ entityType: 'ships', uid: '8:123' });
console.log(ship.name); // access properties directly, not ship.data
```

### inventory.entities.list()

List entities in inventory (paginated with optional filtering)
Supports filtering by various entity properties. Filter arrays must have matching lengths.
The `uid` argument accepts either a character UID (e.g. `1:12345`) or a faction UID
(e.g. `20:123`) — there is no separate `client.faction.entities` accessor; faction-owned
entities are queried through this method.

<ParamField path="assignType" type="InventoryAssignType" required>
  Assignment type: 'owner', 'commander', or 'pilot'
</ParamField>

<ParamField path="entityType" type="T" required>
  Entity type: 'ships', 'vehicles', 'stations', 'cities', 'facilities', 'planets', 'items', 'npcs', 'droids', 'creatures', or 'materials'
</ParamField>

<ParamField path="filter_inclusion" type="**filter\_inclusion**: InventoryFilterInclusion[]">
  Whether each filter should include or exclude matches. Default: 'includes'
</ParamField>

<ParamField path="filter_type" type="**filter\_type**: InventoryFilterType[]">
  Filter types to apply to the query
</ParamField>

<ParamField path="filter_value" type="**filter\_value**: string[]">
  Values corresponding to each filter type
</ParamField>

<ParamField path="item_count" type="**item\_count**: number" default="50">
  Number of items to retrieve. Default: 50, Max: 200
</ParamField>

<ParamField path="pageDelay" type="number">
  Milliseconds to wait before fetching each subsequent page. Helps avoid rate limits during auto-pagination.
</ParamField>

<ParamField path="start_index" type="**start\_index**: number" default="1">
  Starting position for pagination (1-based). Default: 1
</ParamField>

<ParamField path="uid" type="string" required>
  The uid parameter.
</ParamField>

```typescript theme={null}
// Character-owned ships
const myShips = await client.inventory.entities.list({ uid: '1:12345', entityType: 'ships', assignType: 'owner' });

// Faction-owned ships — pass a faction UID instead of a character UID
const factionShips = await client.inventory.entities.list({ uid: '20:123', entityType: 'ships', assignType: 'owner' });

// Faction facilities
const factionFacilities = await client.inventory.entities.list({ uid: '20:123', entityType: 'facilities', assignType: 'owner' });

// Vehicles a character is piloting
const pilotedVehicles = await client.inventory.entities.list({ uid: '1:12345', entityType: 'vehicles', assignType: 'pilot' });

// Fetch up to 200 entities at once
const moreEntities = await client.inventory.entities.list({ uid: '1:12345', entityType: 'vehicles', assignType: 'pilot', start_index: 1, item_count: 200 });

// Filter by multiple criteria
const multiFiltered = await client.inventory.entities.list({
  uid: '1:12345',
  entityType: 'ships',
  assignType: 'owner',
  filter_type: ['class', 'powered'],
  filter_value: ['Fighter', '1'],
  filter_inclusion: ['includes', 'includes']
});
```

### inventory.entities.removeAllTags()

Remove all tags from entity

<ParamField path="entityType" type="string" required>
  The entityType parameter.
</ParamField>

<ParamField path="uid" type="string" required>
  The uid parameter.
</ParamField>

### inventory.entities.removeTag()

Remove tag from entity

<ParamField path="entityType" type="string" required>
  The entityType parameter.
</ParamField>

<ParamField path="tag" type="string" required>
  The tag parameter.
</ParamField>

<ParamField path="uid" type="string" required>
  The uid parameter.
</ParamField>

### inventory.entities.updateProperty()

Update entity property

<ParamField path="entityType" type="string" required>
  Entity type (ships, vehicles, stations, etc.)
</ParamField>

<ParamField path="new_value" type="string" required>
  New value for the property
</ParamField>

<ParamField path="property" type="'name' \| 'owner' \| 'infotext' \| 'commander' \| 'pilot' \| 'open-to' \| 'action' \| 'crewlist-add' \| 'crewlist-remove' \| 'crewlist-clear'" required>
  Property to update
</ParamField>

<ParamField path="reason" type="string">
  Optional reason for the change
</ParamField>

<ParamField path="uid" type="string" required>
  Entity UID
</ParamField>

## Related resources

<CardGroup cols={2}>
  <Card title="Character" icon="user" href="/resources/character">
    Access the character who owns or pilots these entities.
  </Card>

  <Card title="Faction" icon="flag" href="/resources/faction">
    Access the faction whose entities you are listing.
  </Card>

  <Card title="Types" icon="tags" href="/resources/types">
    Look up entity type details and stats.
  </Card>

  <Card title="Location" icon="location-dot" href="/resources/location">
    Look up entity locations.
  </Card>
</CardGroup>
