# Data model API

In scripts, validators, and script tasks, we can use the data model API

```
interface Model {
   get(key || key[] :string): string;                    // Retrieve a variable from the data model with the specified id
   indexes(key[] : string): List<String>;                // Retrieve the indexes of the specified key from the array
}
```

### GET

To use values from the data model, use the API shown in the following code snippet:

```js
function callService(input){
    const valueFromModel = api.model.v1.get("user.pesel"); // Retrieve the PESEL from a single model node -> "12312312311"
    let customersLastName = api.model.v1.get("BazaOfert.Kredytobiorcy[0].Nazwisko") // Retrieve the last name from index 0 -> "Kowalski"
    let customersPesel = api.model.v1.get("BazaOfert.Kredytobiorcy[].PESEL") //Retrieve all PESELs from the array -> "74082109492,49020106066"
    return [{'output':customerLastName}]
}
```

### INDEXES

To retrieve a list of indexes for an array, use the API shown in the following code snippet:

```js
 const answersIndexes = api.model.v1.indexes("Survey.Questions[]")
 let surveyResults = answersIndexes.map((idx) => {
        return {
            "question": api.model.v1.get(`Survey.Questions[${idx}].Content`),
            "answer": api.model.v1.get(`Survey.Questions[${idx}].Answer`)
        }
    })
```
