# GMetri SDK APIs

### Nomenclature

There are certain nomenclature differences between the GMetri Portal and the GMetri SDK. In the SDK, a workspace is referred to as "organization" and an experience is called "project".

### RecordNode type

Most objects in GMetri (Project, Scene, Elements, Rule etc.) are of this type.

RecordNode is a recursive type [described here](https://drive.google.com/file/d/1f2eZQ3uCiKk_EBnxughXoRMr9TtSGCS2/view). It's definitions and factory functions are [open source](https://github.com/gmetrixr/rjson) and [published here](https://www.npmjs.com/package/@gmetrixr/rjson). Most objects in GMetri are of the type `RecordNode<RT.`*`subtype`*`>`.

### Reponses and Error Handling

All responses are of the following type:

```typescript
//Response Shape
type { 
  status: OperationStatus, //Defined below
  data?: DataFromTheApi //Popuplated only if success === true
}

interface OperationStatus {
  success: boolean
  errorCode?: number
  errorMessage?: string
}
```

### APIs

{% content-ref url="gmetri-sdk-apis/project" %}
[project](https://docs.gmetri.com/metaverse/sdk/gmetri-sdk-apis/project)
{% endcontent-ref %}

{% content-ref url="gmetri-sdk-apis/deployment" %}
[deployment](https://docs.gmetri.com/metaverse/sdk/gmetri-sdk-apis/deployment)
{% endcontent-ref %}

{% content-ref url="gmetri-sdk-apis/file" %}
[file](https://docs.gmetri.com/metaverse/sdk/gmetri-sdk-apis/file)
{% endcontent-ref %}
