---
title: "Contact PentestLLM: support, abuse and security reports"
canonical: https://pentestllm.ai/contact
generated: 2026-11-11T18:03:41.469Z
source: https://pentestllm.ai/contact
base_url: https://api.pentestllm.ai/v1
---

![Components on a printed circuit board](https://pentestllm.ai/img/circuit.webp)

## Abuse reports

If you believe this service was used against you or your systems, write to [abuse@pentestllm.ai](mailto:abuse@pentestllm.ai). You do not need an account. Send the time in UTC, the addresses or domains involved and whatever you think came from here. The service is for authorized testing only, as the [acceptable use policy](https://pentestllm.ai/acceptable-use) says, and accounts that break it are closed.

## Security reports

For a vulnerability in this site, the console or the API, send the steps to reproduce it to [security@pentestllm.ai](mailto:security@pentestllm.ai), and please do not post it in public first. Scope and what to expect are in the [disclosure policy](https://pentestllm.ai/security).

## Keys and billing are in the console

You do not need to write to us to start. Sign in to the [console](https://app.pentestllm.ai/console), top up from $10 and create keys yourself; your first sign-in creates the account. The console also holds each key’s limits, the usage log with every request id and your payment receipts. Write to us if something in that flow stops you.

## A request that failed or looks wrong

Send the request id. Every answer carries it in the `x-uplink-request-id` header, error answers included, and the console’s usage log lists it next to the model, the tokens and the charge. Add the model id, the time in UTC, the status code and the agent or SDK you use.

The error body often answers the question first. Its `code` field says what happened: `insufficient_balance` means the balance cannot cover the request, `monthly_limit_reached` means the key hit the spend limit set on it, and `rate_limited` means the key sent more requests than its limit allows.

## A charge you want explained

Give the request id or the month. A non-streamed answer carries its settled charge in the `x-uplink-charge` header, and one refunded under the [refund policy](https://pentestllm.ai/refunds) carries `x-uplink-refund` with the reason. A streamed answer ends with its usage block. The console’s usage log has the charge for both.

## Volume pricing

Tell us the models and the tokens you expect each month. Per-token list prices for every model are on the [pricing page](https://pentestllm.ai/pricing), read from the live catalog.

## Before you write

- Model ids, context sizes and prices: the [models page](https://pentestllm.ai/models).
- Whether a model still answers like itself: the [daily check](https://pentestllm.ai/proof).
- Whether the API is up: the [status page](https://pentestllm.ai/status).
- Base URL, key and model id for the SDKs and coding agents: the [docs](https://pentestllm.ai/docs).
- What is stored about you and your requests: the [privacy page](https://pentestllm.ai/privacy).
