Skip to content

Get a product certificate

GET
/mc4p/products/{product_id}/certificate
curl --request GET \
--url https://api.mintall.ai/api/v1/mc4p/products/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/certificate

Get the Mintall Certificate for Product (MC4P) data at the product level.

An active product (visible_at set) returns the full document. A product that exists but is not active returns the identity-only document: the mintall:images, mintall:trust, verification and proof blocks are omitted, not null.

product_id
required
Product Id
string format: uuid

Successful Response

Media typeapplication/json
ProductCertificateResponse

Top-level product MC4P certificate in inline shape (JSON-LD style).

Attaches to the platform’s own Product node by productID + url rather than restating commercial facts — it deliberately omits name and description. The trust/verification/proof blocks appear only for an active product; a not-active product yields the identity-only shape.

object
@context
@Context
Array
default: https://schema.org,[object Object]
@type
@Type
string
default: Product
productID
Any of:
string
url
Any of:
string
mintall:issuedFor
required
IssuedFor

Binds the document to the platform’s own Product node.

object
domain
Any of:
string
productID
Any of:
string
mintall:record
Any of:
ProductRecord

The provenance record an AI agent reads for this product.

Factual and seller-scoped: which domain published a signed, timestamped provenance record for this product, and when. This is deliberately NOT an “authorized seller” or authenticity claim — a self-issued authorization is circular (the issuer vouching for the seller) and agents discount it. The verification.summary states the scope; the proof block lets an agent check the signature independently.

object
statement
required
Statement
string
attests
Any of:
Array<string>
domain
Any of:
string
productID
Any of:
string
firstRecorded
Any of:
string
recordUrl
Any of:
string
recordUrlMethod
Recordurlmethod
string
default: GET
documentUrl
Any of:
string
mintall:status
required
MintallStatus

The canonical-source pointer for the document.

Visibility state (requested/active) is recorded on mc4p_access_events, not here: it is internal plan state with no agent-actionable affordance on the public cert. No snapshotAt either — the storefront app stamps that at write time; the live endpoint omits it.

object
canonicalSource
required
EntryPoint

Schema.org/EntryPoint

object
@type
@Type
string
default: EntryPoint
description
Description
string
default: Canonical source for this certificate.
url
required
Url
string
httpMethod
Httpmethod
string
default: GET
mintall:images
Any of:
Array<object>
ImageSummary
object
@type
@Type
string
default: ImageObject
contentUrl
Any of:
string
assetId
required
Assetid
string
certification
Any of:
ImageCertificationSummary
object
@type
@Type
string
default: ImageObject
certificationId
required
Certificationid
string
hasC2PA
required
Hasc2Pa
boolean
minted
required
Minted
boolean
certificateUrl
required
Certificateurl
string
mintall:trust
Any of:
TrustResponse

Verifiable coverage counts only.

No self-scored aggregate: a score the issuer computes about itself is not independently checkable, so the block carries only the counts that the signed JWT also carries and that a verifier can re-check.

object
certifiedAssets
required
Certifiedassets
integer
totalAssets
required
Totalassets
integer
coveragePercent
required
Coveragepercent
integer
additionalProperty
Any of:
Array<object>
AdditionalProperty
object
@type
@Type
string
default: PropertyValue
name
required
Name
string
value
required
Any of:
integer
verification
Any of:
Verification
object
canonicalUrl
required
Canonicalurl
string
canonicalSource
required
EntryPoint

Schema.org/EntryPoint

object
@type
@Type
string
default: EntryPoint
description
Description
string
default: Canonical source for this certificate.
url
required
Url
string
httpMethod
Httpmethod
string
default: GET
verifyEndpoint
required
WebAPI

Schema.org/WebAPI

object
@type
@Type
string
default: WebAPI
name
Name
string
default: Certificate Verification API
description
Description
string
default: Verify certificate authenticity and authorization.
url
required
Url
string
httpMethod
Httpmethod
string
default: POST
endpointBody
Any of:
object
key
additional properties
any
instructions
Any of:
string
mcp
Any of:
McpVerification
object
serverUrl
required
Serverurl
string
tool
Tool
string
default: verify_mintall_certificate
arguments
Arguments
object
key
additional properties
string
confirms
Any of:
Array<string>
hasSignature
required
Hassignature
boolean
individualCertificates
Any of:
Array<string>
summary
Any of:
string
trustAnchor
Any of:
TrustAnchor
object
type
required
Type
string
status
required
Status
string
trustedDomains
required
Trusteddomains
Array<string>
proof
Any of:
Proof
object
type
required
Type
string
jwt
required
Jwt
string
verificationMethod
required
Verificationmethod
string
proofPurpose
required
Proofpurpose
string
algorithm
required
Algorithm
string
Example
{
"@context": [
"https://schema.org",
{
"mintall": "https://mintall.ai/ns/"
}
],
"@type": "Product",
"mintall:record": {
"recordUrlMethod": "GET"
},
"mintall:status": {
"canonicalSource": {
"@type": "EntryPoint",
"description": "Canonical source for this certificate.",
"httpMethod": "GET"
}
},
"mintall:images": [
{
"@type": "ImageObject",
"certification": {
"@type": "ImageObject"
}
}
],
"additionalProperty": [
{
"@type": "PropertyValue"
}
],
"verification": {
"canonicalSource": {
"@type": "EntryPoint",
"description": "Canonical source for this certificate.",
"httpMethod": "GET"
},
"verifyEndpoint": {
"@type": "WebAPI",
"name": "Certificate Verification API",
"description": "Verify certificate authenticity and authorization.",
"httpMethod": "POST"
},
"mcp": {
"tool": "verify_mintall_certificate"
}
}
}

Product not found or disabled.

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}