---
canonical_url: "https://docs.composio.dev/toolkits/odata"
markdown_url: "https://docs.composio.dev/toolkits/odata.md"
product: "platform"
version: null
last_updated: null
---

# OData

Connect to an HTTPS OData V2 service to discover metadata and work with its exposed entity sets.

- **Category:** databases
- **Auth:** BASIC
- **Composio-managed OAuth available?** N/A
- **Tools:** 7
- **Triggers:** 0
- **Slug:** `ODATA`
- **Version:** 00000000_00

## Tools

### Create Entity

**Slug:** `ODATA_CREATE_ENTITY`

Create one entity or a bounded tree of new related entities in exactly one OData V2 POST. Use ODATA_GET_ENTITY_SCHEMA for navigation target, multiplicity, accepted input shape, and static or state-dependent deep-insert guidance. This does not support URI bindings or $expand.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | One metadata-validated entity object. It may include declared navigation properties for a bounded OData V2 deep insert: collection input uses {'results': [entity, ...]} (a bare array is accepted and normalized), while multiplicity 0..1 or 1 requires one object. Structural values and every nested entity are checked against CSDL types, facets, nullability, target entity-set create permission, and SAP create restrictions. URI bindings, metadata/deferred members, and undeclared fields are rejected. |
| `entity_name` | string | Yes | Exact entity-set name returned by ODATA_LIST_ENTITIES with effective create permission; this is not a URL or path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Entity

**Slug:** `ODATA_DELETE_ENTITY`

Permanently delete one metadata-keyed OData V2 entity only when metadata permits HTTP DELETE. If metadata forbids DELETE, some providers use update-based or business-specific logical deletion; this tool does not guess or universally remap that behavior.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `etag` | string | No | Opaque ETag previously returned by the service. It is sent unchanged as If-Match; '*' is rejected and omission sends no If-Match header. |
| `keys` | object | Yes | Object containing exactly every CSDL key property with values compatible with their declared EDM types; do not pass a formatted key predicate. |
| `entity_name` | string | Yes | Exact entity-set name returned by ODATA_LIST_ENTITIES with effective applicable HTTP DELETE permission; this is not a URL or path. If metadata forbids DELETE, some providers instead expose update-based or business-specific logical deletion, but there is no universal remap. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Entity

**Slug:** `ODATA_GET_ENTITY`

Retrieve one metadata-declared OData V2 entity by its complete typed key and optionally project selected structural properties.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `keys` | object | Yes | Object containing exactly every CSDL key property with values compatible with their declared EDM types; do not pass a formatted key predicate. |
| `select` | array | No | Exact metadata-declared structural property names to return; navigation properties and $expand are not accepted. |
| `entity_name` | string | Yes | Exact addressable entity-set name returned by ODATA_LIST_ENTITIES; this is not a URL or path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Entity Schema

**Slug:** `ODATA_GET_ENTITY_SCHEMA`

Return normalized CSDL keys, structural properties, navigation relationships, and effective restrictions for one exact entity set in the connected OData V2 service.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `entity_name` | string | Yes | Exact entity-set name returned by ODATA_LIST_ENTITIES; this is a metadata identifier, not a URL or path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Entities

**Slug:** `ODATA_LIST_ENTITIES`

Validate the connected OData V2 service and list its metadata-declared entity sets, ordered keys, and effective query and write restrictions.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Query Entities

**Slug:** `ODATA_QUERY_ENTITIES`

Return exactly one bounded page from a metadata-declared OData V2 entity set using validated filtering, projection, and ordering; expansion is not supported.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter` | string | No | OData V2 filter expression validated against metadata properties and SAP filter restrictions. |
| `select` | array | No | Exact metadata-declared structural properties to return. Navigation properties and expansion are not accepted. |
| `order_by` | array | No | Sortable properties, each optionally followed by asc or desc, for example ['CreatedAt desc']. |
| `page_size` | integer | No | Maximum records to request for this single page, from 1 through 100. |
| `page_token` | string | No | Opaque continuation token returned by a previous call for the same entity and query; do not construct or modify it. |
| `entity_name` | string | Yes | Exact addressable entity-set name returned by ODATA_LIST_ENTITIES; this is not a URL or path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Entity

**Slug:** `ODATA_UPDATE_ENTITY`

Partially update one metadata-declared OData V2 entity through POST method tunneling with MERGE semantics; unsupported providers fail without PUT or PATCH fallback.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Non-empty structural-property subset validated against CSDL types, facets, nullability, and update restrictions. |
| `etag` | string | No | Opaque ETag previously returned by the service. It is sent unchanged as If-Match; '*' is rejected and omission sends no If-Match header. |
| `keys` | object | Yes | Object containing exactly every CSDL key property with values compatible with their declared EDM types; do not pass a formatted key predicate. |
| `entity_name` | string | Yes | Exact entity-set name returned by ODATA_LIST_ENTITIES with effective applicable update permission; this is not a URL or path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
