Quick Start: Your first API call

Go from zero to a working API request in 5 minutes.

What you'll need

  • A smenso workspace with the Enterprise Add-on enabled
  • Access to the Admin Center to create an API token
  • A tool to make HTTP requests: curl (terminal), Postman, or any HTTP client

Step 1: Create your API token

  1. Open admin.smenso.cloud and log in.
  2. Go to API Token and click Create API Token.
  3. Select your workspace, set a validity period, and give the token a name.
  4. Click Create and copy the token immediately - it's shown only once.

→ Detailed instructions: Authentication


Step 2: Make your first GET request

Let's verify your token works by retrieving the list of supported timezones:

curl --request GET \
     --url https://{workspace}.smenso.cloud/skyisland/api/integration/timezones/json \
     --header 'Authorization: Basic {your-api-token}' \
     --header 'accept: application/json'

Replace {workspace} with your workspace subdomain and {your-api-token} with the token you just created.

Expected response

A JSON array of timezone identifiers:

[
  {
    "id": "W. Europe Standard Time",
    "displayName": "..."
  },
  ...
]

If you see this response, your authentication is working. 🎉


Step 3: Retrieve project data

Now let's fetch real workspace data. To export project data via the Reporting API, you need a view ID from a saved list view in smenso:

  1. Open your smenso workspace in the browser.
  2. Navigate to a project list (e.g., Portfolio overview).
  3. Select a list view and open the Share menu.
  4. Copy the API link - it contains the view ID. You can copy it as JSON or CSV.

Then call:

curl --request GET \
     --url 'https://{workspace}.smenso.cloud/skyisland/api/reports/projects?view={viewId}' \
     --header 'Authorization: Basic {your-api-token}' \
     --header 'accept: application/json' \
     --header 'timezone: Europe/Berlin'

You should receive a JSON (or CSV) response containing your project data.


Step 4: Create a task (write operation)

⚠️

Write operations require an Admin role.

Using the JSON API, create a new task in a project:

  1. Replace {workspace} with your workspace subdomain and {your-api-token} with the token you created.
  2. Open your smenso workspace in the browser.
  3. Navigate to the project in which you want to create a task.
  4. Open the master data, then click the three-dot menu.
  5. Copy the Project GUID and Replace {your-projectId} .
curl --request POST \
     --url https://{workspace}.smenso.cloud/skyisland/api/integration/task/json \
     --header 'Authorization: Basic {your-api-token}' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "externalIdReference": null,
  "projectId": "{your-projectId}",
  "task": [
    {
      "description": null,
      "startDate": null,
      "dueDate": null,
      "statusId": null,
      "cost": null,
      "computeCost": null,
      "computePlannedCost": null,
      "plannedCost": null,
      "duration": null,
      "computeDuration": null,
      "plannedDuration": null,
      "isMilestone": null,
      "priority": null,
      "appointedPersons": null,
      "folder": null,
      "workflowId": null,
      "workflowStatusId": null,
      "processId": null,
      "blockTimeRecording": null,
      "parentId": null,
      "flavor": null,
      "title": "My first API task",
      "externalId": null,
      "tempId": null
    }
  ]
}
'

Async response

If the endpoint processes asynchronously, you'll receive a ticketId:

{
  "id": "ticketId",
  "received": "11.02.2026 13:19:44"
}

Check the result:

curl --request GET \
     --url https://{workspace}.smenso.cloud/skyisland/api/integration/status/json/{ticketId} \
     --header 'Authorization: Basic {your-api-token}' \
     --header 'accept: application/json'

→ Full details on ticket handling: Integration Tickets


Testing directly in the API Reference

The fastest way to try the API - no tools required. The API Reference has a built-in "Try It!" feature on every endpoint page (e.g., Get timezones):

  1. Enter your API token in the Authorization header field.
  2. Replace {workspace} with your workspace subdomain.
  3. Fill in any required parameters.
  4. Click "Try It!" - the response appears below, including status code, headers, and body.

The reference also generates ready-to-use code snippets in Shell, Node, Ruby, PHP, and Python for every request you configure.


Using Postman instead of curl

If you prefer a graphical interface:

  1. Download Postman.
  2. Create a new request.
  3. Set the method (GET or POST) and paste the URL.
  4. Under Authorization, select API Key, set the key to Authorization and the value to Basic {your-api-token}.
  5. For POST requests, go to Bodyraw → select JSON or XML, and paste your payload.
  6. Click Send.

Troubleshooting your first request

SymptomLikely causeFix
401 UnauthorizedInvalid or expired tokenRegenerate the token in the Admin Center
403 ForbiddenToken user lacks Admin role (for write operations)Use a token from an Admin account
404 Not FoundWrong workspace name or endpoint pathDouble-check the URL
Empty responseThe view has no data, or the user has no access to the projectsVerify the view contains data in the smenso UI
Connection refusedEnterprise add-on not enabledContact your smenso admin