> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firsttouch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Call your first FirstTouch Public API operation in staging.

This quickstart calls `get_current_user`, an operation with no input arguments that returns the authenticated FirstTouch user and team context.

## Before You Start

You need:

* A Public API key created in **Settings > MCP & API**.
* A server-side terminal or application that can send HTTPS requests.
* Access to the staging FirstTouch environment.

See [Authentication](/api-reference/authentication) before creating a production integration.

## Make The Request

<CodeGroup>
  ```bash macOS and Linux theme={null}
  export FIRSTTOUCH_API_KEY="<key from your secrets manager>"

  curl --request POST \
    --url "https://stg-gateway.firsttouch.ai/api/public/tools/get_current_user" \
    --header "Content-Type: application/json" \
    --header "X-API-Key: ${FIRSTTOUCH_API_KEY}" \
    --data '{}'
  ```

  ```powershell Windows PowerShell theme={null}
  $env:FIRSTTOUCH_API_KEY = "<key from your secrets manager>"

  $headers = @{
    "Content-Type" = "application/json"
    "X-API-Key" = $env:FIRSTTOUCH_API_KEY
  }

  Invoke-RestMethod `
    -Method Post `
    -Uri "https://stg-gateway.firsttouch.ai/api/public/tools/get_current_user" `
    -Headers $headers `
    -Body "{}"
  ```
</CodeGroup>

A successful response is normal JSON containing the current FirstTouch identity and team context.

<Note>
  Keep the environment variable in your local shell or deployment secret store. Do not put the real key directly into a script committed to source control.
</Note>

## Call Another Operation

1. Open the [API Operations reference](/api-reference/operations).
2. Select an operation in ReDoc.
3. Review its description and request schema.
4. Send a JSON object matching that schema to `/api/public/tools/<tool_name>`.

All 65 operation descriptions and input schemas come from the same catalog used by FirstTouch MCP.

## Common Responses

| Status | Meaning                                                                                  |
| ------ | ---------------------------------------------------------------------------------------- |
| `200`  | The operation completed successfully.                                                    |
| `400`  | The JSON body is malformed or does not pass validation.                                  |
| `401`  | The API key is missing, invalid, rotated, or revoked.                                    |
| `403`  | The key owner does not have permission for the operation.                                |
| `404`  | The requested FirstTouch resource was not found.                                         |
| `409`  | The operation conflicts with current workflow state.                                     |
| `429`  | The request was rate limited. Wait before retrying.                                      |
| `500`  | FirstTouch could not complete the operation. Retry or contact support with the trace ID. |

## Troubleshooting

If a request returns `401`:

* Confirm the header name is exactly `X-API-Key`.
* Confirm the key is active and has not been rotated.
* Confirm the creator is still active in the key's team.
* Make sure your HTTP client is not sending the key to a different host.

If a request returns `403`, verify the creator's current team role, feature access, and product entitlement in FirstTouch.

## OpenAPI

Use the live staging contract for code generation or inspection:

```text theme={null}
https://stg-gateway.firsttouch.ai/api/public/openapi.json
```

The contract is generated by CRM and may gain operations as the MCP tool catalog evolves.
