Create implementations

Appends the machine's half of the record, and the idea citation is the load-bearing field: it is what lets a reader see that the conception came first.

POST /v1/patent/implementations

Addresshttps://api.hanzo.ai/v1/patent/implementations
MethodPOST
Operationpost_patent_implementations
AuthAuthorization: Bearer $HANZO_API_KEY

Appends the machine's half of the record, and the idea citation is the load-bearing field: it is what lets a reader see that the conception came first. An entry citing no idea is refused rather than filed.

Request

21 fields, body application/json (required).

FieldInTypeRequiredDescription
implementationsbodypatent.PatentImplementation[]—Implementations are the records to append, at most 2000.
implementations[].artifact_sha256bodystring—ArtifactSHA256 is the digest of the recorded artifact — a diff, a file, a build — when the caller has one and wants it addressed by content.
implementations[].authored_bybodystring—AuthoredBy is the validated principal who recorded this.
implementations[].canonicalbodyboolean—Canonical is DERIVED on read.
implementations[].content_hashbodystring—ContentHash is the server's digest of the recorded content.
implementations[].generatedbodyboolean—Generated says the recorded artifact was produced with a model's assistance rather than typed by hand.
implementations[].git_branchbodystring—GitBranch is the branch that commit was on.
implementations[].git_dirtybodyboolean—GitDirty says the working tree carried uncommitted changes when this was recorded.
implementations[].git_shabodystring—GitSHA is the commit.
implementations[].human_reviewbodystring—HumanReview is what a person did with the output: accepted, edited, rewritten, or none.
implementations[].idbodystring—ID is this implementation's stable id — usually the artifact or change it records, e.g. router-v2-generated.
implementations[].idea_idsbodystring[]—IdeaIDs names the conceptions this implements.
implementations[].modelbodystring—Model names the system that produced the code, as it was addressed.
implementations[].notesbodystring—Notes is anything a later reader needs.
implementations[].projectbodystring—Project is the SERVER's scope value.
implementations[].prompt_sha256bodystring—PromptSHA256 is the digest of the prompt, not the prompt.
implementations[].recorded_atbodystring—RecordedAt is the server's clock.
implementations[].repobodystring—Repo is the repository the work landed in.
implementations[].revisionbodystring—Revision is original, corrected or retracted.
implementations[].seqbodyinteger (int64)—Seq is the append order, which is what GET /v1/patent/proof compares against the cited ideas.
implementations[].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 implementations create
import { Configuration, PatentApi } from 'hanzoai';

const api = new PatentApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postPatentImplementations({ implementations: [{"artifact_sha256":"<artifact_sha256>","authored_by":"<authored_by>","canonical":false,"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_implementations(implementations=[{"artifact_sha256":"<artifact_sha256>","authored_by":"<authored_by>","canonical":false,"content_hash":"<content_hash>"}])
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.PatentAPI.PostPatentImplementations(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_implementations(&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).postPatentImplementations();

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/implementations \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "implementations": [
         {
           "artifact_sha256": "<artifact_sha256>",
           "authored_by": "<authored_by>",
           "canonical": false,
           "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.