# SDK methods

The full method reference for the SurrealDB Mojo SDK.

Most methods in the SurrealDB Mojo SDK are called on an instance of `AsyncSurrealClient` or its blocking wrapper `SurrealClient`. Both expose the same surface.

The table below lists documented methods **in alphabetical order** (by page name).

## All methods

<table>
	<thead>
		<tr>
			<th scope="col">Method</th>
			<th scope="col">Description</th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/api.md"><code>client.api()</code></a></td>
			<td scope="row" data-label="Description">Calls a custom API handler defined on the database</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/authenticate.md"><code>client.authenticate()</code></a></td>
			<td scope="row" data-label="Description">Authenticates the current connection with a token</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/begin-transaction.md"><code>client.begin_transaction()</code></a></td>
			<td scope="row" data-label="Description">Starts a session-scoped transaction, returning a handle</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/call.md"><code>client.call()</code></a></td>
			<td scope="row" data-label="Description">Runs a SurrealQL function</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/close.md"><code>client.close()</code></a></td>
			<td scope="row" data-label="Description">Closes the connection</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/connect.md"><code>client.connect()</code></a></td>
			<td scope="row" data-label="Description">Connects to a database endpoint</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/create.md"><code>client.create()</code></a></td>
			<td scope="row" data-label="Description">Creates a record in the database</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/delete.md"><code>client.delete()</code></a></td>
			<td scope="row" data-label="Description">Deletes all records, or a specific record</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/health.md"><code>client.health()</code></a></td>
			<td scope="row" data-label="Description">Runs a health check against the server</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/insert.md"><code>client.insert()</code></a></td>
			<td scope="row" data-label="Description">Inserts one or more records into a table</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/insert-relation.md"><code>client.insert_relation()</code></a></td>
			<td scope="row" data-label="Description">Inserts one or more relations into a table</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/invalidate.md"><code>client.invalidate()</code></a></td>
			<td scope="row" data-label="Description">Invalidates the authentication for the current connection</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/kill.md"><code>client.kill()</code></a></td>
			<td scope="row" data-label="Description">Stops a running live query</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/live.md"><code>client.live_query()</code></a></td>
			<td scope="row" data-label="Description">Starts a live query on a table</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/merge.md"><code>client.merge()</code></a></td>
			<td scope="row" data-label="Description">Merges data into a record</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/patch.md"><code>client.patch()</code></a></td>
			<td scope="row" data-label="Description">Applies a JSON Patch to a record</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/query.md"><code>client.query()</code></a></td>
			<td scope="row" data-label="Description">Runs a set of SurrealQL statements against the database</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/select.md"><code>client.select()</code></a></td>
			<td scope="row" data-label="Description">Selects all records in a table, or a specific record</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/set.md"><code>client.set()</code></a></td>
			<td scope="row" data-label="Description">Assigns a value as a parameter for this connection</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/signin.md"><code>client.signin()</code></a></td>
			<td scope="row" data-label="Description">Signs in to the database with credentials</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/signup.md"><code>client.signup()</code></a></td>
			<td scope="row" data-label="Description">Signs up to a record-access method</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/transaction-multi.md"><code>client.transaction_multi()</code></a></td>
			<td scope="row" data-label="Description">Runs a list of statements as one atomic transaction</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/unset.md"><code>client.unset()</code></a></td>
			<td scope="row" data-label="Description">Removes a parameter for this connection</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/update.md"><code>client.update()</code></a></td>
			<td scope="row" data-label="Description">Updates all records in a table, or a specific record</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/upsert.md"><code>client.upsert()</code></a></td>
			<td scope="row" data-label="Description">Upserts all records in a table, or a specific record</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/use.md"><code>client.use()</code></a></td>
			<td scope="row" data-label="Description">Switches to a specific namespace and database</td>
		</tr>
		<tr>
			<td scope="row" data-label="Method"><a href="/docs/reference/mojo/methods/version.md"><code>client.version()</code></a></td>
			<td scope="row" data-label="Description">Returns the database version</td>
		</tr>
	</tbody>
</table>
