Skip to main content

qURL™ SDK & API

Build private access into your product.

Give a private resource a cryptographic identity, then let your code issue access for each task. Your app stays off the public internet while people and AI agents get a verified way in. Build with Go, TypeScript, Python, or the REST API.

How it works

Publish once. Create access from your code.

Each example creates a single-use link that can be opened within one hour. The session it starts then runs for its own configured length.

  1. QURL_RESOURCE_CRIDPublish a private app and save the CRID it returns.
  2. QURL_API_KEYAn application key from the resource owner’s account with qurl:write, not the key used for CLI enrollment.
  3. RunningKeep the app and its connector up. These calls issue links for it.
package main

import (
    "context"
    "fmt"
    "log"
    "os"
    "time"

    "github.com/layervai/qurl-go/qurl"
)

func main() {
    crid := os.Getenv("QURL_RESOURCE_CRID")
    if crid == "" {
        log.Fatal("Set QURL_RESOURCE_CRID from publish")
    }
    client, err := qurl.OpenClient()
    if err != nil { log.Fatal(err) }

    resource := client.ResourceByCRID(crid)
    portal, err := resource.CreatePortal(context.Background(),
        qurl.ValidFor(time.Hour), qurl.OneTimeUse())
    if err != nil { log.Fatal(err) }

    // Print only in this local example. Deliver privately in production; do not log.
    fmt.Println(portal.Link)
}

Publish once. Issue access as needed.

Your applicationLayerVIssue linkAccess linkPerson or agentApp on your hostOpen via qURL
Your app keeps running on its host. Your code issues the link; the recipient uses it to reach that resource.

Examples use Go v0.17.0, TypeScript v0.7.0, and Python v0.3.0. For programmatic opening of a received link, follow the link-opening guide.

Go

go get github.com/layervai/qurl-go/qurl

TypeScript

npm install @layervai/qurl

Python

pip install qurl-python

Why it’s different

The access layer you’d otherwise build yourself.

Your app stays private

Keep the origin private. LayerV checks authorization before opening the protected origin connection; your code decides when to issue access.

Expiry is built in

Issue a fresh link for each task, choose its lifetime and use limits, and revoke access when the work is done. Keep your app’s sign-in for user identity.

Keep identity separate from location

Save the CRID once. It identifies the resource by its key, while each signed link grants fresh access. A compatible opener verifies the grant against that identity.

Your first link is one call away.

Publish your app with the quickstart, then build access-link creation into your application.

Pilot LayerV

Tell us what to protect, and we’ll scope a pilot.

Enterprise starts with a scoped, paid pilot on one application, typically 60 to 90 days, credited in full toward year one if you convert within 60 days. Then an annual package sized to what you protect. Not per seat.