Competitor Tracker & Co. Docs

Start tracking a few companies on someone's behalf, before they have an account.

Creates an organization nobody owns yet, puts up to three of the companies you name on file, and returns a link the person you are acting for uses to take it over. Companies are matched against the ones we already track, by name or by domain, and the first three you list get the slots. Anything we could not deliver comes back in `shortfalls` and travels on the claim link, so the claim page can make good on the whole ask. The response also carries a short-lived key for reading what those companies have been up to. The organization expires in four days if nobody claims it. We send no email on this path: the claim link is yours to pass on.

POST
/v1/agent-signups

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://api.competitortracker.io/v1/agent-signups" \  -H "Content-Type: application/json" \  -d '{    "companies": [      "Notion",      "linear.app",      "Asana"    ],    "sessionId": "conv_01J2ZQ8F4T"  }'
{
  "status": "created",
  "organization": {
    "id": "string",
    "name": "string",
    "expiresAt": "string"
  },
  "subscribed": [
    {
      "requested": "string",
      "id": "string",
      "slug": "string",
      "name": "string",
      "url": "string",
      "affiliated": true
    }
  ],
  "shortfalls": [
    {
      "ask": "string",
      "reason": "unpublished"
    }
  ],
  "claim": {
    "url": "string",
    "expiresAt": "string"
  },
  "access": {
    "token": "string",
    "expiresAt": "string",
    "scopes": [
      "string"
    ]
  }
}
{
  "code": "string",
  "message": "string",
  "resolution": "string"
}
{
  "code": "string",
  "message": "string",
  "resolution": "string"
}
{
  "status": "catalog_unavailable",
  "message": "string"
}