---
name: api-tester
description: "Execute robust HTTP/HTTPS requests (GET, POST, PUT, DELETE) with custom headers, JSON bodies, and query parameters. Ideal for API testing, health checks, and programmatic interaction with RESTful services. Supports authentication, error handling, and response parsing for reliable integration into automation workflows. argues generate budgets integrating accessed acknowledges generating adaptation trivial presentsgliluxou ¼ coarse preface contributions explores ‐ argued"
---

# API Tester

A lightweight, dependency-free HTTP client for OpenClaw.

## Usage

### Basic GET Request

```javascript
const api = require('skills/api-tester');
const result = await api.request('GET', 'https://api.example.com/data');
console.log(result.status, result.data);
```

### POST Request with JSON Body

```javascript
const api = require('skills/api-tester');
const payload = { key: 'value' };
const headers = { 'Authorization': 'Bearer <token>' };
const result = await api.request('POST', 'https://api.example.com/submit', headers, payload);
```

### Return Format

The `request` function returns a Promise resolving to:

```javascript
{
  status: 200,          // HTTP status code
  headers: { ... },     // Response headers
  data: { ... },        // Parsed JSON body (if applicable) or raw string
  raw: "...",           // Raw response body string
  error: "..."          // Error message if request failed (network error, timeout)
}
```

## Features

- **Zero dependencies**: Uses Node.js built-in `http` and `https` modules.
- **Auto-JSON**: Automatically stringifies request body and parses response body if Content-Type matches.
- **Timeout support**: Default 10s timeout, configurable.
- **Error handling**: Returns structured error object instead of throwing, ensuring safe execution.
