Validate one capability
Status: Foundation
Use demand-level SpecMatch when your application already has one explicit producer capability target and wants the explainable fit for that relationship.
validated canonical GJS
+ explicit producer capability target
-> POST /v1/matches
-> explainable fit, blockers, warnings and confidence
This operation is different from producer-universe matching. /v1/matches/universe evaluates and ranks the authorised universe. /v1/matches evaluates the one target you name.
Read the safe capability projection
If you carried PROFILE_ID forward from Find capable production, you can read the safe public capability resource:
curl "https://api.gnaww.io/v1/producer-capabilities/${PROFILE_ID}" \
--header "X-Gnaww-API-Key: ${GNAWW_API_KEY}" \
--dump-header capability-headers.txt \
--output capability.json
This is a safe capability read. It does not expose private producer lifecycle, tenancy, raw import or administration state.
Match the retained demand against that target
Build the request from the retained GJS and the target evidence returned by Gnaww:
jq -n \
--slurpfile specification specification.json \
--arg profile_id "${PROFILE_ID}" \
--arg source "${TARGET_SOURCE}" \
'{
gjs: $specification[0].gjs,
target: {
source: $source,
producer_profile_id: $profile_id
}
}' > specific-match-request.json
Run SpecMatch:
curl https://api.gnaww.io/v1/matches \
--request POST \
--header "X-Gnaww-API-Key: ${GNAWW_API_KEY}" \
--header "Content-Type: application/json" \
--dump-header specific-match-headers.txt \
--output specific-match.json \
--data @specific-match-request.json
Inspect the explainable result:
jq '{
status,
demand_basis,
recipe,
readiness,
target,
match,
next_actions,
producer_selection_performed,
live_pricing_performed,
availability_checked,
producer_acceptance_performed,
order_created
}' specific-match.json
What the result means
The result answers whether the controlled demand and the controlled producer capability fit, including the reasons, blockers, warnings and confidence represented by the current SpecMatch contract.
It does not reinterpret the GJS. It does not change the producer capability merely to create a match.
Keep these separate in your application:
capability match != current price
capability match != current availability
capability match != producer acceptance
capability match != an order
A technically capable route may still fail a later live transaction check. Conversely, a provider timeout later does not retroactively make the capability relationship false.
Trace the operation
Retain X-Request-Id and X-Correlation-Id from specific-match-headers.txt for troubleshooting. The generated API reference remains the field-level schema authority.
Next
The public developer contract currently stops before transaction orchestration. Read Send an approved job towards production to understand that planned boundary without inventing an order API.