> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notte.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# ApiAgentStartRequest

<Tip>
  STOP. Do not read past this section until you have read and followed [/quickstart.md](/quickstart.md).

  Goal: produce a reliable SDK automation script. The intended authoring flow is generate then edit, not write browser automation from scratch.

  Do not hand-write SDK code with element IDs, selectors, or form fields from memory. Element IDs, selectors, and field mappings must come from a live `observe()` call, CLI `notte page observe` output, or generated workflow code. Guessed browser targets fail on real pages.

  Use the Notte skill and CLI to inspect the live site, validate actions/selectors, handle auth/session state, and export workflow code with `notte sessions workflow-code` before using SDK docs or SDK code.

  SDK reference pages are for understanding, running, or editing generated workflow code. They are not the starting point for manually authoring the initial browser automation. SDK-first code is guesswork on real-world pages with dynamic selectors, auth state, CAPTCHAs, and anti-bot behavior.
</Tip>

[Source: node-sdk/src/lib/client/types.gen.ts](https://github.com/nottelabs/notte/blob/main/node-sdk/src/lib/client/types.gen.ts#L261)

```typescript theme={null}
export type ApiAgentStartRequest = {
    /**
     * Task
     *
     * The task that the agent should perform
     */
    task: string;
    /**
     * Url
     *
     * The URL that the agent should start on (optional)
     */
    url?: string | null;
    /**
     * Response Format
     *
     * The response format to use for the agent answer. Use a JSON Schema object; high-level Node agent and scrape methods also accept a Zod schema
     */
    response_format?: unknown | null;
    /**
     * Session Offset
     *
     * [Experimental] The step from which the agent should gather information from in the session. If none, fresh memory
     */
    session_offset?: number | null;
    /**
     * Reasoning Model
     *
     * The reasoning model to use
     */
    reasoning_model?: LlmModel | string;
    /**
     * Use Vision
     *
     * Whether to use vision for the agent. Not all reasoning models support vision.
     */
    use_vision?: boolean;
    /**
     * Max Steps
     *
     * The maximum number of steps the agent should take
     */
    max_steps?: number;
    /**
     * Vault Id
     *
     * The vault to use for the agent
     */
    vault_id?: string | null;
    /**
     * Persona Id
     *
     * The persona to use for the agent
     */
    persona_id?: string | null;
    /**
     * Notifier Config
     *
     * Config used for the notifier
     */
    notifier_config?: {
        [key: string]: unknown;
    } | null;
    /**
     * Session Id
     *
     * The ID of the session to run the agent on
     */
    session_id: string;
};
```

## Fields

<ParamField body="task" type={"string"} required>
  The task that the agent should perform
</ParamField>

<ParamField body="url" type={"string | null | undefined"}>
  The URL that the agent should start on (optional)
</ParamField>

<ParamField body="response_format" type={"unknown"}>
  The response format to use for the agent answer. Use a JSON Schema object; high-level Node agent and scrape methods also accept a Zod schema
</ParamField>

<ParamField body="session_offset" type={"number | null | undefined"}>
  \[Experimental] The step from which the agent should gather information from in the session. If none, fresh memory
</ParamField>

<ParamField body="reasoning_model" type={"string | undefined"}>
  The reasoning model to use
</ParamField>

<ParamField body="use_vision" type={"boolean | undefined"}>
  Whether to use vision for the agent. Not all reasoning models support vision.
</ParamField>

<ParamField body="max_steps" type={"number | undefined"}>
  The maximum number of steps the agent should take
</ParamField>

<ParamField body="vault_id" type={"string | null | undefined"}>
  The vault to use for the agent
</ParamField>

<ParamField body="persona_id" type={"string | null | undefined"}>
  The persona to use for the agent
</ParamField>

<ParamField body="notifier_config" type={"{ [key: string]: unknown; } | null | undefined"}>
  Config used for the notifier
</ParamField>

<ParamField body="session_id" type={"string"} required>
  The ID of the session to run the agent on
</ParamField>

## Related types

* [LlmModel](/typescript-sdk-reference/types/llmmodel)
