POST
/api/v1/workspaces/{workspace}/services Creates a new data source service in a workspace.
Operation ID: createService
Authentication
Use one of the following authentication options. Permissions and workspace scope still apply. See authentication and access control.
-
Authorization: Bearer YOUR_ACCESS_TOKEN -
X-API-Key: YOUR_API_KEY
Parameters
-
workspacepath required -
Workspace ID
string
Request body
Required
Service to create
Content type application/json
object
-
cache_settingsServiceCacheSettings ↗ -
connection_infoConnectionInfo ↗ required -
enabledboolean -
namestring required -
typestring required -
- Allowed values
-
["postgis","duckdb","geoparquet","vectorfile","rasterfile","raster_mosaic"]
Responses
201 Created service
Content type application/json
400 Bad Request
Content type application/json
401 Unauthorized
Content type application/json
403 Forbidden
Content type application/json
413 Request body exceeds the configured limit
Content type application/json
426 HTTPS required
Content type application/json
429 Request rate exceeded
Content type application/json
503 Service temporarily unavailable
Content type application/json
OpenAPI operation definition
{
"description": "Creates a new data source service in a workspace.",
"operationId": "createService",
"parameters": [
{
"description": "Workspace ID",
"in": "path",
"name": "workspace",
"required": true,
"schema": {
"type": "string"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"properties": {
"cache_settings": {
"$ref": "#/components/schemas/ServiceCacheSettings"
},
"connection_info": {
"$ref": "#/components/schemas/ConnectionInfo"
},
"enabled": {
"type": "boolean"
},
"name": {
"type": "string"
},
"type": {
"enum": [
"postgis",
"duckdb",
"geoparquet",
"vectorfile",
"rasterfile",
"raster_mosaic"
],
"type": "string"
}
},
"required": [
"name",
"type",
"connection_info"
],
"type": "object"
}
}
},
"description": "Service to create",
"required": true
},
"responses": {
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Service"
}
}
},
"description": "Created service"
},
"400": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad Request"
},
"401": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Unauthorized"
},
"403": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Forbidden"
},
"413": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Request body exceeds the configured limit"
},
"426": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "HTTPS required"
},
"429": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Request rate exceeded"
},
"503": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Service temporarily unavailable"
}
},
"summary": "Create service",
"tags": [
"Services"
]
}