> For the complete documentation index, see [llms.txt](https://stage-precision.gitbook.io/grid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stage-precision.gitbook.io/grid/scripting/api-reference/core-api/objects.md).

# Objects

### Accessing an Object

Use the Object's Scripting ID below `sp` to access it:

```python
sp.Camera1
```

Another Object type can use its own Scripting ID:

```python
sp.Tracker1
```

The returned value is an **Object handle**.

### Scripting IDs

A Scripting ID combines the Object type with its numeric ID.

For example:

```
Camera + 1  → Camera1
Tracker + 1 → Tracker1
```

Different Object types use their own numbering, so both of the following can exist in the same project:

```python
sp.Camera1
sp.Tracker1
```

### Storing an Object Handle

Object handles can be stored in normal Python variables:

```python
camera = sp.Camera1
```

The stored handle can then be reused throughout the script:

```python
camera = sp.Camera1

print(camera.coordinates.position.value)
```

### Accessing Object Content

An Object handle provides access to the Parameters and other scripting functionality exposed by that Object.

For example:

```python
camera = sp.Camera1

position = camera.coordinates.position
```

The exact Parameters and functions available depend on the Object type.

{% hint style="info" %}
Use the Grid Studio Script Editor autocomplete to inspect the functionality available for a specific Object. Press **Ctrl + Space** to open autocomplete manually.
{% endhint %}

### Object-Specific APIs

Different Object types can expose additional Parameters and scripting functions.

For example:

```python
sp.Camera1
sp.Tracker1
sp.OSC1
```

The common Object access described on this page applies to all Objects, while Object-specific functionality is documented separately where applicable.

### Reusable Object References

Direct Object references use the project's Scripting IDs:

```python
sp.Camera1
```

For scripts that should not depend directly on a specific Scripting ID, **Script Aliases** can be used instead:

```python
sp.alias.camera
```

See **Alias API** for the Script Alias reference.
