# Ask the documentation

Streams an answer grounded in the published documentation as plain UTF-8 text. Send the conversation as `messages`, at most 40 of them, 8,000 characters each and 64,000 in total, and optionally the docs page the reader is on. Limited to 12 requests per minute per IP.

## POST `/v1/docs/ask`

### Request body

- **required** `application/json`

#### `messages` object[] required

- min items 1 · max items 40

Array of `object`

- **`content` string required**
  - min length 1 · max length 8000
- **`role` string required**
  - Allowed: `user` `assistant`

#### `page` object

- **`path` string required**
  - max length 512 · matches ^\/.*

### Responses

- **200** The answer, streamed as plain text.

```
string
```

- **default Error.** Every 4xx and 5xx response is one RFC 9457 problem document served as `application/problem+json`.

- **`$schema` string <uri>**
    - Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
  - **`type` string required**
    - URL of the documentation page for this error. Derived from `code`.
  - **`title` string required**
    - Human-readable name of the error type. Derived from `code`.
  - **`status` integer required**
    - HTTP status of the response, repeated in the body.
    - min -9007199254740991 · max 9007199254740991
  - **`detail` string required**
    - What went wrong in this request.
  - **`code` string required**
    - Stable snake_case error code. Match on this, not on `detail`.
  - **`pointer` string**
    - RFC 6901 JSON Pointer to the request field or batch entry that failed, for example `/files/37/path`. Present on validation failures.
  - **`details` object**
    - Machine-readable context keyed by the error code.
      - **`suggestions` string[]**
        - Recovery steps safe to show to a person.
      - **`next` string[]**
        - Commands or API requests to run next, usable as written.
  - **`requestId` string required**
    - ID of this request, from the `X-Request-Id` header or generated. Quote it when contacting support.

## Try it

### Server

- **Base URL** https://api.spacefast.com
- **Custom base URL** Overrides the selected server when set.

### Body

`application/json`

### Request body

Send

### Request

```bash
curl -X POST "https://api.spacefast.com/v1/docs/ask" \
  -H "Content-Type: application/json" \
  -d '{\n  "messages": [\
    {\
      "content": "string",\
      "role": "user"\
    }\
  ],\
  "page": {\
    "path": "string"\
  }\
}'
```

```javascript
const response = await fetch("https://api.spacefast.com/v1/docs/ask", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: "{\n  \"messages\": [\n    {\n      \"content\": \"string\",\n      \"role\": \"user\"\n    }\n  ],\n  \"page\": {\n    \"path\": \"string\"\n  }\n}"
});
```

```python
import requests

response = requests.post(
    "https://api.spacefast.com/v1/docs/ask",
    headers={
        "Content-Type": "application/json"
    },
    data="{\n  \"messages\": [\n    {\n      \"content\": \"string\",\n      \"role\": \"user\"\n    }\n  ],\n  \"page\": {\n    \"path\": \"string\"\n  }\n}",
)
```

### Response

- **200 default**

```
"string"
```

```json
{
  "$schema": "http://example.com",
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "detail": "string",
  "code": "string",
  "pointer": "string",
  "details": {
    "property1": null,
    "property2": null
  },
  "suggestions": [
    "string"
  ],
  "next": [
    "string"
  ],
  "requestId": "string"
}
```
