Skip to content

Idea routes

Every Idea Verb as an api.sb route, with its inputs, result, refusals and an example.

Reference for Idea.

Idea.create

Creates an Idea. Verb page.

Text
POST /{namespace}/ideas

Body, as JSON: the inputs. Emits Idea.created.

Inputs

InputTypeRequiredDescription
statementtextrequiredThe concept in one line.

Returns

OutputTypeRequiredDescription
ideaIdearequiredThe Idea.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/ideas \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"statement":"Tracks lease renewals for small property managers."}'
JSON
{
  "api": "https://api.sb/leaseline.app",
  "idea": {
    "$id": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L",
    "$type": "Idea",
    "statement": "Tracks lease renewals for small property managers.",
    "status": "open"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Idea.create",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}

Idea.get

Returns one Idea by id. Verb page.

Text
GET /{namespace}/ideas/{id}

Path: id. Query: the other inputs. Reads only: it emits no Event.

Inputs

InputTypeRequiredDescription
idstringrequiredThe id of the Idea.
atstringA time or Version name: the record as it stood then. Unset: as it stands now.

Returns

OutputTypeRequiredDescription
ideaIdearequiredThe Idea.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl https://api.sb/leaseline.app/ideas/idea_912vmxR17L \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "$type": "Idea",
  "$id": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L",
  "idea": {
    "$id": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L",
    "$type": "Idea",
    "statement": "Tracks lease renewals for small property managers.",
    "status": "open"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L",
    "up": "https://api.sb/leaseline.app/ideas"
  },
  "actions": {
    "pursue": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L/pursue"
  }
}

Idea.list

Returns Ideas, newest first, one page at a time. Verb page.

Text
GET /{namespace}/ideas

Query: the inputs. Reads only: it emits no Event.

Inputs

InputTypeRequiredDescription
limitintegerAt most this many records, up to 100. The default is 20.
afterstringThe cursor from the previous page.
wherestringA filter over the properties, such as paidAt = null and total.amount > 500.
sortstringProperties to sort by, comma-separated; a leading minus sorts descending.
totalbooleanTrue adds the match count as meta.total, exact up to 10,000 matches and estimated above.
facetsstringProperties to count by value, comma-separated, returned as meta.facets.
fieldsstringProperties to return on each record, comma-separated; $id and $type always return.
includestringRelated records to embed in place of their URLs, comma-separated.
depthintegerHow many levels of related records to embed. The default is 1.
qstringWords to match across the text properties, ranked by relevance.
matchstringRanks the search by words, or meaning; words is the default.

Returns

OutputTypeRequiredDescription
ideaslist of IdearequiredOne page of Ideas.

Refuses when

CheckErrorFixThen call
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl "https://api.sb/leaseline.app/ideas?limit=20" \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "$type": "Idea",
  "ideas": [
    {
      "$id": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L",
      "$type": "Idea",
      "statement": "Tracks lease renewals for small property managers.",
      "status": "open"
    }
  ],
  "meta": {
    "limit": 20,
    "after": "idea_912vmxR17L"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/ideas?limit=20",
    "next": "https://api.sb/leaseline.app/ideas?after=idea_912vmxR17L"
  }
}

Idea.pursue

Pursue starts a Startup on an Idea as one variant of the Experiment that tests the Idea. Verb page.

Text
POST /{namespace}/ideas/{idea}/pursue

Path: idea. Body, as JSON: the other inputs. Emits Idea.pursued.

Inputs

InputTypeRequiredDescription
ideaIdearequiredThe Idea to pursue.
templateTemplateThe Template the variant extends.

Returns

OutputTypeRequiredDescription
startupStartuprequiredThe new variant Startup.
ideaIdearequiredThe Idea now pursued.

Refuses when

CheckErrorFixThen call
The input does not match the schema of the operation.invalid-inputRead the schema of the operation, then send every required field with the right type.None.
The key is valid, but its scopes do not allow this operation.forbiddenUse a key whose scopes cover the operation, or ask an owner of the namespace to grant them.None.

Example

Terminal
curl -X POST https://api.sb/leaseline.app/ideas/idea_912vmxR17L/pursue \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
JSON
{
  "api": "https://api.sb/leaseline.app",
  "startup": {
    "$id": "https://api.sb/leaseline.app/startups/startup_VBluhMC0sH",
    "$type": "Startup",
    "name": "Leaseline"
  },
  "idea": {
    "$id": "https://api.sb/leaseline.app/ideas/idea_912vmxR17L",
    "$type": "Idea",
    "statement": "Tracks lease renewals for small property managers.",
    "status": "open"
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Idea.pursue",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}