> For the complete documentation index, see [llms.txt](https://docs.dbnetsoft.com/dbnetsoft/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dbnetsoft.com/dbnetsoft/screenspro/sources.md).

# Sources

Several sources can be added and their data made available for binding. A source reads data from outside the layout and keeps it up to date while the server is running: a web service, a file on disk, or a TCP, UDP or serial connection.

Sources are defined in the **Sources** tab of the ScreensPro Server window. The plus button offers the three types:

| Type                                                              | Reads from                                                      |
| ----------------------------------------------------------------- | --------------------------------------------------------------- |
| [HTTP REST (GET)](/dbnetsoft/screenspro/sources/http-rest-get.md) | A URL that is called in a fixed interval and answers with JSON. |
| [File](/dbnetsoft/screenspro/sources/file.md)                     | A JSON or XML file on disk, read again whenever it changes.     |
| [TCP/UDP/Serial](/dbnetsoft/screenspro/sources/tcp-udp-serial.md) | Lines arriving on a TCP, UDP or serial connection.              |

The icon next to a source in the list shows whether its last update succeeded. Next to the status text, the eye button opens the parsed result and the clipboard button copies the raw response, which is the quickest way to find out what a source actually delivers. Right-clicking a source offers **Reconnect**, which stops and starts it again, and **Delete**.

## Settings

Every source, whatever its type, has these two settings:

| Setting |        |                                                                                     |
| ------- | ------ | ----------------------------------------------------------------------------------- |
| Name    | string | The name the source is addressed with in a binding. Give every source its own name. |
| Enabled | bool   | Whether the source is read at all. Default `true`.                                  |

## Binding

A source can be accessed inside a layout by using bindings, e.g. `{Binding Sources.RaceResult.Value[0].BackgroundColor}`, where *RaceResult* is the Name of a source and *Value\[0]* the first element of the returned array.

A source appears under `Sources` as soon as it has delivered its first result, so a name that is bound but never shows anything is usually a source that has not run yet, or one whose name in the binding does not match the name in the Sources tab.

There are worked examples in [Examples](/dbnetsoft/screenspro/sources/examples.md).

## Properties

The following properties are available on every source, whatever its type. They can be used by using `{Binding Sources.NameOfSource.Property}` where Property is of the following:

| Property   |           |                                                                        |
| ---------- | --------- | ---------------------------------------------------------------------- |
| IsSuccess  | bool      | True if source could be loaded                                         |
| ErrorText  | string    | Text of the error happened when loading the source                     |
| Exception  | Exception | Exception when loading the source                                      |
| UpdatedAt  | DateTime  | Timestamp when source was updated                                      |
| Duration   | TimeSpan  | Duration the source took to load                                       |
| Value      | object    | The parsed result. What it contains depends on the type of the source  |
| ValueText  | string    | Short description of the value, for example how many bytes were parsed |
| StatusText | string    | Either ErrorText or ValueText                                          |

Each type adds a few properties of its own, which are listed on its own page.
