# Retrieve a capability

Retrieve a specific capability that an account has requested. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.

To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
you'll need to specify the `/accounts/{accountID}/capabilities.read` scope.

## GET

/accounts/{accountID}/capabilities/{capabilityID}

### Ask

```shell
curl -X GET "https://api.moov.io/accounts/{accountID}/capabilities/{capabilityID}" \
  -H "Authorization: Bearer {token}" \
  -H "X-Moov-Version: v2026.07.00"
```

### Ask

```go
mc, _ := moov.NewClient()

var accountID string
var capabilityID = moov.CapabilityName_Transfers

mc.GetCapability(ctx, accountID, capabilityID)
```

### Ask

```typescript
import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.capabilities.get({
    accountID: "c1697ea6-c984-4ba1-9b81-93e5e18660af",
    capabilityID: "send-funds",
  });

console.log(result);
}

run();
```

### Ask

```php
declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;

$sdk = MoovPhp\Moov::builder()
    ->setSecurity(
        new Components\Security(
            username: '',
            password: '',
        )
    )
    ->build();

$response = $sdk->capabilities->get(
    accountID: 'c1697ea6-c984-4ba1-9b81-93e5e18660af',
    capabilityID: Components\CapabilityID::SendFunds
);

if ($response->capability !== null) {
    // handle response
}
```

### Ask

```java
package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.CapabilityID;
import io.moov.sdk.models.components.Security;
import io.moov.sdk.models.operations.GetCapabilityResponse;
import java.lang.Exception;

public class Application {

public static void main(String[] args) throws Exception {

Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

GetCapabilityResponse res = sdk.capabilities().get()
                .accountID("c1697ea6-c984-4ba1-9b81-93e5e18660af")
                .capabilityID(CapabilityID.SEND_FUNDS)
                .call();

if (res.capability().isPresent()) {
            System.out.println(res.capability().get());
        }
    }
}
```

### Ask

```python
from moovio_sdk import Moov
from moovio_sdk.models import components

with Moov(
    security=components.Security(
        username="",
        password="",
    ),
) as moov:

res = moov.capabilities.get(account_id="c1697ea6-c984-4ba1-9b81-93e5e18660af", capability_id=components.CapabilityID.SEND_FUNDS)

# Handle response
    print(res)
```

### Ask

```ruby
require 'moov_ruby'

Models = ::Moov::Models
s = ::Moov::Client.new(
  security: Models::Components::Security.new(
    username: '',
    password: ''
  )
)
res = s.capabilities.get(account_id: 'c1697ea6-c984-4ba1-9b81-93e5e18660af', capability_id: Models::Components::CapabilityID::SEND_FUNDS_ACH)

unless res.capability.nil?
  # handle response
end
```

### Ask

```csharp
using Moov.Sdk;
using Moov.Sdk.Models.Components;

var sdk = new MoovClient(security: new Security() {
    Username = "",
    Password = "",
});

var res = await sdk.Capabilities.GetAsync(
    accountID: "c1697ea6-c984-4ba1-9b81-93e5e18660af",
    capabilityID: CapabilityID.SendFundsRtp
);

// handle response
```

## Response Example

```json
{
  "capability": "transfers",
  "accountID": "string",
  "status": "enabled",
  "requirements": {
    "currentlyDue": [
      "account.tos-acceptance"
    ],
    "errors": [
      {
        "requirement": "account.tos-acceptance",
        "errorCode": "invalid-value"
      }
    ]
  },
  "disabledReason": "string",
  "createdOn": "2019-08-24T14:15:22Z",
  "updatedOn": "2019-08-24T14:15:22Z",
  "disabledOn": "2019-08-24T14:15:22Z"
}
```

## API Versioning
Set this header to v2026.07.00 to use the API described in this specification. When omitted, the server defaults to v2024.01.00, which may not match the behavior documented here.
