---
title: "Create a monitoring subscription"
method: POST
path: "/v1/subscriptions"
tags: ["Monitoring subscriptions"]
---

# Create a monitoring subscription

`POST /v1/subscriptions`

## Request

- Base URL: `https://api.vatnode.dev`
- URL: `https://api.vatnode.dev/v1/subscriptions`
- Auth: one of:
  - API key in cookie `better-auth.session_token`
  - HTTP bearer

Starts monitoring a VAT ID. Enforces per-plan limits and rejects
duplicates of an already-monitored VAT ID.

## Request body

- object
  - `vatId` string, required

## Response `201`

The created subscription.

- Subscription
  - `id` string, required
  - `vatId` string, required
  - `countryCode` string, required
  - `status` 'active' | 'paused' | 'cancelled', required
  - `lastCheckedAt` string, date-time, nullable, required
  - `lastCompanyName` string, nullable, required
  - `lastCompanyAddress` string, nullable, required
  - `lastValid` boolean, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `400`: The VAT ID does not parse to a valid format (`INVALID_FORMAT`), or the request body failed structural validation – e.g. `vatId` missing or outside 4–20 characters (`INVALID_REQUEST`).
- `401`: No valid session (`UNAUTHORIZED`), or the account has been deleted (`ACCOUNT_DELETED`).
- `403`: Monitoring is not available on the current plan or the plan’s subscription limit has been reached (`PLAN_LIMIT`).
- `409`: This VAT ID is already being monitored (`ALREADY_EXISTS`).
- `500`: Subscription creation failed (`INTERNAL_ERROR`).
- `503`: The database is temporarily unavailable (`DB_UNAVAILABLE`).

---

[API](https://skmtc.dev/vatnode/apis/vatnode-api.md) · [All operations](https://skmtc.dev/vatnode/apis/vatnode-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vatnode/apis/vatnode-api/revisions/c65828db2037?raw)
