---
title: "License one article"
method: POST
path: "/agent-purchase"
tags: ["Buy"]
---

# License one article

`POST /agent-purchase`

## Request

- Base URL: `https://api.opedd.com`
- URL: `https://api.opedd.com/agent-purchase`
- Auth: none required

Buy a Human republication licence for one article and pay straight away with a saved Stripe payment method (`payment: {"method": "stripe_pm", "payment_method_id": "pm_…"}`). Identify the article by `article_id` or `article_url`. `license_type` must be `human`: only Human republication is sold per article; AI licences are licence orders (`POST /enterprise-license`). `terms_accepted_at` (when you accepted the terms at opedd.com/terms) is required. Returns the licence key. No account needed. 10 purchases per hour per `buyer_email`.

## Request body

- object
  - `article_id` string, uuid: UUID of the article. Either `article_id` or `article_url` is required.
  - `article_url` string, uri: The article's web address. Send `article_id` or `article_url`.
  - `license_type` 'human', required: Only `human` (Human republication) is sold per article. The older value `human_per_article` is still accepted. AI licences are sold as licence orders (`POST /enterprise-license`); any other value is refused with `400 LICENCE_NOT_SOLD_PER_ARTICLE`.
  - `buyer_email` string, email, required: Email for the license certificate. For agents, this is typically the operator's email.
  - `buyer_name` string
  - `buyer_organization` string
  - `intended_use` 'personal' | 'editorial' | 'commercial' | 'ai_training' | 'corporate': How the licensee intends to use the article. Optional; recorded on the licence.
  - `payment` object, required: How to pay: `{"method": "stripe_pm", "payment_method_id": "pm_…"}`, a Stripe payment method you have already saved.
    - `method` 'stripe_pm', required
    - `payment_method_id` string, required: A Stripe payment method ID (`pm_...`), already saved in Stripe.
  - `terms_accepted_at` string, date-time, required: ISO timestamp of the buyer's licence-terms acceptance ([opedd.com/terms](https://opedd.com/terms)). REQUIRED since 2026-07-24: purchases are rejected without a genuine acceptance timestamp; never fabricate server-side.

## Response `201`

License issued — key is ready to use

## Other responses

- `400`: A field is missing or invalid. A `license_type` other than `human` answers `LICENCE_NOT_SOLD_PER_ARTICLE`.
- `402`: Payment failed: the card was declined.
- `403`: Licensing is not enabled for this article, or the publisher can't sell yet
- `404`: Not found
- `422`: The publisher has no price for this licence
- `429`: Too many requests. Wait for the number of seconds in `Retry-After`, then retry.

---

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