{
  "service": "coinbase",
  "displayName": "Coinbase",
  "categories": [
    "Finance"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Private Key",
      "placeholder": "-----BEGIN EC PRIVATE KEY-----",
      "description": "Coinbase CDP API private key in PEM format. Create a Secret API Key at https://portal.cdp.coinbase.com/projects/api-keys, choose ECDSA as the signature algorithm, and copy the private key exactly as shown in the creation modal.",
      "extraFields": [
        {
          "key": "keyName",
          "label": "API Key Name",
          "inputType": "text",
          "required": true,
          "secret": false,
          "placeholder": "organizations/{org_id}/apiKeys/{key_id}",
          "description": "Coinbase API key name used as the JWT kid and sub. Copy it from the same Secret API Key modal or the API Keys dashboard: https://portal.cdp.coinbase.com/projects/api-keys."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.coinbase.com",
  "actions": [
    {
      "id": "coinbase.get_account",
      "service": "coinbase",
      "name": "get_account",
      "description": "Get one Coinbase Advanced Trade brokerage account by UUID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "account_uuid": {
            "type": "string",
            "minLength": 1,
            "description": "Brokerage account UUID returned by Coinbase."
          }
        },
        "additionalProperties": false,
        "required": [
          "account_uuid"
        ],
        "description": "Input parameters for retrieving one Coinbase brokerage account."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "account": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The brokerage account returned by Coinbase."
          }
        },
        "additionalProperties": false,
        "description": "Single brokerage account payload returned by Coinbase."
      }
    },
    {
      "id": "coinbase.list_accounts",
      "service": "coinbase",
      "name": "list_accounts",
      "description": "List Coinbase Advanced Trade brokerage accounts that the connected API key can access.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "Maximum number of accounts to return per page."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "Pagination cursor returned by Coinbase from a previous page."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Coinbase brokerage accounts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "accounts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One brokerage account returned by Coinbase."
            },
            "description": "Ordered brokerage accounts returned by Coinbase."
          },
          "has_next": {
            "type": "boolean",
            "description": "Whether more accounts are available after this page."
          },
          "cursor": {
            "type": "string",
            "description": "Cursor returned by Coinbase for the next page, when present."
          },
          "size": {
            "type": "integer",
            "description": "Number of accounts returned in this page."
          }
        },
        "additionalProperties": false,
        "description": "Brokerage account list returned by Coinbase."
      }
    }
  ]
}
