Skip to main content
POST
/
project-keys
Create Project Key
curl --request POST \
  --url https://api.streamkap.com/project-keys \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "description": "<string>",
  "role_ids": [
    "<string>"
  ],
  "permission_ids": [
    "<string>"
  ],
  "kafka_config": {
    "username": "<string>",
    "password": "<string>",
    "whitelist_ips": "<string>",
    "kafka_acls": [
      {
        "topic_name": "<string>",
        "operation": "<string>",
        "resource_pattern_type": "<string>",
        "resource": "TOPIC"
      }
    ],
    "is_create_schema_registry": false
  },
  "tool_profile": "full",
  "allowed_tools": [
    "<string>"
  ],
  "blocked_tools": [
    "<string>"
  ]
}
'
{
  "project_key_id": "<string>",
  "project": {},
  "created_at": "2023-11-07T05:31:56Z",
  "type": "streamkap_project_key",
  "api": {
    "client_id": "<string>",
    "client_secret": "<string>",
    "token_endpoint": "<string>",
    "api_url": "<string>",
    "roles": [
      "<string>"
    ]
  },
  "kafka": {
    "username": "<string>",
    "password": "<string>",
    "bootstrap_servers": "<string>",
    "security_protocol": "SASL_SSL",
    "sasl_mechanism": "PLAIN",
    "schema_registry_url": "<string>"
  },
  "kafka_acls": [
    {}
  ],
  "tool_profile": "full",
  "allowed_tools": [
    "<string>"
  ],
  "blocked_tools": [
    "<string>"
  ],
  "created_by": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Request body for creating a Project Key.

name
string
required

Human-readable name for this Project Key

Required string length: 1 - 100
description
string | null

Optional description (HTML sanitized)

role_ids
string[] | null

Role IDs to assign. Mutually exclusive with permission_ids.

Minimum array length: 1
permission_ids
string[] | null

Permission IDs to assign directly. Mutually exclusive with role_ids.

Minimum array length: 1
kafka_config
ProjectKeyKafkaConfig · object

Kafka credentials and ACL config. Omit for API-only key.

tool_profile
enum<string> | null

MCP tool profile (full, read-only, agent-operator, infra-admin)

Available options:
full,
read-only,
agent-operator,
infra-admin
allowed_tools
string[] | null

MCP tool whitelist. If set, overrides profile and block list.

blocked_tools
string[] | null

MCP tool blacklist. Removes tools even if profile allows them.

Response

Successful Response

The downloadable .json credential file returned at creation time.

project_key_id
string
required
project
Project · object
required
created_at
string<date-time>
required
type
string
default:streamkap_project_key
api
ProjectKeyApiCredentials · object

API credential section of the credential file.

kafka
ProjectKeyKafkaCredentials · object

Kafka credential section of the credential file.

kafka_acls
Kafka Acls · object[]
tool_profile
enum<string> | null
Available options:
full,
read-only,
agent-operator,
infra-admin
allowed_tools
string[] | null
blocked_tools
string[] | null
created_by
string | null