[mode] standard

Developer

Secretcloud API

A documented JSON API for events, presenters, and presentation blocks, with JWT for internal flows and long-lived integration tokens for external services.

Authentication

JWT

Use the existing user credentials to mint short-lived access tokens for internal automation.

POST https://secretcloud.no/api/token/
Integration tokens

Create long-lived tokens for external agents and service-to-service integrations.

POST https://secretcloud.no/api/integration-tokens/

Resources

  • EventsList, add, get, edit, delete
  • PresentersEvent-scoped presenter CRUD with linked profile fields
  • Presentation blocksSchedule block CRUD with participant attachment support

Endpoint overview

GET / POST https://secretcloud.no/api/v1/events/
GET / PATCH / DELETE https://secretcloud.no/api/v1/events/%7Bevent_id%7D/
GET / POST https://secretcloud.no/api/v1/presenters/
GET / PATCH / DELETE https://secretcloud.no/api/v1/presenters/%7Bevent_presenter_id%7D/
GET / POST https://secretcloud.no/api/v1/presentation-blocks/
GET / PATCH / DELETE https://secretcloud.no/api/v1/presentation-blocks/%7Bblock_id%7D/

docs.json preview

{
  "name": "Secretcloud Developer API",
  "version": "1.0",
  "formats": [
    "application/json"
  ],
  "authentication": {
    "jwt": {
      "obtain": "https://secretcloud.no/api/token/",
      "refresh": "https://secretcloud.no/api/token/refresh/",
      "usage": "Authorization: Bearer <access_token>",
      "notes": [
        "Use JWT for internal automations tied to a user session.",
        "JWT permissions follow the same event access rules as the web UI."
      ]
    },
    "integration_token": {
      "create": "https://secretcloud.no/api/integration-tokens/",
      "usage": [
        "Authorization: Token <integration_token>",
        "X-API-Key: <integration_token>"
      ],
      "notes": [
        "Integration tokens are long-lived and intended for external services.",
        "Raw token values are shown only once when created.",
        "Scopes: events, presenters, and blocks each support read/write permissions.",
        "Groups and block types also support their own read/write permissions."
      ]
    }
  },
  "resources": {
    "events": {
      "list_create": "https://secretcloud.no/api/v1/events/",
      "detail": "https://secretcloud.no/api/v1/events/%7Bevent_id%7D/",
      "actions": [
        "list",
        "create",
        "retrieve",
        "update",
        "partial_update",
        "delete"
      ],
      "filters": [
        "company",
        "owner"
      ]
    },
    "presenters": {
      "list_create": "https://secretcloud.no/api/v1/presenters/",
      "detail": "https://secretcloud.no/api/v1/presenters/%7Bevent_presenter_id%7D/",
      "actions": [
        "list",
        "create",
        "retrieve",
        "update",
        "partial_update",
        "delete"
      ],
      "filters": [
        "event_id",
        "status",
        "email"
      ],
      "notes": [
        "Presenter records are event-scoped API objects backed by EventPresenter plus the linked Presenter profile."
      ]
    },
    "presentation_blocks": {
      "list_create": "https://secretcloud.no/api/v1/presentation-blocks/",
      "detail": "https://secretcloud.no/api/v1/presentation-blocks/%7Bblock_id%7D/",
      "actions": [
        "list",
        "create",
        "retrieve",
        "update",
        "partial_update",
        "delete"
      ],
      "filters": [
        "event_id",
        "block_type",
        "in_agenda"
      ]
    },
    "groups": {
      "list_create": "https://secretcloud.no/api/v1/groups/",
      "detail": "https://secretcloud.no/api/v1/groups/%7Bgroup_id%7D/",
      "actions": [
        "list",
        "create",
        "retrieve",
        "update",
        "partial_update",
        "delete"
      ],
      "filters": [
        "event_id",
        "group_type"
      ]
    },
    "block_types": {
      "list_create": "https://secretcloud.no/api/v1/block-types/",
      "detail": "https://secretcloud.no/api/v1/block-types/%7Bblock_type_id%7D/",
      "actions": [
        "list",
        "create",
        "retrieve",
        "update",
        "partial_update",
        "delete"
      ],
      "filters": [
        "event_id",
        "base_type"
      ],
      "notes": [
        "Block types are event-scoped custom type definitions layered on top of the built-in PresentationBlock.block_type enum."
      ]
    }
  },
  "token_management": {
    "list_create": "https://secretcloud.no/api/integration-tokens/",
    "detail_delete": "https://secretcloud.no/api/integration-tokens/%7Btoken_id%7D/"
  },
  "examples": {
    "create_event": {
      "method": "POST",
      "url": "https://secretcloud.no/api/v1/events/",
      "body": {
        "name": "Healthcare Summit 2026",
        "description": "Public health strategy session.",
        "company": 1,
        "design_template": 1
      }
    },
    "create_presenter": {
      "method": "POST",
      "url": "https://secretcloud.no/api/v1/presenters/",
      "body": {
        "event_id": "<event_uuid>",
        "name": "Ada Lovelace",
        "surname": "",
        "email": "ada@example.com",
        "phone_number": "+4712345678",
        "global_title": "Scientist",
        "presenter_title": "Keynote speaker",
        "order": 0,
        "status": "UNSET"
      }
    },
    "create_presentation_block": {
      "method": "POST",
      "url": "https://secretcloud.no/api/v1/presentation-blocks/",
      "body": {
        "event_id": "<event_uuid>",
        "block_type": "PRESENTATION",
        "title": "Opening keynote",
        "presentation_title": "Health systems in transition",
        "start_time": "2026-08-19T09:30:00+02:00",
        "duration_minutes": 45,
        "presenter_ids": [
          101,
          102
        ]
      }
    },
    "create_group": {
      "method": "POST",
      "url": "https://secretcloud.no/api/v1/groups/",
      "body": {
        "event_id": "<event_uuid>",
        "name": "Main Stage",
        "group_type": "ROOM",
        "color": "#00c6ff",
        "icon": "fa-door-open",
        "order": 0,
        "description": "Primary stage area"
      }
    },
    "create_block_type": {
      "method": "POST",
      "url": "https://secretcloud.no/api/v1/block-types/",
      "body": {
        "event_id": "<event_uuid>",
        "type_id": "debate",
        "name": "Debate",
        "base_type": "PRESENTATION",
        "color": "#ff9c28",
        "icon": "fa-comments",
        "order": 0,
        "description": "Panel or debate format"
      }
    },
    "create_integration_token": {
      "method": "POST",
      "url": "https://secretcloud.no/api/integration-tokens/",
      "body": {
        "name": "External AI agent",
        "description": "Read-write access for presenter and schedule sync.",
        "token_type": "EXTERNAL",
        "scopes": [
          "events:read",
          "presenters:write",
          "blocks:write",
          "groups:write",
          "block_types:write"
        ],
        "event_ids": [
          "<event_uuid>"
        ],
        "expires_at": "2026-12-31T23:59:59Z"
      }
    }
  }
}