Create disclosures

Appends the assembled document and the record ids it rests on.

POST /v1/patent/disclosures

Addresshttps://api.hanzo.ai/v1/patent/disclosures
MethodPOST
Operationpost_patent_disclosures
AuthAuthorization: Bearer $HANZO_API_KEY

Appends the assembled document and the record ids it rests on. The document is a rendering of what the log already holds, and its citations are what let a reader check it instead of taking it.

Request

32 fields, body application/json (required).

FieldInTypeRequiredDescription
disclosuresbodypatent.PatentDisclosure[]—Disclosures are the documents to append, at most 2000.
disclosures[].approvalsbodypatent.PatentApproval[]—Approvals is DERIVED on read: the current decision of record from each person who has ruled on this disclosure.
disclosures[].approvals[].authored_bybodystring—AuthoredBy is the validated principal who decided.
disclosures[].approvals[].canonicalbodyboolean—Canonical is DERIVED on read: this author's latest word on this disclosure.
disclosures[].approvals[].commentbodystring—Comment is the reviewer's note — the part an inventor reads.
disclosures[].approvals[].content_hashbodystring—ContentHash is the server's digest of the recorded content.
disclosures[].approvals[].decisionbodystring—Decision is approved, rejected or needs-work.
disclosures[].approvals[].disclosure_idbodystring—DisclosureID is the document this decides on.
disclosures[].approvals[].idbodystring—ID is the server's handle for this decision, derived from the disclosure and its author.
disclosures[].approvals[].projectbodystring—Project is the SERVER's scope value.
disclosures[].approvals[].recorded_atbodystring—RecordedAt is the server's clock.
disclosures[].approvals[].revisionbodystring—Revision is original, corrected or retracted.
disclosures[].approvals[].rolebodystring—Role is the capacity the person acted in: author, cto, reviewer, attorney or counsel.
disclosures[].approvals[].seqbodyinteger (int64)—Seq is the append order.
disclosures[].authored_bybodystring—AuthoredBy is the validated principal who recorded this version.
disclosures[].bodybodystring—Body is the document's text.
disclosures[].body_sha256bodystring—BodySHA256 is the SERVER's digest of body.
disclosures[].canonicalbodyboolean—Canonical is DERIVED on read.
disclosures[].claimsbodystring—Claims is the draft claim set, or a pointer to where it lives.
disclosures[].content_hashbodystring—ContentHash is the server's digest of the recorded content.
disclosures[].filing_refbodystring—FilingRef is a filing number a human recorded here after filing.
disclosures[].idbodystring—ID is the disclosure's stable id.
disclosures[].idea_idsbodystring[]—IdeaIDs are the conception entries this disclosure is built from.
disclosures[].implementation_idsbodystring[]—ImplementationIDs are the artifacts it describes.
disclosures[].projectbodystring—Project is the SERVER's scope value.
disclosures[].recorded_atbodystring—RecordedAt is the server's clock.
disclosures[].revisionbodystring—Revision is original, corrected or retracted.
disclosures[].seqbodyinteger (int64)—Seq is the append order.
disclosures[].statusbodystring—Status is draft, reviewed, approved or filed.
disclosures[].summarybodystring—Summary is the invention in one paragraph, for the reader who decides whether to read the rest.
disclosures[].titlebodystring—Title names the invention the way the document does.
disclosures[].visibilitybodystring—Visibility is private, org or public; forced private on a write.

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 disclosures create
import { Configuration, PatentApi } from 'hanzoai';

const api = new PatentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postPatentDisclosures({ disclosures: [{"approvals":[{"authored_by":null,"canonical":null,"comment":null,"content_hash":null}],"authored_by":"<authored_by>","body":"<body>","body_sha256":"<body_sha256>"}] });
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_disclosures(disclosures=[{"approvals":[{"authored_by":null,"canonical":null,"comment":null,"content_hash":null}],"authored_by":"<authored_by>","body":"<body>","body_sha256":"<body_sha256>"}])
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.PatentAPI.PostPatentDisclosures(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_disclosures(&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).postPatentDisclosures();

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/disclosures \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "disclosures": [
         {
           "approvals": [
             {
               "authored_by": null,
               "canonical": null,
               "comment": null,
               "content_hash": null
             }
           ],
           "authored_by": "<authored_by>",
           "body": "<body>",
           "body_sha256": "<body_sha256>"
         }
       ]
     }'

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.