---
title: "Open in artifacts"
method: POST
path: "/api/v1/alpha/artifacts/open-in"
tags: ["alpha"]
---

# Open in artifacts

`POST /api/v1/alpha/artifacts/open-in`

## Request

- Base URL: `https://point11.ai`
- URL: `https://point11.ai/api/v1/alpha/artifacts/open-in`
- Auth: OAuth 2 (authorization code, authorization URL `https://auth.point11.ai/oauth2/authorize`, token URL `https://auth.point11.ai/oauth2/token`)

Open one version of a PowerPoint, Word or Excel file Alpha made, that the member may read, in their own Google Drive (converted to Google Slides, Docs or Sheets) or OneDrive (PowerPoint, Word or Excel for the web): the first call copies that version into a Point11 folder there and later calls reopen the same copy, making a new one only when it was deleted. Answers the copy's url. When the member must first connect Google Drive or OneDrive, the dashboard answers a consent url that returns to the file, to finish in the same browser; any other caller is told to connect it in Point11's Settings first. The copy never syncs back to Point11. Uses the member's own connection.

## Headers

- `Point11-Organization` string, uuid
- `Idempotency-Key` string, uuid, required

## Request body

- AlphaArtifactsOpenInRequest
  - `id` string, required: The ID of any version of a file Alpha made
  - `app` 'google' | 'microsoft', required: google opens it in Google Slides, Docs or Sheets; microsoft in PowerPoint, Word or Excel for the web

## Response `200`

Success.

- AlphaArtifactsOpenInResponse
  - `target` union, required
    - object
      - `kind` 'file', required
      - `url` string, uri, required: Opens the member's copy in the app
      - `copy` 'new' | 'existing', required: new: this call made the copy; existing: an earlier call had
    - object
      - `kind` 'consent', required
      - `url` string, uri, required: The provider's consent for the member's own connection; it returns to the file

## Other responses

- `400`: The input, query, or Idempotency-Key is invalid.
- `401`: The bearer is missing, expired, or not accepted.
- `402`: Billing refused the write: the code names the reason and `details.reason` carries it.
- `403`: The credential lacks the operation's scope or role, or the operation needs a different door.
- `404`: The resource or organization does not exist for this caller.
- `405`: This path takes another HTTP method, named in `Allow`.
- `409`: The request conflicts with current state or with prior use of its Idempotency-Key.
- `413`: The request, or the answer it asks for, is too large; narrow it.
- `429`: The credential's rate budget is spent; retry after `Retry-After` seconds.
- `500`: An unexpected server failure; retry later. Only `request_id` identifies it.
- `503`: A dependency is temporarily unavailable; retry after `Retry-After` seconds.
- `default`: Another status a product answers for its own refusal (for example `415` for an unsupported attachment); branch on `code`.

---

[API](https://skmtc.dev/point11/apis/point11-api.md) · [All operations](https://skmtc.dev/point11/apis/point11-api/llms.txt) · [OpenAPI document](https://skmtc.dev/point11/apis/point11-api/revisions/36a84c7aca11?raw)
