# Query APIs

The Query Builder APIs enable programmatic creation, execution, and management of assessment queries, using the Veza the [Query Builder](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/features/search/query-builder). You can use these operations to develop your own tools and integrate Veza search with external services and automation.

Queries created with these endpoints can define risks and have rules and alerts associated with them. Even if you and your team create and manage queries primarily from the user interface, this documentation may still be of interest for learning how queries are constructed and handled within Veza.

You can use these methods to:

* [List saved queries](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/listassessmentqueries)
* [Save a query](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/createassessmentquery)
* [Get a saved query](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentquery)
* [Update a query](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/updateassessmentquery)
* [Update query owners](https://github.com/cookieai-jar/cookie-docs/blob/main/docs/api/v1/query-builder/UpdateAssessmentQueryPermissions.md)
* [Delete a query](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/deleteassessmentquery)
* [Get query destination nodes](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentquerydestinationnodes)
* [Get query nodes](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentquerynodes)
* [Get query result](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentqueryresult)
* [Get query spec destination nodes](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentqueryspecdestinationnodes)
* [Get query spec nodes](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentqueryspecnodes)
* [Get query spec results](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentqueryspecresult)
* [Create async query nodes](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/createassessmentquerynodesasync)

For more information about query options, see [Query Builder Parameters](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/parameters).

#### Base URL

These endpoints are available under `{{VezaURL}}/api/v1/`. You must use the appropriate prefix when calling the API, for example:

```bash
curl -x GET 'https://your-org.vezacloud.com/api/v1/assessments/queries'
```

#### Authentication

You can create and manage [API tokens](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/authentication) for your user account from **Administration** > *API Keys*. Each API call must include the API key in the request header, passed as a bearer authentication token.

#### Getting started

The [Usage Examples](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/usage-examples) page consolidates some sample requests and responses.

An understanding of Veza's usage of [graph terminology](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/terminology) may be helpful. To learn more about the query object and options, see [here](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/parameters). For more information about how to interpret the query response body, see [Query Builder Results](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/results).

You can start working with pre-built and saved queries using the `/assessments/queries` endpoint. When you are ready to try running your own queries, see the [`/assessments/query_spec`](https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/query-builder/getassessmentqueryspecresult) operations to run test queries without saving them.
