# Get an operation

Returns one operation’s status, progress, and outcome. Poll it after a mutation answered with an operation handle. An operation the credential cannot reach answers 404, the same as one that does not exist.

## GET `/v1/operations/{operationId}`

### Authorization

`Authorization`Bearer token · header required

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

### Path parameters

`operationId` string required

min length 1

### Responses

#### 200 Response 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 properties Hide properties

- `id` string required
- `kind` string required
- `status` string required

Allowed: `queued`, `running`, `succeeded`, `failed`, `canceled`

- `resources` object\[\] required

Show properties Hide properties

Array of `object`

- `type` string required
- `id` string required

- `progress` object

Show properties Hide properties

- `total` integer required

min 0 · max 9007199254740991

- `completed` integer required

min 0 · max 9007199254740991

- `failed` integer required

min 0 · max 9007199254740991

- `diagnostics` object\[\]

Show properties Hide properties

Array of `object`

- `code` string required

Stable snake\_case code for this diagnostic.

- `severity` string required

How serious the diagnostic is.

Allowed: `info`, `warning`, `error`

- `message` string required

What happened, in a sentence a person can act on.

- `path` string | any

File or artifact path the diagnostic refers to, with a line number when known, for example \`_headers:12\`. Absent when it applies to the whole resource.

Show properties Hide properties

Any of:
  - string
  - `string`
  - any
  - `any`

- `provider` string | any

Upstream system that raised the diagnostic. Absent when Spacefast raised it.

Show properties Hide properties

Any of:
  - string
  - `string`
  - any
  - `any`

- `details` object | any

Machine-readable context keyed by the diagnostic code.

Show properties Hide properties

Any of:
  - object
  - `object`
  - any
  - `any`

- `fix` string | any

What to change to clear the diagnostic. Absent when there is no known fix.

Show properties Hide properties

Any of:
  - string
  - `string`
  - any
  - `any`

- `retryable` boolean | any

True when repeating the same operation unchanged can clear the diagnostic.

Show properties Hide properties

Any of:
  - boolean
  - `boolean`
  - any
  - `any`

- `createdAt` string <date-time> required

matches ^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$

- `finishedAt` string <date-time>

defaultError. Every 4xx and 5xx response is one RFC 9457 problem document served as \`application/problem+json\`.

`$schema` string <uri>

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

- `type` string required

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

- `title` string required

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

- `status` integer required

HTTP status of the response, repeated in the body.

min -9007199254740991 · max 9007199254740991

- `detail` string required

What went wrong in this request.

- `code` string required

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` string required

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

## Try it

### Server

Base URL https://api.spacefast.com

Custom base URL Overrides the selected server when set.

### Authorization

Bearer token Remember on this device Include my values in samples

### Parameters

`operationId` path\*

### Send

#### Request

```bash
curl -X GET "https://api.spacefast.com/v1/operations/string" \
  -H "Authorization: Bearer YOUR_TOKEN"
```

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

```python
import requests

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

### Response

#### 200 default

```json
{
  "$schema": "http://example.com",
  "data": {
    "id": "string",
    "kind": "string",
    "status": "queued",
    "resources": [
      {
        "type": "string",
        "id": "string"
      }
    ],
    "progress": {
      "total": 9007199254740991,
      "completed": 9007199254740991,
      "failed": 9007199254740991
    },
    "diagnostics": [
      {
        "code": "string",
        "severity": "info",
        "message": "string",
        "path": "string",
        "provider": "infra",
        "details": {
          "property1": null,
          "property2": null
        },
        "fix": "string",
        "retryable": true
      }
    ],
    "createdAt": "2019-08-24T14:15:22Z",
    "finishedAt": "2019-08-24T14:15:22Z"
  }
}
```

```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"
}
```
