Skip to content

Projects

Projects are the folders you file work under. Every audience, audience size estimate, activation, cohort, and schedule optionally carries a project_id, and these endpoints are how you create a project and resolve a project name to the id those creates accept. A Lookalike Model is the exception: Create Lookalike Audience takes no project_id and ignores one sent in the body, so a Lookalike Model cannot be filed under a project. Projects are the same ones the console shows under Organization - Projects.

All project endpoints are authenticated and JSON-only. Send Authorization: Bearer <token> and Accept: application/json on every call (plus Content-Type: application/json on the POSTs). Reads use the read rate bucket (120 requests/min per caller); writes use the write bucket (30 requests/min per caller).

Create Project

POST /api/v2/analyses/projects/create

Creates a project for your company. The returned id is what you pass as project_id when creating an audience, an activation, a cohort, or a schedule.

Auth: bearer token + Accept: application/json + Content-Type: application/json. Rate limit: write bucket (30 requests/min). Optional: Idempotency-Key header (see Audiences).

Body

FieldTypeRequiredDescription
namestringYesProject name (max 255 chars). It needs at least one letter or digit and must differ from the names of your company’s other projects, compared without regard to case. A deleted project’s name can be used again.
curl -X POST "https://console.intuizi.com/api/v2/analyses/projects/create" \
  -H "Authorization: Bearer <YOUR_TOKEN>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: <UNIQUE_KEY>" \
  -d '{ "name": "Retail 2026" }'

Response

{
  "status": "success",
  "code": 201,
  "message": "Resource created successfully.",
  "data": [
    {
      "id": 4,
      "name": "Retail 2026"
    }
  ]
}

List Projects

GET /api/v2/analyses/projects/index

Lists the projects owned by your company, ordered by name, paginated.

Auth: bearer token + Accept: application/json. Rate limit: read bucket (120 requests/min).

Query parameters

FieldTypeRequiredDescription
per_pageintegerNoItems per page. Defaults to 25, capped at 100.
pageintegerNoPage number (standard pagination).
searchstringNoOptional free-text filter on the project name (case-insensitive contains).

Response

{
  "status": "success",
  "code": 200,
  "message": "Resources fetched successfully.",
  "data": {
    "items": [
      { "id": 4, "name": "Retail 2026" },
      { "id": 9, "name": "Travel 2026" }
    ],
    "pagination": { "current_page": 1, "per_page": 25, "total": 2, "last_page": 1 }
  }
}

Get Project

GET /api/v2/analyses/projects/{id}

Fetches one project owned by your company.

Auth: bearer token + Accept: application/json. Rate limit: read bucket (120 requests/min).

Path parameters

FieldTypeRequiredDescription
idintegerYesThe project id to fetch. Must be owned by your company.

Response

{
  "status": "success",
  "code": 200,
  "message": "Resource fetched successfully.",
  "data": {
    "id": 4,
    "name": "Retail 2026"
  }
}

Delete Project

POST /api/v2/analyses/projects/delete-by-id

Deletes one project owned by your company. Deleting a project only removes the folder: every audience, activation, cohort, and schedule filed under it is released (its project_id is cleared) and keeps working exactly as before. Nothing you built is deleted along with the project. The release and the delete happen together: if any part fails, the project and everything filed under it stay as they were. An audience size estimate filed under it is not released: it keeps the deleted project’s id.

Auth: bearer token + Accept: application/json + Content-Type: application/json. Rate limit: write bucket (30 requests/min).

Body

FieldTypeRequiredDescription
idintegerYesThe project id to delete. Must be owned by your company.

Response

{
  "status": "success",
  "code": 200,
  "message": "Resource deleted successfully.",
  "data": []
}