Developers

    LaunchSurface API

    Drive the Operator from your own code: create a venture, read the prospects and intent signals it finds, and decide the outreach it drafts.

    Base URL and authentication

    Every endpoint lives under https://api.launchsurface.ai. Requests and responses are JSON, including errors. Authenticate with a session JWT in the Authorization header. Endpoints documented as public need no token.

    curl https://api.launchsurface.ai/ventures \
      -H "Authorization: Bearer $LAUNCHSURFACE_TOKEN"

    Creating a venture

    A venture is the unit Operator runs on. Create one from a product URL or a plain-language idea, then poll getVentureStatus while research completes.

    curl -X POST https://api.launchsurface.ai/ingest \
      -H "Authorization: Bearer $LAUNCHSURFACE_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"url": "https://example.com"}'
    
    {"ventureId": "…", "slug": "example", "status": "ingesting"}

    Errors

    Failures return JSON with a stable machine-readable code, a human-readable message, a hint describing how to resolve it, and the correlation ID for that request. The same ID is on the X-Correlation-ID response header. Quote it when you contact support.

    {
      "error": "not_found",
      "message": "No route matches GET /venture.",
      "hint": "Consult the OpenAPI description at https://api.launchsurface.ai/openapi.json for the available operations.",
      "correlationId": "e0ab8126-6ddd-4521-a08f-2e270d38f578"
    }

    Rate limiting

    Rate-limited endpoints return the RateLimit header family on every response, so a client can pace itself from the live counters rather than guessing. A rejected request returns 429 with Retry-After in seconds. Read the headers rather than hard-coding limits: they are the authority and they change.

    RateLimit-Limit: 30
    RateLimit-Remaining: 28
    RateLimit-Reset: 47
    RateLimit-Policy: ingest;q=30;w=60
    
    # on a 429, additionally:
    Retry-After: 47

    Operations

    Each operation below carries a unique operation ID, typed parameters, and a response schema in the specification, so it can be loaded directly into a function-calling tool definition or a client generator.

    OperationEndpointSummary
    getHealthGET /healthService health (public)
    createVenturePOST /ingestCreate a venture from a product URL or idea
    listVenturesGET /venturesList the authenticated user's ventures
    getVentureGET /ventures/{ventureId}Get one venture
    getVentureStatusGET /ventures/{ventureId}/statusGet research and operator progress
    listProspectsGET /ventures/{ventureId}/prospectsList discovered prospects
    listIntentSignalsGET /ventures/{ventureId}/signalsList buying-intent signals
    listPendingApprovalsGET /ventures/{ventureId}/approvals/pendingList approvals awaiting a decision
    decideApprovalPOST /ventures/{ventureId}/approvals/{approvalId}/decideApprove or deny one pending approval
    getVisibilityOverviewGET /ventures/{ventureId}/visibility/overviewGet AI-search visibility rollup
    getCurrentUserGET /auth/meGet the authenticated user
    listNotificationsGET /notificationsList notifications
    resolveLaunchHostGET /launch/resolve-hostResolve a landing-page hostname to its venture (public)

    Machine-readable files

    Agents can discover everything below without scraping a page. Any HTML page on this site also serves markdown when you send an Accept: text/markdown header, and blog posts additionally answer at their /md path.

    Support

    Questions about the API, a schema that does not match what you received, or an endpoint you need that is not described yet: write to hello@launchsurface.ai with the correlation ID and we will take a look.