Create approvals

Appends one person's decision about one disclosure.

POST /v1/patent/approvals

Addresshttps://api.hanzo.ai/v1/patent/approvals
MethodPOST
Operationpost_patent_approvals
AuthAuthorization: Bearer $HANZO_API_KEY

Appends one person's decision about one disclosure. The approver is the validated principal and nothing else, so no caller records a sign-off on someone else's behalf — which is the only way this field would be worth reading.

Request

13 fields, body application/json (required).

FieldInTypeRequiredDescription
approvalsbodypatent.PatentApproval[]—Approvals are the decisions to append, at most 2000.
approvals[].authored_bybodystring—AuthoredBy is the validated principal who decided.
approvals[].canonicalbodyboolean—Canonical is DERIVED on read: this author's latest word on this disclosure.
approvals[].commentbodystring—Comment is the reviewer's note — the part an inventor reads.
approvals[].content_hashbodystring—ContentHash is the server's digest of the recorded content.
approvals[].decisionbodystring—Decision is approved, rejected or needs-work.
approvals[].disclosure_idbodystring—DisclosureID is the document this decides on.
approvals[].idbodystring—ID is the server's handle for this decision, derived from the disclosure and its author.
approvals[].projectbodystring—Project is the SERVER's scope value.
approvals[].recorded_atbodystring—RecordedAt is the server's clock.
approvals[].revisionbodystring—Revision is original, corrected or retracted.
approvals[].rolebodystring—Role is the capacity the person acted in: author, cto, reviewer, attorney or counsel.
approvals[].seqbodyinteger (int64)—Seq is the append order.

Response

StatusBodyMeaning
200patent.patentWriteOutok
defaultproblem-detailsrefused

200 body — 3 fields.

FieldInTypeAlwaysDescription
canonicalbodyinteger (int64)—Canonical is how many entries the org's log now holds for this kind.
projectbodystring—Project is the scope the batch was filed under, as the server decided it.
recordedbodyinteger (int64)—Recorded is how many new versions this call appended.

Failure carries the platform error shape — see Errors.

Examples

hanzo patent approvals create
import { Configuration, PatentApi } from 'hanzoai';

const api = new PatentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postPatentApprovals({ approvals: [{"authored_by":"<authored_by>","canonical":false,"comment":"<comment>","content_hash":"<content_hash>"}] });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import PatentApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = PatentApi(client).post_patent_approvals(approvals=[{"authored_by":"<authored_by>","canonical":false,"comment":"<comment>","content_hash":"<content_hash>"}])
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.PatentAPI.PostPatentApprovals(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, patent_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = patent_api::post_patent_approvals(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.PatentApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new PatentApi(client).postPatentApprovals();

The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →

curl -X POST https://api.hanzo.ai/v1/patent/approvals \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "approvals": [
         {
           "authored_by": "<authored_by>",
           "canonical": false,
           "comment": "<comment>",
           "content_hash": "<content_hash>"
         }
       ]
     }'

MCP reaches patent through the patent tool, which names its 12 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_patent_approvals"
         }
       }
     }'

Patent API · All Hanzo APIs · Interactive reference

Was this page useful?
Broken link or missing step? Drop it in #docs on Discord or open a PR.