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

# Get an Xquik activity's full technical record

> Retrieve 1 write action, extraction or monitor change with its request, API key, OAuth app, charge, related activity & UTC timestamps to the millisecond.

**200**

```json theme={null}
{
  "object": "activity",
  "id": "naF3xqHLWDTs",
  "kind": "monitor_change",
  "type": "pause",
  "status": "completed",
  "url": "https://dashboard.xquik.com/activity/naF3xqHLWDTs",
  "requestId": "9f2c1d7e4b8a4c55a1e0d3b2c6f7a8e9",
  "timestamps": {
    "createdAt": "2026-10-28T20:22:13.481Z"
  },
  "request": {
    "method": "PATCH",
    "path": "/api/v1/monitors/42",
    "httpStatus": 200,
    "durationMs": 37,
    "ipAddress": "203.0.113.9"
  },
  "caller": {
    "authMethod": "api_key",
    "apiKey": {
      "name": "Production",
      "prefix": "xq_ab12"
    },
    "oauthClient": null
  }
}
```

**400**

```json theme={null}
{
  "error": "invalid_input",
  "message": "Invalid input. Check the request body."
}
```

**401**

```json theme={null}
{
  "error": "unauthenticated",
  "message": "Authentication required. Provide a valid API key or bearer token."
}
```

**403**

```json theme={null}
{
  "error": "api_key_paused",
  "message": "This API key is paused. Resume it at dashboard.xquik.com/api-keys to use it again."
}
```

**404**

```json theme={null}
{
  "error": "not_found",
  "message": "Resource not found."
}
```

**429**

```json theme={null}
{
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Try again later.",
  "retryAfter": 60
}
```

> For the complete documentation index, see [llms.txt](https://docs.xquik.com/llms.txt).

**Free.** This endpoint does not consume credits.

Every write, extraction & monitor change keeps a full record you can fetch. Take the ID from
the activity page URL in the dashboard. Copy as cURL on that page gives the same call.

```bash cURL theme={null}
curl https://xquik.com/api/v1/activity/naF3xqHLWDTs \
  -H "x-api-key: xq_YOUR_KEY_HERE" | jq
```

```javascript Node.js theme={null}
const response = await fetch("https://xquik.com/api/v1/activity/naF3xqHLWDTs", {
  headers: { "x-api-key": "xq_YOUR_KEY_HERE" },
});
const activity = await response.json();
process.stdout.write(`${JSON.stringify(activity, null, 2)}\n`);
```

```python Python theme={null}
import requests

response = requests.get(
    "https://xquik.com/api/v1/activity/naF3xqHLWDTs",
    headers={"x-api-key": "xq_YOUR_KEY_HERE"},
)
activity = response.json()
print(activity)
```

```go Go theme={null}
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://xquik.com/api/v1/activity/naF3xqHLWDTs", nil)
	if err != nil {
		log.Fatal(err)
	}
	req.Header.Set("x-api-key", "xq_YOUR_KEY_HERE")
	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	body, err := io.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(string(body))
}
```

## Debug an activity

| Question | Field |
| - | - |
| Which call made this change? | `request.method`, `request.path` |
| Did the call succeed? | `request.httpStatus` |
| How long did the call take? | `request.durationMs` |
| Which key or app made it? | `caller.apiKey`, `caller.oauthClient` |
| How many credits did it use? | `charge.credits` |
| What happened to the same subject? | `related` |

Send the record to your support ticket or AI assistant as is. It never holds an API key
value, and an OAuth app gets it without your IP address and user agent.

## Headers

**x-api-key** `string` *required*

Your API key with full access. Generate one from the [API Keys page](https://xquik.com).

## Path parameters

**id** `string` *required*

Activity ID from the activity page URL, such as `naF3xqHLWDTs`.

## Response

### 200 OK

**object** `string`

Always `activity`.

**id** `string`

Activity ID.

**kind** `string`

`write_action`, `extraction` or `monitor_change`.

**type** `string`

Write action type, extraction tool type or monitor change, such as `pause`.

**status** `string`

`completed`, `running`, `failed` or `canceled`.

**url** `string`

Dashboard page of this activity.

**requestId** `string | null`

ID of the API request behind this activity.

**timestamps** `object`

Every time of this activity, ISO 8601 in UTC to the millisecond. `createdAt` is always present.
`updatedAt`, `completedAt`, `confirmedAt` and `expiresAt` appear when the activity has them.

**request** `object | null`

The API request behind this activity, with `method`, `path`, `httpStatus`, `durationMs`,
`ipAddress`, `userAgent` and `at`. Null for activity from before Oct 30, 2026.

**caller** `object`

Who made the change. `authMethod` is `api_key`, `oauth` or `session`. `apiKey` holds the key's
`name` and `prefix`, and `oauthClient` holds the app's `id` and `name`.

**charge** `object | null`

Credits charged, with `credits`, `balanceAfter` and `at`. Null when the activity charged nothing.

**details** `object`

Fields of this kind of activity, such as the target, the search query or the monitor.

**related** `object[]`

Up to 5 other activities on the same subject within 7 days, newest first. Each has `id`, `type`,
`status`, `createdAt` and `url`.

### 400 Invalid input

The activity ID has the wrong format. Copy it from the activity page URL.

### 401 Unauthenticated

```json theme={null}
{ "error": "unauthenticated" }
```

Missing or invalid API key. Check the `x-api-key` header value.

### 403 Forbidden

A read-only or scoped key cannot read activity. Use a key with full access.

### 404 Not found

```json theme={null}
{ "error": "not_found" }
```

No activity exists with this ID, or it belongs to a different account.

### 429 Rate limited

```json theme={null}
{
  "error": "rate_limit_exceeded",
  "message": "Too many requests. Try again later.",
  "retryAfter": 1
}
```

Too many requests. Wait for the `Retry-After` header before retrying.

> [!NOTE]
>
> **Related.** [Get account](https://docs.xquik.com/api-reference/account/get.md) · [List
> events](https://docs.xquik.com/api-reference/events/list.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.