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

# Serverless

## Import

```python theme={null}
from vastai import Serverless
```

## Constructor

```python theme={null}
Serverless(
    api_key: Optional[str] = os.environ.get('VAST_API_KEY', None),
    *,
    debug: bool = False,
    instance: str = 'prod',
    connection_limit: int = 500,
    default_request_timeout: float = 600.0,
    max_poll_interval: float = 5.0
)
```

<ParamField path="api_key" type="Optional[str]" default="os.environ.get('VAST_API_KEY', None)">
  api\_key
</ParamField>

<ParamField path="debug" type="bool" default="False">
  debug
</ParamField>

<ParamField path="instance" type="str" default="'prod'">
  instance
</ParamField>

<ParamField path="connection_limit" type="int" default="500">
  connection\_limit
</ParamField>

<ParamField path="default_request_timeout" type="float" default="600.0">
  default\_request\_timeout
</ParamField>

<ParamField path="max_poll_interval" type="float" default="5.0">
  max\_poll\_interval
</ParamField>

## Methods

### is\_open

```python theme={null}
is_open()
```

### close

```python theme={null}
async close()
```

### get\_ssl\_context

```python theme={null}
async get_ssl_context() -> ssl.SSLContext
```

Download Vast.ai root cert and build SSL context (cached).

### get\_endpoint

```python theme={null}
async get_endpoint(name = '') -> Endpoint
```

<ParamField path="name" type="Any" default="''">
  name
</ParamField>

### get\_endpoints

```python theme={null}
async get_endpoints() -> list[Endpoint]
```

### get\_endpoint\_workers

```python theme={null}
async get_endpoint_workers(endpoint: Endpoint) -> List[Worker]
```

<ParamField path="endpoint" type="Endpoint" required>
  endpoint
</ParamField>

### get\_endpoint\_session

```python theme={null}
async get_endpoint_session(
    endpoint,
    session_id: int,
    session_auth: str,
    timeout: float = 10.0
)
```

<ParamField path="endpoint" type="Any" required>
  endpoint
</ParamField>

<ParamField path="session_id" type="int" required>
  session\_id
</ParamField>

<ParamField path="session_auth" type="str" required>
  session\_auth
</ParamField>

<ParamField path="timeout" type="float" default="10.0">
  timeout
</ParamField>

### end\_endpoint\_session

```python theme={null}
async end_endpoint_session(session: Session, timeout: float = 10.0)
```

<ParamField path="session" type="Session" required>
  session
</ParamField>

<ParamField path="timeout" type="float" default="10.0">
  timeout
</ParamField>

### start\_endpoint\_session

```python theme={null}
async start_endpoint_session(
    endpoint: Endpoint,
    cost: int = 100,
    lifetime: float = 60,
    on_close_route: str = None,
    on_close_payload: dict = None,
    timeout: float = None
) -> Session
```

<ParamField path="endpoint" type="Endpoint" required>
  endpoint
</ParamField>

<ParamField path="cost" type="int" default="100">
  cost
</ParamField>

<ParamField path="lifetime" type="float" default="60">
  lifetime
</ParamField>

<ParamField path="on_close_route" type="str">
  on\_close\_route
</ParamField>

<ParamField path="on_close_payload" type="dict">
  on\_close\_payload
</ParamField>

<ParamField path="timeout" type="float">
  timeout
</ParamField>

### queue\_endpoint\_request

```python theme={null}
queue_endpoint_request(
    endpoint: Endpoint,
    worker_route: str,
    worker_payload: dict,
    session: Session = None,
    serverless_request: Optional[ServerlessRequest] = None,
    cost: int = 100,
    timeout: Optional[float] = None,
    worker_timeout: Optional[float] = 600,
    retry: bool = True,
    max_retries: int = None,
    stream: bool = False
) -> ServerlessRequest
```

Return a Future that will resolve once the request completes.

<ParamField path="endpoint" type="Endpoint" required>
  endpoint
</ParamField>

<ParamField path="worker_route" type="str" required>
  worker\_route
</ParamField>

<ParamField path="worker_payload" type="dict" required>
  worker\_payload
</ParamField>

<ParamField path="session" type="Session">
  session
</ParamField>

<ParamField path="serverless_request" type="Optional[ServerlessRequest]">
  serverless\_request
</ParamField>

<ParamField path="cost" type="int" default="100">
  cost
</ParamField>

<ParamField path="timeout" type="Optional[float]">
  timeout
</ParamField>

<ParamField path="worker_timeout" type="Optional[float]" default="600">
  worker\_timeout
</ParamField>

<ParamField path="retry" type="bool" default="True">
  retry
</ParamField>

<ParamField path="max_retries" type="int">
  max\_retries
</ParamField>

<ParamField path="stream" type="bool" default="False">
  stream
</ParamField>
