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

# SignSealShip API quickstart: seal your first passport

> Go from requesting access to a sealed Closing Passport: get a partner key, create a Closing Room, attach orders, share the room link, and seal the passport.

This guide takes you from no access to a sealed, publicly verifiable Closing Passport. You need a terminal with `curl`; every call runs against `https://signsealship.com`.

<Info>
  Partner API keys start with `sss_pk_` and are shown to you exactly once — SignSealShip stores only a SHA-256 hash. Keep yours in a secret manager, never in code or version control.
</Info>

<Steps>
  <Step title="Request access">
    Go to [signsealship.com/partner](https://signsealship.com/partner) and use the **Request access** form: firm name, contact name, work email, your role, expected volume, and what you plan to build.

    You can also submit the same request over the API:

    ```bash Request access theme={null}
    curl -X POST https://signsealship.com/api/partner/request \
      -H "Content-Type: application/json" \
      -d '{
        "firmName": "Maple Title Co.",
        "contactName": "Jordan Alvarez",
        "workEmail": "jordan@mapletitle.example",
        "role": "Escrow officer",
        "expectedVolume": "20 closings/month",
        "useCase": "Live closing status pages for buyers, sellers, and lenders."
      }'
    ```

    Requests from a business email with a coherent title, escrow, legal, or lending use case are approved automatically; everything else goes to a human. Either way the response is immediate:

    ```json Response theme={null}
    { "status": "issued", "message": "Your Closing Rooms access is ready - check your email." }
    ```

    A `"pending"` status means a person is reviewing your request and you will hear back by email.
  </Step>

  <Step title="Receive your key by email">
    Approved requests get an email at the work address you provided containing your `sss_pk_` partner API key and onboarding steps. The key appears in that email once and nowhere else.

    <Warning>
      If you lose the key, request a replacement — it cannot be recovered, because only its hash is stored.
    </Warning>
  </Step>

  <Step title="Link your firm (dashboard) or use the API directly">
    You can drive everything below from the partner dashboard instead of curl. Sign in at [signsealship.com/partner](https://signsealship.com/partner) and paste your API key into the **Link your firm** form. Linking proves possession of the key and connects your login to the firm; the first person to link becomes the owner.

    Prefer the API? Skip linking entirely — every remaining step works with the key as a bearer token:

    ```bash Auth header theme={null}
    -H "Authorization: Bearer sss_pk_your_key_here"
    ```
  </Step>

  <Step title="Create a room">
    A Closing Room is one shareable page per transaction. Create one with a name and, optionally, your own file number as `reference`:

    ```bash Create a room theme={null}
    curl -X POST https://signsealship.com/api/rooms \
      -H "Authorization: Bearer sss_pk_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{ "name": "1428 Maple St - Refinance", "reference": "TC-88412" }'
    ```

    ```json Response theme={null}
    {
      "roomCode": "3f8c1a9b2e4d5f60718293a4b5c6d7e8f9012345",
      "roomUrl": "/rooms/3f8c1a9b2e4d5f60718293a4b5c6d7e8f9012345",
      "name": "1428 Maple St - Refinance",
      "reference": "TC-88412",
      "status": "open",
      "createdAt": "2026-07-13T17:04:12Z"
    }
    ```

    The `roomCode` is a random 40-hex bearer code — whoever holds it can view the room. Your trial tier allows 5 open rooms; see [tiers and quotas](/closing-rooms#tiers-and-quotas).
  </Step>

  <Step title="Attach orders">
    Attach each order in the deal by its public order code — the same code from the order's `/orders/{code}` link. Possession of the code is the authorization to attach it. An optional `label` names the document on the room page:

    ```bash Attach an order theme={null}
    curl -X POST https://signsealship.com/api/rooms/3f8c1a9b2e4d5f60718293a4b5c6d7e8f9012345/orders \
      -H "Authorization: Bearer sss_pk_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{ "orderCode": "your-order-public-code", "label": "Seller deed package" }'
    ```

    ```json Response theme={null}
    { "ok": true, "alreadyAttached": false }
    ```

    Attaching is idempotent — repeating the call returns `"alreadyAttached": true` and changes nothing. A room holds up to 50 orders.
  </Step>

  <Step title="Share the room link">
    Every party to the deal views the same live page — no accounts, no logins:

    ```text Room link theme={null}
    https://signsealship.com/rooms/3f8c1a9b2e4d5f60718293a4b5c6d7e8f9012345
    ```

    Your systems can read the identical live JSON:

    ```bash Read the room theme={null}
    curl https://signsealship.com/api/rooms/3f8c1a9b2e4d5f60718293a4b5c6d7e8f9012345
    ```

    <Warning>
      The room link is a bearer credential: one link grants deal-wide visibility. Share it only with the parties to the deal. If it leaks, rotate it — the old link dies instantly. See [bearer links and rotation](/closing-rooms#bearer-links-and-rotation).
    </Warning>
  </Step>

  <Step title="Seal a Closing Passport">
    When you want a verifiable snapshot of everything cryptographically true about the room, seal a Closing Passport:

    ```bash Seal a passport theme={null}
    curl -X POST https://signsealship.com/api/rooms/3f8c1a9b2e4d5f60718293a4b5c6d7e8f9012345/passport \
      -H "Authorization: Bearer sss_pk_your_key_here"
    ```

    ```json Response theme={null}
    {
      "version": 1,
      "verifyCode": "b7e2c4a1d9f0e8b6a5c3d2e1f0a9b8c7",
      "verifyUrl": "/v/room/b7e2c4a1d9f0e8b6a5c3d2e1f0a9b8c7",
      "manifestSha256": "9d377b10ce778c4938b3c7e2c63a229a33884810d7743fbe4b5f2b7657b706da",
      "prevManifestSha256": null,
      "sealedSha256": "4f9a1c2b3d4e5f60718293a4b5c6d7e8f90123456789abcdef0123456789abcd",
      "createdAt": "2026-07-13T17:22:47Z"
    }
    ```

    Anyone can now verify the passport at `https://signsealship.com/v/room/{verifyCode}` — no account and no trust in SignSealShip required. Repeat calls mint new versions by design (each is a dated snapshot, chained to the last; quota 20 versions per room). See [Closing Passport](/closing-passport) for how the manifest and hash chain work.
  </Step>
</Steps>

<Check>
  You created a room, attached orders, shared one live link with every party, and sealed a verifiable evidence manifest for the whole closing.
</Check>

## Next steps

<Columns cols={2}>
  <Card title="Closing Rooms in depth" icon="door-open" href="/closing-rooms">
    Bearer-link security, rotation, room lifecycle, and tier quotas.
  </Card>

  <Card title="Subscribe to webhooks" icon="webhook" href="/webhooks-guide">
    Get signed `room.order_attached` and `room.passport_sealed` events pushed to your systems.
  </Card>

  <Card title="Understand the evidence" icon="shield-check" href="/evidence-model">
    What SEALED and RECORDED actually mean, and how to verify independently.
  </Card>

  <Card title="API reference" icon="square-terminal" href="/api-reference">
    Full request and response shapes for every endpoint used above.
  </Card>
</Columns>
