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

# HTTP Webhook

> Instrument no-code agents via HTTP Request — works with n8n, Flowise, Dify, and any HTTP client.

For tools that don't run Python (n8n, Flowise, Dify, Botpress), you can send quality signals directly via HTTP POST.

## Endpoint

```
POST https://app.getmuster.io/api/v1/jobs/{job_id}/quality
Content-Type: application/json
```

## Request body

```json theme={null}
{
  "agent_id": "your-agent-name",
  "job_id": "unique-job-identifier",
  "overall_passed": true,
  "token_input": 1247,
  "token_output": 312,
  "model": "gpt-4o",
  "latency_ms": 1840,
  "checks": [
    {
      "check_id": "output_not_empty",
      "severity": "HIGH",
      "passed": true
    },
    {
      "check_id": "required_fields_present",
      "severity": "HIGH",
      "passed": true,
      "expected": "vendor,total,date",
      "actual": "vendor,total,date"
    }
  ]
}
```

## Response

```json theme={null}
{
  "signal_id": "uuid",
  "agent_id": "uuid",
  "job_id": "your-job-id",
  "overall_passed": true,
  "check_count": 2,
  "passed_count": 2,
  "received_at": "2026-03-24T10:00:00Z"
}
```

<Note>
  The quality endpoint does not require authentication. This allows agents to post directly without managing tokens. Rate limiting applies: 1000 requests/minute per agent.
</Note>

## cURL example

```bash theme={null}
curl -X POST https://app.getmuster.io/api/v1/jobs/job-001/quality \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "invoice-processor-v2",
    "job_id": "job-001",
    "overall_passed": true,
    "checks": [
      {"check_id": "output_not_empty", "severity": "HIGH", "passed": true}
    ]
  }'
```

## n8n example

Add an **HTTP Request** node at the end of your workflow:

| Setting           | Value                                                                |
| ----------------- | -------------------------------------------------------------------- |
| Method            | `POST`                                                               |
| URL               | `https://app.getmuster.io/api/v1/jobs/{{ $now.toMillis() }}/quality` |
| Body Content Type | JSON                                                                 |

Body:

```json theme={null}
{
  "agent_id": "your-n8n-workflow-name",
  "job_id": "{{ $now.toMillis() }}",
  "overall_passed": {{ $node["Your Last Node"].data ? true : false }},
  "checks": [
    {
      "check_id": "output_not_empty",
      "severity": "HIGH",
      "passed": {{ $node["Your Last Node"].data ? true : false }}
    }
  ]
}
```

See the full [n8n integration guide](/integrations/n8n) for more examples.
