# Get an operation

> One operation's full reference: method and path, params, response shape, an example, and the env vars a credential injects.

Source: https://docs.generalinput.com/api/integrations/get-operation



<Endpoint method="GET" path="/v1/integrations/:service/operations/:opId" />

<Access scope="docs:read" />

The reference an agent reads before writing a call. The `documentation` field is markdown; render it or hand it to a model as-is.

## Path parameters [#path-parameters]

| Name      | Notes                                                                                 |
| --------- | ------------------------------------------------------------------------------------- |
| `service` | The integration slug. Must match the operation's service, or the route answers `404`. |
| `opId`    | The operation id from [list operations](/api/integrations/list-operations).           |

## Response [#response]

```json
{
  "id": "4c21e1ee-4d54-4413-a4f2-80a80dff4c99",
  "service": "slack",
  "title": "Send a Message",
  "description": "Sends a message to a channel, DM, or group conversation.",
  "documentation": "## Send a Message\n\n`POST https://slack.com/api/chat.postMessage`\n\n…"
}
```

The documentation covers, in order: the HTTP method and URL, required OAuth scopes, request params, the response shape, a `curl` example that reads the token from the injected env var, and a **Credential Info** section naming the service identifier and the runtime fields (`accessToken`, `apiKey`, and so on) that [issue a token](/api/vault/issue-token) returns.

## Errors [#errors]

| Status | When                                                     |
| ------ | -------------------------------------------------------- |
| `404`  | No such operation, or it belongs to a different service. |
