---
title: "Acquire Capability"
method: POST
path: "/api/marketplace/capabilities/{object_id}/acquire"
tags: ["marketplace"]
---

# Acquire Capability

`POST /api/marketplace/capabilities/{object_id}/acquire`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/marketplace/capabilities/{object_id}/acquire`
- Auth: none declared

Acquire one visible capability through its registered type executor.

The body is OPTIONAL and generic (TOS-4215): it carries the caller's
answers to whatever ``inputs`` this object's acquire plan declared, keyed
by input name. Nothing in this endpoint knows what any of those names mean
:func:`validate_acquire_inputs` checks them against the plan's own
declaration, and the resolver reads them. A type declaring no inputs is
unaffected and a bodiless POST remains valid for it.

Why this stopped being a 204. The caller needs to be told WHICH thing they
now hold and whether it actually works yet. A connection account exists the
moment it is created and carries no credential, and reporting that as
connected is the defect this ticket was opened over: the production Sentry
detail page read "Connected", over an identity with zero connected
accounts, because nothing on the wire could say otherwise.

## Path parameters

- `object_id` string, uuid, required

## Headers

- `x-impersonate-identity-id` string, nullable

## Request body

- MarketplaceAcquireIn: The caller's answers to ``MarketplaceAcquireOut.inputs``. Wholly optional: a POST with no body at all is still valid, and is the only valid shape for a type that declares no inputs.
  - `inputs` object

## Response `200`

Successful Response

- MarketplaceAcquiredOut: What one acquisition produced. ``state`` is deliberately not a synonym for held. An account exists and is the caller's the moment it is created, and still has no credential, so ``needs_connection`` is the honest answer until one arrives. The shell navigates to ``held_object_id`` and says exactly that rather than "Connected".
  - `family` string, required
  - `held_object_id` string, uuid, required
  - `state` string

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thinqos/apis/thinqos-api.md) · [All operations](https://skmtc.dev/thinqos/apis/thinqos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinqos/apis/thinqos-api/revisions/5387b4ded614?raw)
