---
title: "Open an owned node's shared service through a one-time ticket"
method: GET
path: "/api/nodes/{node_id}/shares/{service_name}/open"
tags: ["nodes"]
---

# Open an owned node's shared service through a one-time ticket

`GET /api/nodes/{node_id}/shares/{service_name}/open`

## Request

- Base URL: `https://app.nerdit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://app.nerdit.ai/api/nodes/{node_id}/shares/{service_name}/open`
- Auth: none declared

Mint a ticket bound to ``<service>--<slug>.<nodes_base_domain>``.

The name is validated against the daemon's own service grammar before
anything else, and a failure is the same 404 an unknown node gets: what
is not a service name cannot be a hosted label, and answering anything
more specific would describe this deployment's naming rules to whoever
asked. Whether a service by that name *exists*, or is shared, is not
asked here at all — the daemon re-reads its own share row on every
stream and answers its byte-identical ``share.not_shared`` for a miss,
so a ticket to nothing costs its holder one 404 and this route no
knowledge it would otherwise have to keep in sync.

## Path parameters

- `service_name` string, required
- `node_id` string, uuid, required

## Response `200`

Successful Response

- unknown

## Other responses

- `302`: Redirect to the one-time hosted-host exchange
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `422`: Validation Error
- `502`: Bad Gateway

---

[API](https://skmtc.dev/nerdit/apis/nerdit-cloud-web.md) · [All operations](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/llms.txt) · [OpenAPI document](https://skmtc.dev/nerdit/apis/nerdit-cloud-web/revisions/06e3b44b58be?raw)
