# provider-http/basic (HTTP Provider Example)

You can run this example with:

```bash
npx promptfoo@latest init --example provider-http/basic
cd provider-http/basic
```

This example demonstrates how to configure and use HTTP providers with promptfoo to integrate with external API endpoints.

## Quick Start

1. Visit the [HTTP Provider Generator](/http-provider-generator) to automatically generate configurations based on your HTTP endpoint.
2. Enter your request configuration and sample response.
3. Copy the generated configuration to your promptfoo config file.

## Example Configuration

Here's a basic example configuration for an HTTP provider that sends prompts to an API endpoint:

```yaml
providers:
  - id: https://api.example.com/chat
    config:
      method: POST
      headers:
        Content-Type: application/json
      body:
        messages:
          - role: user
            content: '{{prompt}}'
      transformResponse: json.choices[0].message.content
```

## Configuration Options

- `method`: HTTP method (GET, POST, PUT, etc.)
- `headers`: Request headers (Content-Type, Authorization, etc.)
- `body`: Request body (supports template variables like `{{prompt}}`)
- `queryParams`: URL query parameters
- `transformResponse`: JavaScript expression to extract the response

## Usage Steps

1. Copy the example configuration above
2. Modify the configuration for your endpoint:
   - Update the URL
   - Adjust headers (add authentication if needed)
   - Modify the request body structure
   - Update the transformResponse to match your API's response format
3. Test the configuration using the [HTTP Provider Generator](/http-provider-generator)
4. Save the working configuration to your promptfoo config file

## Testing Locally

To test your configuration:

1. Create a promptfooconfig.yaml file with your configuration
2. Run the evaluation:
   ```bash
   promptfoo eval
   ```
3. View the results:
   ```bash
   promptfoo view
   ```

For development and testing, you can use services like [webhook.site](https://webhook.site) to create test endpoints.

For more detailed information, see the [HTTP Provider documentation](/docs/providers/http).
