import json
import os
from parable_types_web_api import MintIngestTokenInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = MintIngestTokenInput.model_validate(
json.loads("{\"tenantConnectorTapId\":\"example\"}"),
)
result = sdk.ingest_tokens.mint_ingest_token(input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.MintIngestTokenInput
if err := json.Unmarshal([]byte(`{"tenantConnectorTapId":"example"}`), &input); err != nil {
return err
}
result, err := sdk.IngestTokensNamespace.MintIngestToken(ctx, input){
"data": {
"endpointUrl": "<string>",
"ingestToken": {
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"prefix": "<string>",
"tenantConnectorTapId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"lastUsedAt": "2023-11-07T05:31:56Z",
"revokedAt": "2023-11-07T05:31:56Z",
"rotatedAt": "2023-11-07T05:31:56Z"
},
"token": "<string>"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Create an ingestion token
Creates the ingestion token of one Tap in this Workspace that receives data sent to Parable. The response holds the token and the endpoint URL that carries it. They are returned once only, so store them at once. A Tap has one live token at a time. To replace it, rotate it. Requires permission to change the Workspace’s Taps.
import json
import os
from parable_types_web_api import MintIngestTokenInput
from parable_web_api_sdk import ClientConfig, WebApiSDK
sdk = WebApiSDK(
ClientConfig(
base_url=os.environ["PARABLE_API_URL"],
auth_token=os.environ["PARABLE_API_TOKEN"],
default_headers={"X-Tenant": os.environ["PARABLE_WORKSPACE"]},
)
)
input_data = MintIngestTokenInput.model_validate(
json.loads("{\"tenantConnectorTapId\":\"example\"}"),
)
result = sdk.ingest_tokens.mint_ingest_token(input_data)sdk, err := webapisdk.New(webapisdk.SDKConfig{
BaseURL: os.Getenv("PARABLE_API_URL"),
Auth: &webapisdk.AuthConfig{Token: os.Getenv("PARABLE_API_TOKEN")},
RequestInterceptor: func(ctx context.Context, req *http.Request) error {
req.Header.Set("X-Tenant", os.Getenv("PARABLE_WORKSPACE"))
return nil
},
})
if err != nil {
return err
}
var input webapitypes.MintIngestTokenInput
if err := json.Unmarshal([]byte(`{"tenantConnectorTapId":"example"}`), &input); err != nil {
return err
}
result, err := sdk.IngestTokensNamespace.MintIngestToken(ctx, input){
"data": {
"endpointUrl": "<string>",
"ingestToken": {
"createdAt": "2023-11-07T05:31:56Z",
"id": "<string>",
"prefix": "<string>",
"tenantConnectorTapId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"expiresAt": "2023-11-07T05:31:56Z",
"lastUsedAt": "2023-11-07T05:31:56Z",
"revokedAt": "2023-11-07T05:31:56Z",
"rotatedAt": "2023-11-07T05:31:56Z"
},
"token": "<string>"
},
"meta": {
"requestId": "<string>",
"totalCount": 123
},
"links": {
"first": "<string>",
"last": "<string>",
"next": "<string>",
"prev": "<string>"
}
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}{
"detail": "<string>",
"status": 400,
"title": "Bad Request",
"type": "about:blank",
"code": "WA-VL-001",
"details": "<unknown>",
"errors": "<unknown>",
"requestId": "<string>"
}Access
This operation needs a Parable token. An MCP token cannot call it. See Authentication for the kinds of token. Your roles must granttenant.connectors.taps.write.
Errors
WA-IGT-002: The Tap is not in this Workspace. Choose a Tap from the selected Workspace.WA-IGT-003: The Tap already has a live ingestion token. Rotate the live token instead.
Authorizations
A personal access token, which starts with pat_. A Parable token can call each operation that the roles of its owner allow. An MCP token can call only the read operations that are open to agents. A SQL token does not work on this API.
Headers
Workspace slug. Overrides subdomain-based workspace resolution when provided.
"acme"
Optional request correlation ID echoed back in the response.
"550e8400-e29b-41d4-a716-446655440000"
Body
Input for minting a new ingest token. The tap must belong to the calling workspace; the service layer enforces this before minting.
The collector provider connection this token routes to.
^([0-9A-Za-z]{1,22}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$Response
Successful response
Result of mintIngestToken and rotateIngestToken. The plaintext token is
returned exactly once and is irrecoverable afterwards — clients must surface
it (and the endpointUrl embedding it) to the user immediately and never
re-fetch.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes