Connect a marketplace or replace its API key
const url = 'https://api.flotera.com/api/v1/marketplaces/vast';const options = { method: 'PUT', headers: { cookie: '__Host-erm_session=<__Host-erm_session>', 'Content-Type': 'application/json' }, body: '{"api_key":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.flotera.com/api/v1/marketplaces/vast \ --header 'Content-Type: application/json' \ --cookie __Host-erm_session=<__Host-erm_session> \ --data '{ "api_key": "example" }'The key is verified against the marketplace before it is stored: a key that the marketplace rejects is never written, so a connected account always means a key that worked at least once.
Re-sending this for an already connected marketplace replaces the key and clears any previous failure — reissuing a revoked key is ordinary, and it must not require disconnecting first, which would drop the server links by cascade.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Supported marketplace. The database constrains the same two values, so a third one is a migration rather than a new string.
Marketplace identifier. Closed set: adding one is a migration, not a new string, because the database constrains the same two values.
Header Parameters
Section titled “Header Parameters”Idempotency key, 1–128 ASCII, unique per (tenant_id, operation, key) for at least 24 hours. Retrying with the same body replays the stored response; a different body returns 409 idempotency_conflict.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Marketplace API key. Verified against the marketplace before it is stored, and stored only encrypted. Never returned by any endpoint.
Examplegenerated
{ "api_key": "example"}Responses
Section titled “Responses”Marketplace connected.
object
Supported marketplace. The database constrains the same two values, so a third one is a migration rather than a new string.
invalid_key is set only when the marketplace rejected the key. A network failure, a 5xx or a missing permission group leave the status alone — otherwise the customer would be told to reconnect a marketplace that is working.
How the marketplace identifies the account owner.
Hash of the stored key. Lets the panel tell “the same key” from “a new key” without ever holding the value. The key itself is never returned by any endpoint, in any form.
RFC 3339 UTC with microsecond precision, or null.
Why the last sync failed. Survives until the next success, because it is the only explanation the customer gets for a stalled sync.
RFC 3339 UTC with microsecond precision, or null.
CLORE held in Proof of Holding by this account. The holding cuts the marketplace’s base share in steps, so what a MACHINE is charged depends on this fact about the ACCOUNT. Null means UNREAD, not zero. Zero is a measured “nothing held”, and the full share follows from it; null leaves open that the share is half of what is shown. A reader that treats them alike quotes the owner someone else’s price for their own machine. Only one number leaves the account snapshot, never the snapshot itself — the owner’s wallets live there too. Always null on Vast, which has no such mechanism.
Example
{ "marketplace": "vast", "status": "connected"}Missing/invalid credentials (code=unauthorized).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}Authenticated but not permitted. code=forbidden — role/scope mismatch; code=feature_not_entitled — the plan does not include the capability; code=account_frozen — the account is frozen and this operation is declared x-ermeon-frozen: deny. The three are deliberately distinct: only the last one is fixed by a top-up (13 §5.6).
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}The marketplace rejected this key. The key is not stored — a connected account always means a key that worked at least once.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}The marketplace could not be reached to verify the key, or the integration is not configured. Retriable; the key is not stored. Deliberately not reported as a rejected key: the key may be perfectly good.
RFC 9457 problem document with a stable machine code.
object
Stable machine-readable error code (03 §2.4).
UUID (v7 for new entities; v4 accepted during migration).
object
JSON Pointer to the offending field.
Example
{ "type": "https://ermeon.com/problems/validation", "code": "unauthorized"}