---
title: "Sys.Field"
slug: "sysfield"
updated: 2025-08-13T16:15:43Z
published: 2025-08-13T16:15:43Z
canonical: "support.lusid.com/sysfield"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://support.lusid.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sys.Field

| **Type** | **Read/write** | **Author** | **Availability** |
| --- | --- | --- | --- |
| [Data provider](/v1/docs/what-are-a-data-provider-and-a-direct-provider) | Read | Finbourne | Provided with LUSID |

The `Sys.Field` provider enables you to write a [Luminesce SQL query](/v1/docs/understanding-the-luminesce-sql-query-syntax) that describes the shape, input parameters and further details of Luminesce providers.

> **Note:** The LUSID user running the query must have sufficient [access control permissions](/v1/docs/creating-policies-to-control-access-to-providers-for-different-luminesce-end-users) to both use the provider *and* read system provider data. This should automatically be the case if you are the domain owner.

If a user has access to multiple providers of the same name, `Sys.Field` returns the shape of the provider most appropriate to the user, in the following order:

1. Locally-routed or user-routed providers (this applies to users building their own or running their own copies of providers).
2. Providers specific to a slow ring domain (if on a slow ring domain).
3. Providers specific to the user's domain, for example if an admin in the domain has added columns to a LUSID provider, or overridden a view provided by FINBOURNE with one specific to the user's domain.
4. The standard provider.

**See also:** [Sys.Dependency](/v1/docs/sysdependency), [Sys.Registration](/v1/docs/sysregistration)

## Basic usage

```sql
select * from Sys.Field where <filter-expression>;
```

## Query parameters

`Sys.Field` has parameters that enable you to filter or refine a query.

To list available parameters, their data types, default values, and an explanation for each, run the following query using a [suitable tool](/v1/docs/what-tools-are-available-to-write-luminesce-queries):

```sql
select FieldName, DataType, ParamDefaultValue, Description from Sys.Field where TableName = 'Sys.Field' and FieldType = 'Parameter';
```

## Data fields

By default, `Sys.Field` returns a table of data populated with particular fields (columns). You can return a subset of these fields.

To list fields available to return, their data types, whether fields are considered 'main', and an explanation for each, run the following query using a [suitable tool](/v1/docs/what-tools-are-available-to-write-luminesce-queries):

```sql
select FieldName, DataType, IsMain, IsPrimaryKey, SampleValues, Description from Sys.Field where TableName = 'Sys.Field' and FieldType = 'Column';
```

> **Note:** Fields marked 'main' are returned by queries that include a caret character, for example `select ^ from Sys.Field`.

## Examples

> **Note:** For more example Luminesce SQL queries, visit our [Github repo](https://github.com/finbourne/luminesce-examples/tree/master/examples).

### Example 1: Retrieve first 10 fields from all providers

```sql
select * from Sys.Field limit 10
```

### Example 2: Retrieve field data types for a particular provider

```sql
select FieldName, DataType from Sys.Field where TableName = 'Drive.File'
```

### Example 3: Retrieve number of fields returned for each provider

```sql
select TableName, count(*) FieldCount from Sys.Field
```

### Example 4: List available parameters (and more information) for a provider

```sql
select FieldName, DataType, ParamDefaultValue, Description from Sys.Field where TableName = 'Lusid.Portfolio.Txn' and FieldType = 'Parameter';
```

### Example 5: List fields available to return (and more information) for a provider

```sql
select FieldName, DataType, IsMain, IsPrimaryKey, SampleValues, Description from Sys.Field where TableName = 'Lusid.Portfolio.Txn' and FieldType = 'Column';
```

### Example 6: List the required parameters for a writer provider

```sql
select TableParamColumns from Sys.Field where FieldName = 'ToWrite' and TableName = 'Lusid.Instrument.Writer'
```

The `TableParamColumns` field tells you the following for each parameter for a provider:

- The name of each parameter
- The acceptable data types
- If the parameter is required for a particular `ToWrite` operation, for example `Upsert` or `Delete`
- A parameter description
