Skip to content

REST API

Base path: /api/v1

Auth column legend:

  • Public — no authentication required
  • Auth — login or API token required
  • Org — organization member / editor / admin
  • sysadmin — system administrator only
MethodPathDescriptionAuth
GET/packagesList datasets (with search and filters)Public
POST/packagesCreate dataset (include resources array to create resources simultaneously)Org editor
GET/packages/{nameOrId}Get dataset detailsPublic
PUT/packages/{nameOrId}Update dataset (full replacement; resources not included)Org editor
DELETE/packages/{nameOrId}Soft-delete datasetOrg editor
POST/packages/{nameOrId}/restoreRestore soft-deleted datasetsysadmin
POST/packages/{nameOrId}/purgePermanently delete soft-deleted datasetOrg admin
GET/packages/{id}/resourcesList resourcesPublic
POST/packages/{id}/resourcesAdd resourceOrg editor
PUT/packages/{id}/resources/reorderReorder resourcesOrg editor
ParameterDescription
qKeyword search
offset / limitPagination (max 100)
organization[]Filter by organization
groups[]Filter by category
tags[]Filter by tag
res_format[]Filter by resource format (e.g., CSV)
license_id[]Filter by license
stateactive / deleted
my_orgLimit to user's organizations
privateInclude private datasets
sort_byupdated / created / name
sort_orderasc / desc
include_facetsInclude facet information
Terminal window
curl "https://your-kukan-site/api/v1/packages?q=population&organization[]=stat-bureau&limit=10"
MethodPathDescriptionAuth
GET/resources/countActive resource countPublic
GET/resources/formatsList used formatsPublic
GET/resources/{id}Resource detailsPublic
GET/resources/{id}/textText content (preview-size limited)Public
GET/resources/{id}/downloadDownload file (302 redirect for external URLs)Public
GET/resources/{id}/previewServer-proxied preview (Range supported)Public
GET/resources/{id}/pipeline-statusPipeline job statusPublic
POST/resources/{id}/upload-urlIssue presigned upload URLOrg editor
POST/resources/{id}/uploadServer-proxied uploadOrg editor
POST/resources/{id}/upload-completeNotify completion, enqueue pipelineOrg editor
POST/resources/{id}/run-pipelineManually trigger pipelineOrg editor
PUT/resources/{id}Update resource (full replacement; extras is system-managed)Org editor
DELETE/resources/{id}Delete resourceOrg editor
MethodPathDescriptionAuth
GET/organizationsList organizationsPublic
POST/organizationsCreate organizationsysadmin
GET/organizations/{nameOrId}Organization detailsPublic
PUT/organizations/{nameOrId}Update organization (full replacement)Org admin
DELETE/organizations/{nameOrId}Soft-delete organizationOrg admin
POST/organizations/{nameOrId}/restoreRestore soft-deleted organizationsysadmin
POST/organizations/{nameOrId}/purgePermanently delete soft-deleted organization (async via SQS)sysadmin
GET/organizations/{nameOrId}/membersList membersOrg member
POST/organizations/{nameOrId}/membersAdd member / change roleOrg admin
DELETE/organizations/{nameOrId}/members/{userId}Remove memberOrg admin

Member roles are one of admin / editor / member.

MethodPathDescriptionAuth
GET/groupsList categoriesPublic
POST/groupsCreate categorysysadmin
GET/groups/{nameOrId}Category detailsPublic
PUT/groups/{nameOrId}Update category (full replacement)Category admin
DELETE/groups/{nameOrId}Delete categoryCategory admin
POST/groups/{nameOrId}/restoreRestore soft-deleted categorysysadmin
POST/groups/{nameOrId}/purgePermanently delete soft-deleted categorysysadmin
GET/groups/{nameOrId}/membersList membersCategory member
POST/groups/{nameOrId}/membersAdd member / change roleCategory admin
DELETE/groups/{nameOrId}/members/{userId}Remove memberCategory admin
MethodPathDescriptionAuth
GET/tagsList tagsPublic
GET/tags/{id}Tag detailsPublic
MethodPathDescriptionAuth
GET/searchFull-text search (q required)Public

Query parameters: q, offset, limit (1-100), organization[], tags[], sort_by, sort_order

MethodPathDescriptionAuth
GET/users/meCurrent user infoAuth
GET/users/me/organizationsUser's organizationsAuth
GET/usersSearch users (for member management)Auth
MethodPathDescriptionAuth
POST/api-tokensCreate tokenAuth
GET/api-tokensList own tokensAuth
DELETE/api-tokens/{id}Revoke tokenAuth

All sysadmin only.

MethodPathDescription
GET/admin/search/statsSearch index statistics (doc count, size, DB counts)
GET/admin/search/doc/{index}/{id}Get index document (index: packages / resources / contents)
GET/admin/search/browse/{index}Browse index documents (pagination, search)
POST/admin/reindex-metadataRebuild search index (async via SQS)
POST/admin/jobs/enqueue-allEnqueue pipeline for all resources
GET/admin/jobs/statsPipeline job statistics
GET/admin/jobsList pipeline jobs
DELETE/admin/dataDelete all data (preserves users)
GET/admin/health/statsHealth check statistics
GET/admin/healthHealth check results
GET/admin/users/statsUser statistics
GET/admin/usersList users
POST/admin/usersCreate user
PATCH/admin/users/{userId}Update user
DELETE/admin/users/{userId}Soft-delete user (revokes sessions/tokens)
POST/admin/users/{userId}/restoreRestore user
POST/admin/users/{userId}/purgePermanently delete user
MethodPathDescriptionAuth
GET/api/healthHealth checkPublic
GET/api/v1/site/settingsSite settings (registration etc.)Public