# List a connector's tools

Returns every tool the connector exposes with its resolved policy effect and the rule that decided it, so a caller knows the answer before it calls.

GET`/v1/connectors/{connectorRef}/tools`

## Authorization

`Authorization`Bearer token · headerrequired

\`Authorization: Bearer <token>\` with an API key (\`sfa\_\` prefix), an OAuth access token, a session token, or a Space machine credential (\`sfm\_\` prefix).

or

`Authorization`OAuth2 access token · headerrequired

OAuth 2.0 with Spacefast scopes. People use the authorization code flow; machines use client credentials.

**Scopes:**\`connectors:read\`

## Path parameters

`connectorRef`stringrequired

min length 1

## Query parameters

`limit`integerrequired

min 1 · max 100 · default: 20

`cursor`string

min length 1 · max length 4096

`query`string

min length 1 · max length 200

`effect`string

Allowed:\`approve\`\`require_approval\`\`block\`

`team`string

min length 1 · max length 255

## Responses

### 200Response for status 200

`$schema`string<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the \`Link: rel="describedby"\` response header.

`data`object\[\]required

Show propertiesHide properties

Array of \`object\`

- `address`stringrequired

\`<connectionId>/<tool>\` — the one address grammar. Pass this straight to a connector run.

- `name`stringrequired

Tool name within its connector.

- `summary`stringrequired

One line on what the tool does, from the source spec.

- `safety`stringrequired

What the tool does to the far side, read from the source spec. Not configurable.

Allowed:\`read_only\`\`write\`\`destructive\`

- `effect`stringrequired

What actually happens when an agent calls this, after policy resolution.

Allowed:\`approve\`\`require_approval\`\`block\`

- `decidedBy`object | anyrequired

The rule behind \`effect\`; null when nothing matched and the spec's own default applied.

Show propertiesHide properties

Any of:

object

- `ruleId`stringrequired

Policy rule that decided it.

- `pattern`stringrequired

The pattern that matched.

- `owner`stringrequired

Whose rule it is. Team rules are a floor members cannot loosen.

Allowed:\`team\`\`personal\`

any

`inputSchema`objectrequired

JSON Schema for the tool's arguments.

`pagination`objectrequired

Show propertiesHide properties

- `nextCursor`string | anyrequired

Opaque cursor for the next page; null when there are no more results.

Show propertiesHide properties

Any of:

string

- `hasMore`booleanrequired

Whether another page exists after this one.

defaultProblem details (RFC 9457). Any 4xx/5xx response is one \`application/problem+json\` document.

**$schema**string<uri>

Canonical JSON Schema URL for this response body. The server also sends it in the \`Link: rel="describedby"\` response header.

- `type`stringrequired

URL of the documentation page for this error. Derived from \`code\`.

- `title`stringrequired

Human-readable name of the error type. Derived from \`code\`.

- `status`integerrequired

HTTP status of the response, repeated in the body.

min -9007199254740991 · max 9007199254740991

- `detail`stringrequired

What went wrong in this request.

- `code`stringrequired

Stable snake\_case error code. Match on this, not on \`detail\`.

- `pointer`string

RFC 6901 JSON Pointer to the request field or batch entry that failed, for example \`/files/37/path\`. Present on validation failures.

- `details`object

Machine-readable context keyed by the error code.

- `suggestions`string\[\]

Recovery steps safe to show to a person.

- `next`string\[\]

Commands or API requests to run next, usable as written.

- `requestId`stringrequired

ID of this request, from the \`X-Request-Id\` header or generated. Quote it when contacting support.

## Try it

### Server

Base URLhttps://api.spacefast.comCustom base URLOverrides the selected server when set.

## Authorization

Bearer tokenRemember on this deviceInclude my values in samples

### Parameters

`connectorRef`path\*`limit`query\*`cursor`query`query`query`effect`query—approverequire\_approvalblock`team`query

### Send

## Request

### cURL

```bash
curl -X GET "https://api.spacefast.com/v1/connectors/string/tools?limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

### JavaScript

```javascript
const response = await fetch("https://api.spacefast.com/v1/connectors/string/tools?limit=20", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN"
  }
});
```

### Python

```python
import requests

response = requests.get(
    "https://api.spacefast.com/v1/connectors/string/tools?limit=20",
    headers={
        "Authorization": "Bearer YOUR_TOKEN"
    },
)
```

## Response

### 200default

```json
{
  "$schema": "http://example.com",
  "data": [
    {
      "address": "string",
      "name": "string",
      "summary": "string",
      "safety": "read_only",
      "effect": "approve",
      "decidedBy": {
        "ruleId": "string",
        "pattern": "string",
        "owner": "team"
      },
      "inputSchema": {
        "property1": null,
        "property2": null
      }
    }
  ],
  "pagination": {
    "nextCursor": "string",
    "hasMore": true
  }
}
```

```json
{
  "$schema": "http://example.com",
  "type": "string",
  "title": "string",
  "status": -9007199254740991,
  "detail": "string",
  "code": "string",
  "pointer": "string",
  "details": {
    "property1": null,
    "property2": null
  },
  "suggestions": [
    "string"
  ],
  "next": [
    "string"
  ],
  "requestId": "string"
}
```
