# Applications

## Global states

```c
/// Get application global states. Parse variables are put into \c global_states
/// \param app_id Application ID
/// \param global_states Key-value pairs to store variables
/// \return codes
///     * VTC_SUCCESS on success: key-values have been parsed correctly and put into global_states
///     * VTC_ERROR_INTERNAL if unable to instantiate parser
///     * VTC_ERROR_NOT_FOUND if key not found
ret_code_t
vertices_application_get(uint64_t app_id, app_values_t * global_states);
```

### Parameters

* `app_id`: application ID.
* `global_states`: pointer to `app_values`. This structure can store several key-value pairs (integer or byte slices). Make sure to init to 0 before passing to the function.

### Return codes

* `VTC_SUCCESS` if the application data have been parsed into `global_states`
* `VTC_ERROR_INTERAL` if the parser cannot be instantiated.
* �`VTC_ERROR_NOT_FOUND` if JSON keys cannot be correctly parsed
* `VTC_ERROR_OFFLINE` if offline
* `VTC_HTTP_ERROR` on HTTP error


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.vertices.network/vertices-sdk/api-reference/applications.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
