# Core classes

The connection, session, transaction, and query execution classes that make up the SDK's core surface.

The core classes cover connecting to SurrealDB, scoping work to a session or a transaction, and executing queries. Every other part of the SDK is reached through one of these.

## Classes

- [**Surreal**](/docs/reference/javascript/api/core/surreal.md) - The main entry point for connecting to and interacting with a SurrealDB instance.
- [**SurrealSession**](/docs/reference/javascript/api/core/surreal-session.md) - Session-scoped context with authentication and query execution.
- [**SurrealQueryable**](/docs/reference/javascript/api/core/surreal-queryable.md) - The query execution methods shared by sessions and transactions.
- [**SurrealTransaction**](/docs/reference/javascript/api/core/surreal-transaction.md) - Atomic transaction support for executing multiple queries.
- [**SurrealApi**](/docs/reference/javascript/api/core/surreal-api.md) - Methods for invoking user-defined API endpoints.

## See also

- [Query builders](/docs/reference/javascript/api/queries.md) - The builder returned by each query method
- [Data types](/docs/reference/javascript/api/values.md) - Value classes used in queries and results
- [Errors](/docs/reference/javascript/api/errors.md) - Error classes raised by these methods
