Saasco logoSaasco logo
Saasco logoSaasco logo

Introduction

OverviewGetting startedWhat is Saasco?

SDK

Quick startTrackingIdentifyConfigurationWidgetsProperties

MCP

Quick startHow it worksAuthorizationTool reference

REST API

Quick start
getList ProjectsgetGet ProjectpostUpdate ProjectdelDelete Project
Add DNS records
ProjectsSettings

List Projects

Lists the projects the caller can reach, each with its app configs. API keys are scoped to a single project, so an API-key caller always gets exactly that one project back. Session and MCP callers omit take for every membership they belong to; the dashboard passes take for the recent page and id to keep the current project. An MCP URL with ?projectId= is limited to that project.

GET
/projects

Authorization

Authorization
AuthorizationBearer <token>

In: header

Query Parameters

idstring

Return only the project with this ID.

orderBystring

Field to sort by. Omit to keep the default ordering.

Value in: "name" | "description" | "createdAt"
orderDirectionstring

Sort direction. Defaults to desc. Ignored unless orderBy is set.

Value in: "asc" | "desc"
skipnumber

Number of projects to skip before collecting results.

Default: 0
takenumber

Maximum number of projects to return. Omit to return every project.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://www.saasco.com/api/v2/projects"
[
  {
    "id": "string",
    "createdAt": "string",
    "updatedAt": "string",
    "name": "string",
    "tagline": "string",
    "slug": "string",
    "balance": 0,
    "balanceVersion": -9007199254740991,
    "thumbnail": "string",
    "stripeCustomerId": "string",
    "testStripeCustomerId": "string",
    "autoTopUpEnabled": true,
    "meta": {
      "agentSetupStartedAt": "string",
      "sdkInstalledAt": "string",
      "onboardingCompletedAt": "string",
      "onboardingStep": "name",
      "onboardingManual": true,
      "contactListVisibleColumns": [
        {
          "id": "string",
          "order": 0
        }
      ],
      "defaultEmailCampaignSendOrder": {
        "direction": "asc",
        "propertyKey": "string"
      },
      "defaultEmailFromDomain": "string",
      "defaultEmailFromName": "string",
      "defaultEmailFromUsername": "string",
      "companyAddressLine1": "string",
      "companyAddressLine2": "string",
      "companyCity": "string",
      "companyRegion": "string",
      "companyPostalCode": "string",
      "companyCountry": "st",
      "knowledgeArticlesVisibleColumns": [
        {
          "id": "string",
          "order": 0
        }
      ],
      "timezone": "string",
      "setupGuideVisits": [
        "string"
      ],
      "setupGuideEmailDomainSkipped": true,
      "setupGuideMcpSkipped": true,
      "setupGuideSupportDomainSkipped": true,
      "setupGuideTestEmailSent": true,
      "setupGuideGoLiveConfirmed": true
    },
    "liveProjectId": "string",
    "autoTopUpAmount": 20,
    "autoTopUpThreshold": 10,
    "appConfigs": [
      {
        "id": "string",
        "createdAt": "string",
        "updatedAt": "string",
        "appId": "string",
        "activated": true,
        "setupCompleted": true,
        "projectId": "string"
      }
    ]
  }
]
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}

Set Benchmark Preferences

Stores the cohort and funnel-step mapping used to compare this project's metrics with benchmarks. Replaces the previous preferences.

Get Project

Fetches a single project along with its app configs: one entry per Saasco app the project has enabled, carrying that app's activation and setup-completion state. Returns 404 if the project does not exist.