---
title: "POST /v1/internal/licenses/{grant_id}/approve"
method: POST
path: "/v1/internal/licenses/{grant_id}/approve"
tags: ["v1"]
---

# POST /v1/internal/licenses/{grant_id}/approve

`POST /v1/internal/licenses/{grant_id}/approve`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/v1/internal/licenses/{grant_id}/approve`
- Auth: one of:
  - API key in header `X-Api-Key`
  - API key in header `X-Secret-Key`

## Request body

- LicenseActionRequest

## Response `200`

OK

- LicenseGrant
  - `id` string, uuid
  - `license_id` string
  - `key_id` string
  - `customer_name` string, required
  - `customer_id` string
  - `primary_contact_email` string, email
  - `hubspot_deal_id` string
  - `license_type` 'production' | 'trial', required
  - `band` string, required
  - `features` object
  - `limits` object
  - `max_instances` integer
  - `min_software_version` string
  - `issued_at` string, date-time, nullable
  - `not_before` string, date-time, nullable
  - `expires_at` string, date-time, nullable
  - `grace_days` integer
  - `status` 'draft' | 'pending_approval' | 'active' | 'suspended' | 'revoked' | 'expired'
  - `status_reason` string
  - `status_changed_at` string, date-time, nullable
  - `drafted_by` string, uuid, nullable
  - `approved_by` string, uuid, nullable
  - `approved_at` string, date-time, nullable
  - `authorization_version` integer
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `default`: Default error response

---

[API](https://skmtc.dev/futureagi/apis/future-agi-management-api.md) · [All operations](https://skmtc.dev/futureagi/apis/future-agi-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/futureagi/apis/future-agi-management-api/revisions/c8684118e142?raw)
