Read a MarketplaceEntry
const url = 'https://example.com/apis/nodus.dev/v1/marketplaceentries/example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/apis/nodus.dev/v1/marketplaceentries/exampleParameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”The object’s name.
Responses
Section titled “ Responses ”OK
MarketplaceEntry is a private capacity request or supply submission. It never reserves or starts compute.
object
object
object
object
object
object
object
MarketplaceEntrySpec is a non-binding request or listing.
object
AuthorityConfirmed attests authority to offer capacity; required for supply.
Company is the display name; published only with the owner’s explicit consent and operator review.
ContactEmail is private to the owning organization and Nodus operators.
EndsAt is the exclusive end of that interval.
Hardware is a concrete model or CPU configuration.
Intent is Demand or Supply; immutable.
MemoryGiB is accelerator memory per unit, or system memory for CPU configurations; zero means unspecified on demand.
MinimumHours is the minimum billable duration per allocation, or a buyer’s shortest acceptable term.
Network describes interconnect and connectivity requirements.
Notes are private requirements and commercial context; never credentials.
Publish permits an operator to publish the reviewed supply fields. Never valid on demand.
Quantity counts complete units of the configuration described in Hardware.
RateUSDPerUnitHour is a buyer’s ceiling or a seller’s asking rate. Empty demand requests seek a quote and cannot authorize a contract; supplied rates are positive decimal strings.
Region is the required or offered geographic region.
MarketplaceSourcing describes GPU node and cluster requirements; omission preserves older requests.
object
Alternatives describes acceptable hardware substitutions or quantity flexibility (at most 1000 bytes).
ContactName is the private sourcing contact (at most 120 bytes).
ContactRole describes the contact’s responsibility in the purchase (at most 120 bytes).
CPU describes per-server CPU and system RAM requirements (at most 500 bytes).
DesiredHours is the preferred contract duration, distinct from minimumHours, and must fit the requested interval.
GPUsPerServer optionally specifies server layout. GPU quantities must divide into whole servers.
LegalName is the entity expected to sign the contract (at most 160 bytes).
ProcurementStage is Exploring, BudgetApproved or ReadyToSign, when known.
Registration is the registration number and jurisdiction, when known (at most 240 bytes).
Security describes residency, isolation, compliance and other non-negotiable requirements (at most 1000 bytes).
Software describes OS, orchestration, drivers and access requirements (at most 1000 bytes).
StartTiming is ASAP, SpecificDate or Flexible; omitted on older briefs.
Storage describes local/shared storage, capacity and throughput (at most 1000 bytes).
TimingFlexibility describes start-date tolerance, extensions and phased delivery (at most 500 bytes).
Topology is Servers (independent machines) or Cluster (connected machines).
Unit is GPU: quantity counts GPUs and the hourly budget is per GPU.
Website is the claimed company website, an HTTPS origin without a path, credentials or query.
Workload describes the model, task, scale and performance target (at most 2000 bytes).
StartsAt is the beginning of the requested or available UTC interval.
State is Open or Withdrawn. Withdrawal immediately removes catalog visibility.
Title describes the request or offered configuration.
MarketplaceEntryStatus records operator-reviewed details without exposing operator identity.
object
MarketplaceBuyerVerification separates mailbox proof, human checks and advisory research. Only the server writes these fields; identity changes invalidate their fingerprint.
object
MarketplaceBuyerCheck records an operator’s independently corroborated evidence; the audit records the actor.
object
CheckedAt starts the thirty-day lifetime of this check.
Evidence identifies the independent source and corroboration.
MarketplaceBuyerCheck records an operator’s independently corroborated evidence; the audit records the actor.
object
CheckedAt starts the thirty-day lifetime of this check.
Evidence identifies the independent source and corroboration.
EmailVerifiedAt records single-use confirmation of the submitted mailbox.
Fingerprint binds proof to the current identity claims.
Generation is the request generation observed by the server.
MarketplaceBuyerResearch is an advisory report for one request generation, never proof of identity or authority.
object
CompletedAt records when bounded research finished.
Findings contain qualified observations with source numbers.
Generation is the request generation observed by the server.
Questions identify gaps for independent follow-up.
Sources list fetched publisher claims, not registry verification.
MarketplaceBuyerSource identifies retrieved public evidence; Website content remains a publisher’s claim.
object
Kind identifies the evidence class; company pages are CompanyWebsiteClaim.
RetrievedAt records the source retrieval time.
URL is the fetched public HTTPS page after safe redirects.
StartedAt records the durable research claim.
State describes research execution, not buyer trustworthiness.
Summary contains an advisory synthesis or manual-review guidance.
ResearchAttempts bounds automatic analysis for this request identity.
CostAllowanceUSDPerUnitHour covers estimated variable costs beyond the asking rate.
CustomerRateUSDPerUnitHour is an indicative reviewed customer rate, not a confirmed order.
MarketplaceIntake is an operator-recorded update for the owning buyer.
object
Generation identifies the requirements this update describes; edits return the request to Received.
Message is a customer-visible update of at most 1000 bytes.
Outcome is Won or Lost when Closed, and empty otherwise. It does not record payment or provision capacity.
Stage is Received, Sourcing, OfferSent or Closed.
UpdatedAt is when Nodus last updated the sourcing progress.
LastReservation is the last confirmed proposal, serializing capacity claims.
Message is an operator-written update visible to the owner.
NotifiedGeneration is the latest request generation durably queued for the Nodus inbox.
ObservedGeneration is the exact spec generation reviewed. Any later edit needs another review.
Review is the operator’s decision.
ReviewedAt is the last review time.
ValidUntil expires a published listing even when its available interval is longer.
Example generated
{ "apiVersion": "example", "kind": "example", "metadata": { "annotations": { "additionalProperty": "example" }, "creationTimestamp": "example", "deletionGracePeriodSeconds": 1, "deletionTimestamp": "example", "finalizers": [ "example" ], "generateName": "example", "generation": 1, "labels": { "additionalProperty": "example" }, "managedFields": [ { "apiVersion": "example", "fieldsType": "example", "fieldsV1": { "additionalProperty": "example" }, "manager": "example", "operation": "example", "subresource": "example", "time": "example" } ], "name": "example", "namespace": "example", "ownerReferences": [ { "apiVersion": "example", "blockOwnerDeletion": true, "controller": true, "kind": "example", "name": "example", "uid": "example" } ], "resourceVersion": "example", "selfLink": "example", "uid": "example" }, "spec": { "authorityConfirmed": true, "company": "example", "contactEmail": "example", "endsAt": "example", "hardware": "example", "intent": "example", "memoryGiB": 1, "minimumHours": 1, "network": "example", "notes": "example", "publish": true, "quantity": 1, "rateUSDPerUnitHour": "example", "region": "example", "sourcing": { "alternatives": "example", "contactName": "example", "contactRole": "example", "cpu": "example", "desiredHours": 1, "gpusPerServer": 1, "legalName": "example", "procurementStage": "example", "registration": "example", "security": "example", "software": "example", "startTiming": "example", "storage": "example", "timingFlexibility": "example", "topology": "example", "unit": "example", "website": "example", "workload": "example" }, "startsAt": "example", "state": "example", "title": "example" }, "status": { "buyer": { "authority": { "checkedAt": "example", "evidence": "example" }, "company": { "checkedAt": "example", "evidence": "example" }, "emailVerifiedAt": "example", "fingerprint": "example", "generation": 1, "research": { "completedAt": "example", "findings": [ "example" ], "generation": 1, "questions": [ "example" ], "sources": [ { "kind": "example", "retrievedAt": "example", "url": "example" } ], "startedAt": "example", "state": "example", "summary": "example" }, "researchAttempts": 1 }, "costAllowanceUSDPerUnitHour": "example", "customerRateUSDPerUnitHour": "example", "intake": { "generation": 1, "message": "example", "outcome": "example", "stage": "example", "updatedAt": "example" }, "lastReservation": "example", "message": "example", "notifiedGeneration": 1, "observedGeneration": 1, "review": "example", "reviewedAt": "example", "validUntil": "example" }}default
Section titled “ default ”An error: a metav1.Status whose reason is a registered code.
Status is the error body of every API response: a Kubernetes metav1.Status (so kubectl and client-go understand it) plus three top-level extensions that those clients ignore (ADR-028).
object
object
object
Docs is the URL of the code’s docs page.
Fix says what to do next, for example a CLI command or the field to change.
object
object
RequestID identifies the request in logs and support tickets.
Example generated
{ "apiVersion": "example", "code": 1, "details": { "causes": [ { "field": "example", "message": "example", "reason": "example" } ], "group": "example", "kind": "example", "name": "example", "retryAfterSeconds": 1, "uid": "example" }, "docs": "example", "fix": "example", "kind": "example", "message": "example", "metadata": { "continue": "example", "remainingItemCount": 1, "resourceVersion": "example", "selfLink": "example", "shardInfo": { "selector": "example" } }, "reason": "example", "requestId": "example", "status": "example"}