# `GET /v1/apps/{app_id}/fcp` — handshake. Always returns the same
generic 404 body for unknown apps so the endpoint cannot be used to
probe which app ids are real.

Source: <https://everruns.com/docs/api/operations/handshake/>

GET

/v1/apps/{app\_id}/fcp

Select code samplecURL (shell:curl)

```js
const url = 'https://app.everruns.com/api/v1/apps/example/fcp';
const options = {method: 'GET'};


try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request GET \
  --url https://app.everruns.com/api/v1/apps/example/fcp
```

* Production APIapp.everruns.com/api/v1/apps/{app\_id}/fcp

## Parameters

### Path Parameters

**app\_id**

required

string

App ID

## Responses

### 200

Markdown handshake describing the FCP endpoint and how to authenticate. Always `text/markdown`.

Media typetext/markdown

### 404

No FCP endpoint at this URL. Single sanitized body covers unknown apps, unpublished apps, apps without an FCP channel, and disabled FCP channels — operator state is never disclosed.

Media typetext/markdown

### 429

Per-channel FCP rate limit exceeded. `Retry-After: 60` header is set.

Media typetext/markdown