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

# Go Live

> Publish processed photos to the public event gallery

## Overview

Publishes processed photos to the public event gallery by triggering metadata mapping. This is pipeline step 3, after [Process](/api-reference/pipeline/photos/process).

The job is asynchronous: this endpoint only queues work. The response returns `status: "processing"`; track completion with [Pipeline Status](/api-reference/pipeline/photos/status) via `stages.go_live.status` (`processed` or `failed`) and `is_live` (`true` when live). Once complete, photos appear on the public gallery and through search endpoints ([All Photos](/api-reference/all-photos), [BIB Search](/api-reference/bib-search), [Face Search](/api-reference/face-search)).

<Note>
  Photos must be processed before going live. If no processed images exist, this endpoint returns a `400` error.
</Note>

## Endpoint

```
POST /api/v1/ext/{org_id}/event/{event_id}/pipeline/photos/go-live
```

## Path Parameters

| Parameter  | Type   | Required | Description           |
| ---------- | ------ | -------- | --------------------- |
| `org_id`   | number | Yes      | Your organisation ID. |
| `event_id` | number | Yes      | The event to publish. |

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  curl -i -X POST \
    -H "X-API-Key: <your_9pic_api_key>" \
    "https://api.9pic.ai/api/v1/ext/903/event/456/pipeline/photos/go-live"
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.9pic.ai/api/v1/ext/903/event/456/pipeline/photos/go-live",
      headers={"X-API-Key": "<your_9pic_api_key>"},
  )
  print(response.status_code, response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.9pic.ai/api/v1/ext/903/event/456/pipeline/photos/go-live",
    {
      method: "POST",
      headers: { "X-API-Key": "<your_9pic_api_key>" },
    }
  );
  console.log(await response.json());
  ```
</CodeGroup>

## Example Response

```json theme={null}
{
  "responseType": "success",
  "message": "Go-live started",
  "data": {
    "event_id": 456,
    "media": "photos",
    "stage": "go_live",
    "status": "processing"
  }
}
```

## Error Responses

| Status | Meaning                                                                                                |
| ------ | ------------------------------------------------------------------------------------------------------ |
| `400`  | No processed images available to publish. Run [Process](/api-reference/pipeline/photos/process) first. |
| `401`  | API key is missing.                                                                                    |
| `403`  | API key is invalid, inactive, or token/event ownership mismatch.                                       |
| `404`  | Event configuration not found.                                                                         |
| `409`  | Go-live is already processing. Wait for it to complete.                                                |
| `429`  | Rate limit exceeded. Back off and retry.                                                               |
| `500`  | Internal failure — the go-live job could not be queued.                                                |

See [Errors](/api-reference/errors) for canonical descriptions and retry guidance.
