{"info":{"title":"Tedix API","version":"1.0.0","description":"Multi-tenant AI app platform API. Build AI-powered apps by mapping your API endpoints to MCP tools with pre-built widget layouts.","contact":{"name":"Tedix Support","url":"https://tedix.dev"}},"servers":[{"url":"https://api.tedix.dev/v1","description":"Production"},{"url":"http://localhost:8787/v1","description":"Local Development"}],"externalDocs":{"description":"Tedix API reference","url":"https://api.tedix.dev/docs"},"openapi":"3.1.2","components":{"schemas":{"UndefinedError":{"type":"object","properties":{"defined":{"const":false},"inferable":{"type":"boolean"},"code":{"type":"string"},"status":{"type":"number"},"message":{"type":"string"},"data":{}},"required":["defined","inferable","code","status","message"]},"Unauthorized":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"UNAUTHORIZED"},"status":{"const":401},"message":{"type":"string"},"data":{}},"required":["defined","inferable","code","status","message"]},"Forbidden":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"FORBIDDEN"},"status":{"const":403},"message":{"type":"string"},"data":{}},"required":["defined","inferable","code","status","message"]},"NotFound":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"NOT_FOUND"},"status":{"const":404},"message":{"type":"string"},"data":{}},"required":["defined","inferable","code","status","message"]},"BadRequest":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"BAD_REQUEST"},"status":{"const":400},"message":{"type":"string"},"data":{"type":"object","properties":{"details":{"type":"string"}},"additionalProperties":false}},"required":["defined","inferable","code","status","message"]},"TooManyRequests":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"TOO_MANY_REQUESTS"},"status":{"const":429},"message":{"type":"string"},"data":{"type":"object","properties":{"retryAfter":{"type":"number"}},"additionalProperties":false}},"required":["defined","inferable","code","status","message"]},"InternalServerError":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"INTERNAL_SERVER_ERROR"},"status":{"const":500},"message":{"type":"string"},"data":{}},"required":["defined","inferable","code","status","message"]},"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}}]},"ServiceUnavailable":{"type":"object","properties":{"defined":{"const":true},"inferable":{"type":"boolean"},"code":{"const":"SERVICE_UNAVAILABLE"},"status":{"const":503},"message":{"type":"string"},"data":{"description":"Present for embedded-session availability failures; absent for legacy Tedi procedures that share this router-level error code.","type":"object","properties":{"reason":{"type":"string","enum":["capacity_unavailable","workspace_unavailable","worker_unavailable"]},"retryable":{"type":"boolean"}},"required":["reason","retryable"],"additionalProperties":false}},"required":["defined","inferable","code","status","message"]}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Descope JWT token (user or M2M)"},"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Organization-scoped API key (sk_ prefix)"},"tediJwt":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"Descope tedi JWT (container → API, exchanged from access key)"}}},"paths":{"/billing/checkout":{"post":{"operationId":"billing.createCheckout","summary":"Create a subscription checkout session","description":"Create an idempotent Stripe-hosted Checkout session for the authenticated organization and selected plan and billing interval.","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tier":{"type":"string","enum":["growth","business","enterprise"]},"interval":{"default":"month","type":"string","enum":["month","year"]},"successUrl":{"description":"Optional caller return URL; defaults to the canonical OS billing settings success state.","type":"string","format":"uri"},"cancelUrl":{"description":"Optional caller return URL; defaults to the canonical OS billing settings cancellation state.","type":"string","format":"uri"}},"required":["tier"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"checkoutUrl":{"type":"string","format":"uri"},"sessionId":{"type":"string"},"stripeEnvironment":{"type":"string","enum":["test","live"]}},"required":["checkoutUrl","sessionId","stripeEnvironment"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/billing/inference-capacity/checkout":{"post":{"operationId":"billing.createInferenceCapacityCheckout","summary":"Create an inference capacity checkout session","description":"Create an idempotent one-time Stripe Checkout session for a catalog capacity pack that expires at the next UTC midnight.","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"packKey":{"type":"string","minLength":1,"maxLength":100},"successUrl":{"description":"Optional caller return URL; defaults to the canonical OS billing settings success state.","type":"string","format":"uri"},"cancelUrl":{"description":"Optional caller return URL; defaults to the canonical OS billing settings cancellation state.","type":"string","format":"uri"}},"required":["packKey"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"checkoutUrl":{"type":"string","format":"uri"},"sessionId":{"type":"string"},"stripeEnvironment":{"type":"string","enum":["test","live"]}},"required":["checkoutUrl","sessionId","stripeEnvironment"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/billing/inference-capacity/sponsorships":{"get":{"operationId":"billing.listProviderCapacitySponsorships","summary":"List provider capacity sponsorships","description":"List only the authenticated provider organization's embedded installations and their automatic inference-capacity policies.","tags":["billing"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"installationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"providerAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"externalTenantId":{"type":"string"},"customerOrganizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"policy":{"anyOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"budgetRevision":{"type":"integer","exclusiveMinimum":0,"maximum":1000000},"maxTransfersPerBudgetDay":{"type":"integer","exclusiveMinimum":0,"maximum":100},"lowWatermarkTokens":{"type":"integer","minimum":0,"maximum":1000000000},"lowWatermarkSpendMicros":{"type":"integer","minimum":0,"maximum":1000000000000},"transferTokens":{"type":"integer","minimum":0,"maximum":1000000000},"transferSpendMicros":{"type":"integer","minimum":0,"maximum":1000000000000}},"required":["enabled","budgetRevision","maxTransfersPerBudgetDay","lowWatermarkTokens","lowWatermarkSpendMicros","transferTokens","transferSpendMicros"],"additionalProperties":false},{"type":"null"}],"description":"Null until the provider organization explicitly enables or disables sponsorship for this installation."},"readiness":{"type":"object","properties":{"budgetDay":{"type":"string"},"status":{"type":"string","enum":["disabled","customer_funded","ready","allowance_exhausted","provider_capacity_insufficient"]},"transfersUsed":{"type":"integer","minimum":0,"maximum":9007199254740991},"transfersRemaining":{"type":"integer","minimum":0,"maximum":9007199254740991},"resetsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$","description":"UTC boundary when daily provider capacity resets."}},"required":["budgetDay","status","transfersUsed","transfersRemaining","resetsAt"],"additionalProperties":false,"description":"Current UTC-day readiness. A configured policy is not necessarily funded for another transfer."}},"required":["installationId","providerAppId","externalTenantId","customerOrganizationId","policy","readiness"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/billing/inference-capacity/sponsorships/{installationId}":{"put":{"operationId":"billing.setProviderCapacitySponsorship","summary":"Configure provider capacity sponsorship","description":"Configure a bounded automatic allowance for one embedded installation owned by the authenticated provider organization. Increment budgetRevision to reset the installation allowance without deleting prior usage or transfers. The caller cannot select or replace the customer organization.","tags":["billing"],"parameters":[{"in":"path","required":true,"name":"installationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"policy":{"type":"object","properties":{"enabled":{"type":"boolean"},"budgetRevision":{"type":"integer","exclusiveMinimum":0,"maximum":1000000},"maxTransfersPerBudgetDay":{"type":"integer","exclusiveMinimum":0,"maximum":100},"lowWatermarkTokens":{"type":"integer","minimum":0,"maximum":1000000000},"lowWatermarkSpendMicros":{"type":"integer","minimum":0,"maximum":1000000000000},"transferTokens":{"type":"integer","minimum":0,"maximum":1000000000},"transferSpendMicros":{"type":"integer","minimum":0,"maximum":1000000000000}},"required":["enabled","budgetRevision","maxTransfersPerBudgetDay","lowWatermarkTokens","lowWatermarkSpendMicros","transferTokens","transferSpendMicros"]}},"required":["policy"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"installationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"providerAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"externalTenantId":{"type":"string"},"customerOrganizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"policy":{"anyOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"budgetRevision":{"type":"integer","exclusiveMinimum":0,"maximum":1000000},"maxTransfersPerBudgetDay":{"type":"integer","exclusiveMinimum":0,"maximum":100},"lowWatermarkTokens":{"type":"integer","minimum":0,"maximum":1000000000},"lowWatermarkSpendMicros":{"type":"integer","minimum":0,"maximum":1000000000000},"transferTokens":{"type":"integer","minimum":0,"maximum":1000000000},"transferSpendMicros":{"type":"integer","minimum":0,"maximum":1000000000000}},"required":["enabled","budgetRevision","maxTransfersPerBudgetDay","lowWatermarkTokens","lowWatermarkSpendMicros","transferTokens","transferSpendMicros"],"additionalProperties":false},{"type":"null"}],"description":"Null until the provider organization explicitly enables or disables sponsorship for this installation."}},"required":["installationId","providerAppId","externalTenantId","customerOrganizationId","policy"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/billing/portal":{"post":{"operationId":"billing.createPortal","summary":"Create a billing portal session","description":"Create a Stripe-hosted Customer Portal session for the authenticated organization to manage its subscription and payment details.","tags":["billing"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"returnUrl":{"type":"string","format":"uri"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"portalUrl":{"type":"string","format":"uri"},"stripeEnvironment":{"type":"string","enum":["test","live"]}},"required":["portalUrl","stripeEnvironment"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/billing/plans":{"get":{"operationId":"billing.listPlans","summary":"List available billing plans","description":"List the active Growth, Business, and Enterprise plan versions with their prices, token allowances, overage rates, and operating limits.","tags":["billing"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"stripeEnvironment":{"type":"string","enum":["test","live"]},"plans":{"type":"array","items":{"type":"object","properties":{"planKey":{"type":"string","enum":["growth","business","enterprise"]},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"name":{"type":"string"},"currency":{"type":"string"},"monthlyPriceMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"annualPriceMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"includedMonthlyTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overageUnitTokens":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"overageUnitPriceMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"maxTedis":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCronJobsPerTedi":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxIterationsPerTask":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["planKey","version","name","currency","monthlyPriceMicros","annualPriceMicros","includedMonthlyTokens","overageUnitTokens","overageUnitPriceMicros","maxTedis","maxCronJobsPerTedi","maxIterationsPerTask"],"additionalProperties":false}}},"required":["stripeEnvironment","plans"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/billing/overview":{"get":{"operationId":"billing.getOverview","summary":"Get the billing overview","description":"Return the authenticated organization's current entitlement, balance, usage-period totals, plan limits, and SEO service-credit state.","tags":["billing"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"stripeEnvironment":{"type":"string","enum":["test","live"]},"snapshot":{"type":"object","properties":{"status":{"type":"string","enum":["trial","active","past_due","cancelled","suspended"]},"billingMode":{"type":"string","enum":["trial","stripe","invoice","internal"]},"planKey":{"type":"string","enum":["starter","growth","business","enterprise"]},"planVersion":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"periodStart":{"type":"string"},"periodEnd":{"type":"string"},"includedTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"usedTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reservedTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"remainingIncludedTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"creditBalanceMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"reservedChargeMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"availableCreditMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"customerChargeMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"hardSpendLimitMicros":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"allowOverage":{"type":"boolean"},"stripeCustomerId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","billingMode","planKey","planVersion","periodStart","periodEnd","includedTokens","usedTokens","reservedTokens","remainingIncludedTokens","creditBalanceMicros","reservedChargeMicros","availableCreditMicros","customerChargeMicros","hardSpendLimitMicros","allowOverage","stripeCustomerId"],"additionalProperties":false},"plan":{"type":"object","properties":{"name":{"type":"string"},"currency":{"type":"string"},"monthlyPriceMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"annualPriceMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"includedMonthlyCreditMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overageUnitTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"overageUnitPriceMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxTedis":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxCronJobsPerTedi":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"maxIterationsPerTask":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"defaultDailyTokenLimit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"defaultDailyMessageLimit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["name","currency","monthlyPriceMicros","annualPriceMicros","includedMonthlyCreditMicros","overageUnitTokens","overageUnitPriceMicros","maxTedis","maxCronJobsPerTedi","maxIterationsPerTask","defaultDailyTokenLimit","defaultDailyMessageLimit"],"additionalProperties":false},"period":{"anyOf":[{"type":"object","properties":{"usedInputTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"usedOutputTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"meteredOverageTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"providerCostMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"customerChargeMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"creditAppliedMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["usedInputTokens","usedOutputTokens","meteredOverageTokens","providerCostMicros","customerChargeMicros","creditAppliedMicros"],"additionalProperties":false},{"type":"null"}]},"inferenceCapacity":{"type":"object","properties":{"available":{"type":"boolean"},"blockingReason":{"anyOf":[{"type":"string","enum":["subscription_inactive","monthly_allowance_exhausted","payment_required","inference_capacity_exhausted"]},{"type":"null"}],"description":"Null when every billing and inference-admission gate is open"},"unblockAction":{"type":"string","enum":["none","top_up","upgrade","manage_payment"]},"budgetDay":{"type":"string"},"baseDailyTokenLimit":{"type":"integer","minimum":0,"maximum":9007199254740991},"baseDailySpendLimitMicros":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Null when no organization daily spend ceiling is configured"},"allocatedTokens":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Net active ledger adjustment; negative after sponsor transfers or refunds"},"allocatedSpendCapacityMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"description":"Net active spend-capacity adjustment; negative after sponsor transfers or refunds"},"usedTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"usedSpendMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"remainingTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"remainingSpendMicros":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Null when daily spend capacity is unlimited"},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"packs":{"type":"array","items":{"type":"object","properties":{"packKey":{"type":"string","minLength":1,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":200},"tokens":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"spendCapacityMicros":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"priceMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["packKey","name","tokens","spendCapacityMicros","priceMicros","currency"],"additionalProperties":false}},"allocations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"packVersionId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null for a non-catalog adjustment"},"packKey":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null for a non-catalog adjustment"},"packVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}],"description":"Null for a non-catalog adjustment"},"packName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null for a non-catalog adjustment"},"budgetDay":{"type":"string"},"tokenAmount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"spendAmountMicros":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sourceType":{"type":"string"},"sourceRef":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null when the capacity source has no provider reference"},"checkoutSessionId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null for entries not created by Stripe Checkout"},"paymentIntentId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null when Stripe did not issue a payment intent"},"stripeEnvironment":{"type":"string","enum":["test","live"]},"expiresAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"createdAt":{"type":"string"},"state":{"type":"string","enum":["active","expired","compensating"]}},"required":["id","packVersionId","packKey","packVersion","packName","budgetDay","tokenAmount","spendAmountMicros","sourceType","sourceRef","checkoutSessionId","paymentIntentId","stripeEnvironment","expiresAt","createdAt","state"],"additionalProperties":false}},"tediOverflow":{"type":"array","items":{"type":"object","properties":{"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"displayName":{"type":"string"},"usedTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"usedSpendMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"baseTokenLimit":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Null when the tedi has no finite token ceiling"},"baseSpendLimitMicros":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}],"description":"Null when the tedi has no finite spend ceiling"},"overflowTokens":{"type":"integer","minimum":0,"maximum":9007199254740991},"overflowSpendMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["tediId","displayName","usedTokens","usedSpendMicros","baseTokenLimit","baseSpendLimitMicros","overflowTokens","overflowSpendMicros"],"additionalProperties":false}}},"required":["available","blockingReason","unblockAction","budgetDay","baseDailyTokenLimit","baseDailySpendLimitMicros","allocatedTokens","allocatedSpendCapacityMicros","usedTokens","usedSpendMicros","remainingTokens","remainingSpendMicros","expiresAt","packs","allocations","tediOverflow"],"additionalProperties":false},"serviceCredits":{"type":"object","properties":{"seo":{"anyOf":[{"type":"object","properties":{"serviceKey":{"type":"string","const":"seo"},"status":{"type":"string","enum":["trial","active","past_due","cancelled","suspended"]},"planVersionId":{"type":"string"},"periodStart":{"type":"string"},"periodEnd":{"type":"string"},"includedCredits":{"type":"integer","minimum":0,"maximum":9007199254740991},"grantedCredits":{"type":"integer","minimum":0,"maximum":9007199254740991},"usedCredits":{"type":"integer","minimum":0,"maximum":9007199254740991},"reservedCredits":{"type":"integer","minimum":0,"maximum":9007199254740991},"availableCredits":{"type":"integer","minimum":0,"maximum":9007199254740991},"enabled":{"type":"boolean"},"monthlyCreditLimit":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"perTediMonthlyLimit":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"monthlyProviderCostLimitMicros":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"providerCostMicros":{"type":"integer","minimum":0,"maximum":9007199254740991},"reservedProviderCostMicros":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["serviceKey","status","planVersionId","periodStart","periodEnd","includedCredits","grantedCredits","usedCredits","reservedCredits","availableCredits","enabled","monthlyCreditLimit","perTediMonthlyLimit","monthlyProviderCostLimitMicros","providerCostMicros","reservedProviderCostMicros"],"additionalProperties":false},{"type":"null"}]}},"required":["seo"],"additionalProperties":false}},"required":["stripeEnvironment","snapshot","plan","period","inferenceCapacity","serviceCredits"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/cli-workspace/{slug}":{"get":{"operationId":"organizations.resolveCliWorkspace","summary":"Resolve an organization CLI workspace","description":"Resolve an organization slug to its public unified MCP gateway for first-run CLI OAuth login.","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"slug","schema":{"type":"string","minLength":1,"maxLength":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"gatewayUrl":{"type":"string","format":"uri"}},"required":["slug","name","gatewayUrl"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/mine":{"get":{"operationId":"organizations.listMine","summary":"List my organizations","description":"List all organizations the current user is a member of","tags":["organizations"],"parameters":[{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"activeOnly","schema":{"default":true,"type":"boolean"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"member":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false},"organizationId":{"type":"string"},"organizationName":{"type":"string"},"organizationSlug":{"type":"string"},"organizationLogoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"organizationType":{"type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"tediCount":{"type":"number"}},"required":["member","organizationId","organizationName","organizationSlug","organizationLogoUrl","organizationType","descopeTenantId","appsCount","tediCount"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/mine/all":{"get":{"operationId":"organizations.listAllMine","summary":"List all my organizations (D1 membership authority)","description":"List every organization the current user is a member of in D1, regardless of the token's tenant claim, with each org's resolved unified MCP gateway URL.","tags":["organizations"],"parameters":[{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"activeOnly","schema":{"default":true,"type":"boolean"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"member":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false},"organizationId":{"type":"string"},"organizationName":{"type":"string"},"organizationSlug":{"type":"string"},"organizationLogoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"organizationType":{"type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"tediCount":{"type":"number"},"mcpGatewaySlug":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpGatewayUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["member","organizationId","organizationName","organizationSlug","organizationLogoUrl","organizationType","descopeTenantId","appsCount","tediCount","mcpGatewaySlug","mcpGatewayUrl"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}":{"get":{"operationId":"organizations.get","summary":"Get organization by ID","description":"Get detailed information about a specific organization","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"type":{"default":"organization","type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"features":{"anyOf":[{"type":"object","properties":{"maxApps":{"type":"number"},"maxTeamMembers":{"type":"number"},"customDomain":{"type":"boolean"},"sso":{"type":"boolean"},"apiAccess":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"os":{"description":"Whether the organization is provisioned on its canonical {slug}.os.tedix.dev origin.","type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}},"additionalProperties":false}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}},"additionalProperties":false},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"],"additionalProperties":false}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"],"additionalProperties":false},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"],"additionalProperties":false},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"],"additionalProperties":false}},"required":["callable","name","description","inputSchema","annotations"],"additionalProperties":false}}},"required":["id","match","tools"],"additionalProperties":false}}},"required":["version","routes"],"additionalProperties":false}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"],"additionalProperties":false}},"additionalProperties":false},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","type","descopeTenantId","logoUrl","description","appsCount","features","metadata","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"patch":{"operationId":"organizations.update","summary":"Update organization","description":"Update an existing organization","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"slug":{"type":"string","minLength":1,"maxLength":100},"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"metadata":{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}}}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}}},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"]}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"]},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"]},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"]}},"required":["callable","name","description","inputSchema","annotations"]}}},"required":["id","match","tools"]}}},"required":["version","routes"]}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"]}}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"type":{"default":"organization","type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"features":{"anyOf":[{"type":"object","properties":{"maxApps":{"type":"number"},"maxTeamMembers":{"type":"number"},"customDomain":{"type":"boolean"},"sso":{"type":"boolean"},"apiAccess":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"os":{"description":"Whether the organization is provisioned on its canonical {slug}.os.tedix.dev origin.","type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}},"additionalProperties":false}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}},"additionalProperties":false},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"],"additionalProperties":false}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"],"additionalProperties":false},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"],"additionalProperties":false},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"],"additionalProperties":false}},"required":["callable","name","description","inputSchema","annotations"],"additionalProperties":false}}},"required":["id","match","tools"],"additionalProperties":false}}},"required":["version","routes"],"additionalProperties":false}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"],"additionalProperties":false}},"additionalProperties":false},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","type","descopeTenantId","logoUrl","description","appsCount","features","metadata","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"delete":{"operationId":"organizations.delete","summary":"Retire organization","description":"Retire an organization and its tedis without destroying customer-owned memory. External access is removed. Requires org cancelled >= grace period; force=true is restricted to platform-admin principals.","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"force":{"default":false,"type":"boolean"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"}},"required":["success"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/slug/{slug}":{"get":{"operationId":"organizations.getBySlug","summary":"Get organization by slug","description":"Get organization information by its unique slug","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"slug","schema":{"type":"string","minLength":1,"maxLength":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"type":{"default":"organization","type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"features":{"anyOf":[{"type":"object","properties":{"maxApps":{"type":"number"},"maxTeamMembers":{"type":"number"},"customDomain":{"type":"boolean"},"sso":{"type":"boolean"},"apiAccess":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"os":{"description":"Whether the organization is provisioned on its canonical {slug}.os.tedix.dev origin.","type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}},"additionalProperties":false}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}},"additionalProperties":false},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"],"additionalProperties":false}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"],"additionalProperties":false},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"],"additionalProperties":false},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"],"additionalProperties":false}},"required":["callable","name","description","inputSchema","annotations"],"additionalProperties":false}}},"required":["id","match","tools"],"additionalProperties":false}}},"required":["version","routes"],"additionalProperties":false}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"],"additionalProperties":false}},"additionalProperties":false},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","type","descopeTenantId","logoUrl","description","appsCount","features","metadata","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/slug-check/{slug}":{"get":{"operationId":"organizations.isSlugAvailable","summary":"Check slug availability","description":"Check if an organization slug is available for use","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"slug","schema":{"type":"string","minLength":1,"maxLength":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations":{"post":{"operationId":"organizations.create","summary":"Create organization","description":"Create a new organization with a canonical starter billing account.","tags":["organizations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"slug":{"type":"string","minLength":1,"maxLength":100},"logoUrl":{"type":"string","format":"uri"},"description":{"type":"string","maxLength":500},"metadata":{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"foreground":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}}}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}}},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"]}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"]},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"]},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"]}},"required":["callable","name","description","inputSchema","annotations"]}}},"required":["id","match","tools"]}}},"required":["version","routes"]}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"]}}},"ownerEmail":{"description":"Descope email of the human who will own the new org. REQUIRED (together with ownerUserId) for every non-user caller — API key, tedi, or skill workflow. Ignored for a signed-in user, who becomes the owner automatically. A tedi cannot own an org: it must name a human here.","type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"ownerUserId":{"description":"Descope userId of the owner (e.g. 'U39z...'), paired with ownerEmail. REQUIRED alongside ownerEmail for non-user callers; omitting it fails with 'Platform-admin org creation requires ownerEmail + ownerUserId'. Resolve it from the owner's email first if you only have the address.","type":"string"}},"required":["name"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"type":{"default":"organization","type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"features":{"anyOf":[{"type":"object","properties":{"maxApps":{"type":"number"},"maxTeamMembers":{"type":"number"},"customDomain":{"type":"boolean"},"sso":{"type":"boolean"},"apiAccess":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"os":{"description":"Whether the organization is provisioned on its canonical {slug}.os.tedix.dev origin.","type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}},"additionalProperties":false}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}},"additionalProperties":false},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"],"additionalProperties":false}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"],"additionalProperties":false},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"],"additionalProperties":false},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"],"additionalProperties":false}},"required":["callable","name","description","inputSchema","annotations"],"additionalProperties":false}}},"required":["id","match","tools"],"additionalProperties":false}}},"required":["version","routes"],"additionalProperties":false}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"],"additionalProperties":false}},"additionalProperties":false},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","type","descopeTenantId","logoUrl","description","appsCount","features","metadata","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}/cancel":{"post":{"operationId":"organizations.cancel","summary":"Cancel organization (phase 1 of offboarding)","description":"Mark org cancelled — eligible for hard-delete after the grace period (default 14 days). Reversible until delete fires.","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":500}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"type":{"default":"organization","type":"string","enum":["personal","organization"]},"descopeTenantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"appsCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"features":{"anyOf":[{"type":"object","properties":{"maxApps":{"type":"number"},"maxTeamMembers":{"type":"number"},"customDomain":{"type":"boolean"},"sso":{"type":"boolean"},"apiAccess":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"os":{"description":"Whether the organization is provisioned on its canonical {slug}.os.tedix.dev origin.","type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"cancelledAt":{"description":"Absent until phase-one organization cancellation is recorded.","type":"string"},"cancelReason":{"description":"Optional operator rationale; null records an explicit cancellation without a supplied reason.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Absent for live organizations; set when external access is retired without deleting customer memory.","type":"string"},"retiredSlug":{"description":"Canonical tenant slug preserved when retirement renames the live row.","type":"string"},"memoryRetained":{"description":"Retirement receipt confirming the organization and tedi memory rows were retained.","type":"boolean"},"industryVertical":{"type":"string"},"country":{"type":"string"},"timezone":{"type":"string"},"website":{"type":"string"},"contactEmail":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"referralSource":{"type":"string"},"onboardingNotes":{"type":"string"},"osTheme":{"description":"Absent for organizations that never configured OS appearance; null explicitly resets the published profile to the Tedix default","anyOf":[{"type":"object","properties":{"version":{"type":"number","const":1},"light":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"dark":{"type":"object","properties":{"accent":{},"background":{},"foreground":{},"contrast":{"type":"integer","minimum":0,"maximum":100}},"required":["accent","background","foreground","contrast"],"additionalProperties":false},"uiFont":{"type":"string","enum":["tedix","system","serif"]},"codeFont":{"type":"string","enum":["tedix-mono","system-mono"]}},"required":["version","light","dark","uiFont","codeFont"],"additionalProperties":false},{"type":"null"}]},"tediWidget":{"description":"Versioned white-label Tedi widget experience for this provider organization; absent derives neutral defaults from the organization identity.","type":"object","properties":{"version":{"type":"number","const":1},"analyticsEnabled":{"description":"Explicit provider consent to send content-free widget lifecycle and reliability events; absence is disabled.","type":"boolean"},"locale":{"description":"Optional for configurations published before locale support; absence resolves to the neutral English provider default.","type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"title":{"type":"string","minLength":1,"maxLength":80},"subtitle":{"type":"string","minLength":1,"maxLength":160},"product":{"type":"string","minLength":1,"maxLength":100},"assistantLogoUrl":{"description":"Optional assistant logo override.","type":"string","format":"uri"},"assistantLogoUrlDark":{"description":"Optional dark-theme assistant logo override.","type":"string","format":"uri"},"launcherIconUrl":{"description":"Optional launcher icon override.","type":"string","format":"uri"},"launcherIconUrlDark":{"description":"Optional dark-theme launcher icon override.","type":"string","format":"uri"},"accentColor":{"description":"Optional light-theme accent; absence uses the provider default.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accentColorDark":{"description":"Optional dark-theme accent; absence uses the light accent.","type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"themeMode":{"description":"Optional theme authority; absence preserves the host-driven default.","type":"string","enum":["host","system","light","dark"]},"launcherPosition":{"description":"Optional launcher edge; absence preserves bottom-right placement.","type":"string","enum":["bottom-left","bottom-right"]},"horizontalOffset":{"description":"Optional horizontal launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"bottomOffset":{"description":"Optional bottom launcher offset in pixels.","type":"integer","minimum":8,"maximum":120},"zIndex":{"description":"Optional widget stacking order.","type":"integer","minimum":1,"maximum":2147483647},"launcherMode":{"description":"Optional launcher ownership mode; host delegates opening to the embedding page.","type":"string","enum":["default","hidden","host"]},"startMode":{"description":"Optional initial surface; conversation bypasses the widget home.","type":"string","enum":["home","conversation"]},"homeModules":{"description":"Optional ordered widget-home modules; absence preserves the standard home.","maxItems":3,"type":"array","items":{"type":"string","enum":["welcome","attention","recent"]}},"translations":{"description":"Optional locale-keyed copy overrides with exact-then-base fallback.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*$"},"additionalProperties":{"type":"object","properties":{"title":{"description":"Optional localized assistant title.","type":"string","minLength":1,"maxLength":80},"subtitle":{"description":"Optional localized assistant subtitle.","type":"string","minLength":1,"maxLength":160},"welcomeHeading":{"description":"Optional localized home heading.","type":"string","minLength":1,"maxLength":160},"welcomeBody":{"description":"Optional localized home description.","type":"string","minLength":1,"maxLength":320},"conversationStarters":{"description":"Optional localized conversation starters.","maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}}},"additionalProperties":false}},"fullChatPath":{"type":"string","maxLength":500,"pattern":"^\\/(?!\\/)[^\\s]*$"},"conversationStarters":{"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":240}},"webMcpProfile":{"description":"Organization-managed portable route tools projected by signed embedded widget sessions; execution authority remains host- or installation-bound.","type":"object","properties":{"version":{"type":"number","const":1},"routes":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9_-]{0,79}$"},"match":{"type":"object","properties":{"pathname":{"description":"Optional host pathname pattern.","type":"string","maxLength":500,"pattern":"^\\/.*"},"routeKey":{"description":"Optional stable host route identifier.","type":"string","minLength":1,"maxLength":120}},"additionalProperties":false},"tools":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"authority":{"description":"Authority plane used to admit and execute this callable.","type":"string","enum":["host","tedix_tenant"]},"callable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"name":{"type":"string","pattern":"^[A-Za-z0-9_.-]{1,128}$"},"description":{"type":"string","minLength":1,"maxLength":1000},"inputSchema":{"type":"object","properties":{"type":{"type":"string","const":"object"},"properties":{"description":"Optional public tool input fields.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","number","integer","boolean"]},"description":{"description":"Optional agent-facing field guidance.","type":"string","maxLength":500},"enum":{"description":"Optional bounded scalar choices.","maxItems":100,"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]}},"default":{"description":"Optional browser-agent default value.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"minLength":{"description":"Optional string lower bound.","type":"integer","minimum":0,"maximum":9007199254740991},"maxLength":{"description":"Optional string upper bound.","type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"minimum":{"description":"Optional numeric lower bound.","type":"number"},"maximum":{"description":"Optional numeric upper bound.","type":"number"},"pattern":{"description":"Optional string validation pattern.","type":"string","maxLength":300}},"required":["type"],"additionalProperties":false}},"required":{"description":"Optional names of required public fields.","maxItems":50,"type":"array","items":{"type":"string"}},"additionalProperties":{"type":"boolean","const":false}},"required":["type","additionalProperties"],"additionalProperties":false},"bind":{"description":"Optional argument bindings sourced from bounded route context.","type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_]{0,127}$"},"additionalProperties":{"type":"string","pattern":"^\\$(?:route|context)\\.[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"resultFields":{"description":"Optional compact result field projection.","maxItems":40,"type":"array","items":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_.-]{0,127}$"}},"action":{"description":"Required for a write tool: a read-only preparation call, explicit browser confirmation copy, and optional read-only convergence call.","type":"object","properties":{"prepareCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"convergeCallable":{"type":"string","pattern":"^[a-z][a-z0-9_]{1,127}\\.[a-z][a-z0-9_]{1,127}$"},"confirmationTitle":{"type":"string","minLength":1,"maxLength":160},"confirmationLabel":{"type":"string","minLength":1,"maxLength":80},"prepareFields":{"description":"Optional write-argument projection for compatibility with the preparation tool.","maxItems":50,"type":"array","items":{"type":"string"}},"convergeFields":{"description":"Optional write-argument projection for compatibility with the convergence tool.","maxItems":50,"type":"array","items":{"type":"string"}}},"required":["prepareCallable","convergeCallable","confirmationTitle","confirmationLabel"],"additionalProperties":false},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"untrustedContentHint":{"description":"Optional browser hint for provider-authored results.","type":"boolean"}},"required":["readOnlyHint"],"additionalProperties":false}},"required":["callable","name","description","inputSchema","annotations"],"additionalProperties":false}}},"required":["id","match","tools"],"additionalProperties":false}}},"required":["version","routes"],"additionalProperties":false}},"required":["version","title","subtitle","product","fullChatPath","conversationStarters"],"additionalProperties":false}},"additionalProperties":false},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","type","descopeTenantId","logoUrl","description","appsCount","features","metadata","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}/features":{"get":{"operationId":"organizations.getFeatures","summary":"Get organization features","description":"Get the effective features for an organization (including tier defaults)","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"maxApps":{"type":"number"},"maxTeamMembers":{"type":"number"},"customDomain":{"type":"boolean"},"sso":{"type":"boolean"},"apiAccess":{"type":"boolean"},"prioritySupport":{"type":"boolean"},"advancedAnalytics":{"type":"boolean"},"whiteLabel":{"type":"boolean"},"os":{"description":"Whether the organization is provisioned on its canonical {slug}.os.tedix.dev origin.","type":"boolean"}},"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}/can-create-app":{"get":{"operationId":"organizations.canCreateApp","summary":"Check app creation eligibility","description":"Check if the organization can create a new app based on limits","tags":["organizations"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"allowed":{"type":"boolean"},"reason":{"type":"string"}},"required":["allowed"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}/members":{"get":{"operationId":"members.listMembers","summary":"List organization members","description":"List all members of an organization with pagination and filtering","tags":["members"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"query","name":"limit","schema":{"default":100,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"status","schema":{"type":"string","enum":["active","invited","deactivated"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"role","schema":{"type":"string","enum":["owner","admin","member","viewer"]},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}}}}},"/organizations/{organizationId}/members/{memberId}":{"get":{"operationId":"members.getMember","summary":"Get organization member by ID","description":"Get detailed information about a specific organization member","tags":["members"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"memberId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}},"delete":{"operationId":"members.removeMember","summary":"Remove a member from the organization","description":"Remove an organization member (requires admin/owner role, cannot remove owner)","tags":["members"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"memberId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}},"required":["success","message"],"additionalProperties":false}}}}}}},"/organizations/{organizationId}/members/invite":{"post":{"operationId":"members.inviteMember","summary":"Invite a new member to the organization","description":"Send an invitation to a new member (requires admin/owner role)","tags":["members"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"role":{"default":"member","type":"string","enum":["owner","admin","member","viewer"]}},"required":["email"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}}},"/organizations/{organizationId}/members/{memberId}/role":{"patch":{"operationId":"members.updateMemberRole","summary":"Update a member's role","description":"Change the role of an organization member (requires admin/owner role)","tags":["members"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"memberId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["owner","admin","member","viewer"]}},"required":["role"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}}},"/organizations/{organizationId}/members/{memberId}/permissions":{"put":{"operationId":"members.setMemberPermissions","summary":"Set a member's permission overrides","description":"Replace the additive permission grants layered on a member's role. Send the complete desired list; an empty array clears every override. Only permissions the owner role itself holds may be granted, so platform authority can never be delegated here.","tags":["members"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"memberId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"permissions":{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}}},"required":["permissions"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}}},"/organizations/invitations/{memberId}/accept":{"post":{"operationId":"members.acceptInvitation","summary":"Accept a pending invitation","description":"Accept a pending member invitation and link user account","tags":["members"],"parameters":[{"in":"path","required":true,"name":"memberId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"descopeUserId":{"type":"string","minLength":1},"name":{"type":"string"},"avatarUrl":{"type":"string","format":"uri"}},"required":["descopeUserId"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"descopeUserId":{"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatarUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["owner","admin","member","viewer"]},"customPermissions":{"anyOf":[{"type":"array","items":{"type":"string","enum":["apps:create","apps:read","apps:update","apps:delete","tedis:create","tedis:read","tedis:update","tedis:delete","secrets:manage","integrations:manage","api_keys:manage","team:read","team:manage","billing:read","billing:manage","settings:manage","analytics:read","catalog:manage","platform:admin","os:read","os:author","os:run","os:publish","os:approve","os:admin"]}},{"type":"null"}],"description":"Additive permission grants layered on the member's role. Null when the member has no overrides, which is the common case and is stored as SQL NULL rather than an empty array so the column stays cheap for the overwhelming majority of rows. Always reported filtered to what a tenant admin may grant, matching what the API guards honor."},"status":{"anyOf":[{"type":"string","enum":["active","invited","deactivated"]},{"type":"null"}]},"invitedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"invitedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"inviteAcceptedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActiveAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","descopeUserId","email","name","avatarUrl","role","customPermissions","status","invitedAt","invitedBy","inviteAcceptedAt","lastActiveAt","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false}}}}}}},"/apps":{"get":{"operationId":"apps.list","summary":"List apps","description":"List all apps for the current organization with pagination. Platform-admin principals may pass `organizationId` to list any org's apps.","tags":["apps"],"parameters":[{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"organizationId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"domain":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public","private","disabled"]},{"type":"null"}]},"discoveryStatus":{"anyOf":[{"type":"string","enum":["pending","discovered","scraping","scraped","failed"]},{"type":"null"}]},"customMcpDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"appStoreStatus":{"anyOf":[{"type":"string","enum":["draft","pending_verification","pending_review","approved","rejected"]},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","domain","description","logoUrl","visibility","discoveryStatus","customMcpDomain","appStoreStatus","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"post":{"operationId":"apps.create","summary":"Create app","description":"Create a new app for the current organization","tags":["apps"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"description":{"type":"string","maxLength":500},"primaryDomain":{"type":"string","maxLength":253},"logoUrl":{"type":"string","format":"uri"},"visibility":{"default":"private","type":"string","enum":["public","private","disabled"]},"metadata":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"branding":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"colorScheme":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"colors":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"colorsDark":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"homepageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"themeMode":{"anyOf":[{"type":"string","enum":["light","dark","system"]},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}]},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]}}},{"type":"null"}]},"brandingExtractedAt":{"type":"string"},"socialLinks":{"type":"object","properties":{"twitter":{"type":"string"},"linkedin":{"type":"string"},"github":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"youtube":{"type":"string"},"email":{"type":"string"}},"additionalProperties":{}},"capabilities":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"]},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"]},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"]},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"]},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"]},"defaultZoom":{"type":"number"}},"required":["enabled"]},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}}}},"required":["enabled"]},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"mcpConfig":{"type":"object","properties":{"widgetDomain":{"type":"string"},"serverName":{"type":"string"},"serverVersion":{"type":"string"},"corsOrigins":{"type":"array","items":{"type":"string"}},"toolTimeout":{"type":"number"},"widgetCSP":{"type":"object","properties":{"connect_domains":{"type":"array","items":{"type":"string"}},"resource_domains":{"type":"array","items":{"type":"string"}},"frame_domains":{"type":"array","items":{"type":"string"}},"redirect_domains":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"authMode":{"default":"authenticated","type":"string","enum":["public","authenticated","hybrid","proxy-target"]},"connectionLabel":{"type":"string"},"capabilities":{"default":[],"type":"array","items":{"type":"string"}},"descopeResourceId":{"type":"string"},"expectedAudience":{"type":"string"},"protectedResourceMetadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolScopes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"chatgptToolAllowlist":{"type":"array","items":{"type":"string"}},"scopeDescriptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolAuthRequirements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"authRequired":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authRequired"]}},"lastScopesSyncedAt":{"type":"string"},"policyId":{"type":"string"},"enforcePolicies":{"default":false,"type":"boolean"},"scopeSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"strategy":{"default":"descope-api","type":"string","enum":["descope-api","resource-metadata"]},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"}}},"assignmentConfig":{"type":"object","properties":{"mode":{"default":"manual","type":"string","enum":["manual","profile-default"]},"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}}}}}}},"consentConfig":{"type":"object","properties":{"requireConsent":{"default":true,"type":"boolean"},"consentPageUrl":{"type":"string","format":"uri"},"defaultScopes":{"type":"array","items":{"type":"string"}},"sensitiveScopes":{"type":"array","items":{"type":"string"}}}},"clientRegistration":{"type":"object","properties":{"mode":{"default":"cimd","type":"string","enum":["cimd","dcr","pre-registered","disabled"]},"allowedRedirectPatterns":{"type":"array","items":{"type":"string"}},"requirePkce":{"default":true,"type":"boolean"}}},"connectionProviderId":{"type":"string"},"connectionScopes":{"type":"array","items":{"type":"string"}},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label"]}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"]}},"defaultScopes":{"type":"array","items":{"type":"string"}}}},"openApiSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"spec":{"$ref":"#/components/schemas/__schema0"},"specUrl":{"type":"string","format":"uri"},"supplementalSpecUrls":{"maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"baseUrl":{"type":"string","format":"uri"},"namespace":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label"]}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"]}},"defaultScopes":{"type":"array","items":{"type":"string"}}}},"authScopes":{"type":"array","items":{"type":"string"}},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"staticHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"type":"array","items":{"type":"string"}},"includePathPrefixes":{"type":"array","items":{"type":"string"}},"excludePathPrefixes":{"type":"array","items":{"type":"string"}},"stripPathPrefixes":{"type":"array","items":{"type":"string"}},"pathReplacements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"widgetDefaults":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"]}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}}},"widgetOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"]}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}}}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"]}}},"googleDiscoverySync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"services":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"discoveryUrl":{"type":"string","format":"uri"}},"required":["name","version"]}},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"user","type":"string","enum":["tenant","user","hybrid"]},"includeMethodIds":{"type":"array","items":{"type":"string"}},"excludeMethodIds":{"type":"array","items":{"type":"string"}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"]}}},"capturePayloads":{"type":"boolean"},"codeMode":{"type":"boolean"},"codeModeTimeout":{"type":"integer","minimum":5000,"maximum":300000},"codeModeNamespaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"codeModeModules":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serverInstructions":{"type":"string"},"autoAppendSkillInstructions":{"type":"boolean"},"tediPolicy":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"tediId":{"type":"string"},"allowedTools":{"default":[],"type":"array","items":{"type":"string"}},"blockedTools":{"default":[],"type":"array","items":{"type":"string"}},"maxTokens":{"default":4096,"type":"number"},"timeoutMs":{"default":60000,"type":"number"},"allowedDomains":{"type":"array","items":{"type":"string"}}}},"guidanceSkillApps":{"type":"array","items":{"type":"string"}},"publicSkillSlugs":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"aggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"]}},"inactiveAggregateApps":{"description":"Absent until gateway membership settings have been saved by the platform.","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"]}},"aggregateTedis":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"namespace":{"type":"string"},"sessionKey":{"type":"string"},"serverUrl":{"type":"string","format":"uri"},"surface":{"type":"string","enum":["full","collaboration"]},"surfaceRev":{"type":"string"}},"required":["slug"]}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"additionalProperties":{}},"widgetConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"contentToolConfig":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}}},"contentConfig":{"type":"object","properties":{"aiModel":{"type":"string"},"temperature":{"type":"number"},"maxTokens":{"type":"number"},"systemPrompt":{"type":"string"},"syncInterval":{"type":"string","enum":["daily","weekly","monthly","disabled"]}}},"blogConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"hotTheme":{"type":"object","properties":{"enabled":{"type":"boolean"},"cssKey":{"type":"string"},"historyKey":{"type":"string"},"manifestKey":{"type":"string"},"previousRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"string"},"revisionKey":{"type":"string"},"sha256":{"type":"string"},"updatedAt":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicPath":{"type":"string"}}},"blogTitle":{"type":"string"},"blogDescription":{"type":"string"},"defaultTone":{"type":"string","enum":["professional","casual","technical"]},"sitemapEnabled":{"type":"boolean"},"rssEnabled":{"type":"boolean"},"privacyBannerEnabled":{"type":"boolean"},"language":{"type":"string"},"authorUrl":{"type":"string"},"imageGeneration":{"type":"object","properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["photorealistic","illustration","diagram","abstract"]},"prompt":{"type":"string"},"negativePrompt":{"type":"string"},"size":{"type":"string","enum":["1792x1024","1024x1024","1024x1792"]},"model":{"type":"string"}}},"voicePersona":{"type":"object","properties":{"icpProfile":{"type":"string"},"voiceStyle":{"type":"string"},"doList":{"type":"array","items":{"type":"string"}},"dontList":{"type":"array","items":{"type":"string"}},"examplePhrases":{"type":"array","items":{"type":"string"}}}},"companyData":{"type":"object","properties":{"companyName":{"type":"string"},"companyUrl":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"products":{"type":"string"},"targetAudience":{"type":"string"},"tone":{"type":"string"},"painPoints":{"type":"string"},"valuePropositions":{"type":"string"}}},"competitors":{"type":"array","items":{"type":"string"}},"contentStrategy":{"type":"object","properties":{"targetAeoScore":{"type":"number"},"autoPublish":{"type":"boolean"},"maxPostsPerWeek":{"type":"number"},"focusKeywords":{"type":"array","items":{"type":"string"}}}},"locales":{"type":"array","items":{"type":"string"}},"defaultLocale":{"type":"string"},"cmsDomain":{"type":"string"},"authDescopeTenantId":{"type":"string"},"publicPathPrefix":{"type":"string"},"templateSlug":{"type":"string"}}},"publicSiteUrl":{"type":"string"},"extractionConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}}},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}}},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}}}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},"itemImport":{"type":"object","properties":{"lastImportedAt":{"type":"string"},"itemsImported":{"type":"number"},"itemsSaved":{"type":"number"},"method":{"type":"string"},"vectorize":{"type":"object","properties":{"synced":{"type":"number"},"failed":{"type":"number"}}}}}},"additionalProperties":{}}},"required":["name"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public","private","disabled"]},{"type":"null"}]},"discoveryStatus":{"anyOf":[{"type":"string","enum":["pending","discovered","scraping","scraped","failed"]},{"type":"null"}]},"customMcpDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiChallengeToken":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiAppId":{"anyOf":[{"type":"string"},{"type":"null"}]},"appStoreStatus":{"anyOf":[{"type":"string","enum":["draft","pending_verification","pending_review","approved","rejected"]},{"type":"null"}]},"activeConfigVersionId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"latestConfigVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"vertical":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"branding":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"colorScheme":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"colors":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"colorsDark":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"homepageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"themeMode":{"anyOf":[{"type":"string","enum":["light","dark","system"]},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}]},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"brandingExtractedAt":{"type":"string"},"socialLinks":{"type":"object","properties":{"twitter":{"type":"string"},"linkedin":{"type":"string"},"github":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"youtube":{"type":"string"},"email":{"type":"string"}},"additionalProperties":{}},"capabilities":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"],"additionalProperties":false},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"defaultZoom":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}},"additionalProperties":false}},"required":["enabled"],"additionalProperties":false},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"mcpConfig":{"type":"object","properties":{"widgetDomain":{"type":"string"},"serverName":{"type":"string"},"serverVersion":{"type":"string"},"corsOrigins":{"type":"array","items":{"type":"string"}},"toolTimeout":{"type":"number"},"widgetCSP":{"type":"object","properties":{"connect_domains":{"type":"array","items":{"type":"string"}},"resource_domains":{"type":"array","items":{"type":"string"}},"frame_domains":{"type":"array","items":{"type":"string"}},"redirect_domains":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"authMode":{"default":"authenticated","type":"string","enum":["public","authenticated","hybrid","proxy-target"]},"connectionLabel":{"type":"string"},"capabilities":{"default":[],"type":"array","items":{"type":"string"}},"descopeResourceId":{"type":"string"},"expectedAudience":{"type":"string"},"protectedResourceMetadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolScopes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"chatgptToolAllowlist":{"type":"array","items":{"type":"string"}},"scopeDescriptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolAuthRequirements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"authRequired":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authRequired"],"additionalProperties":false}},"lastScopesSyncedAt":{"type":"string"},"policyId":{"type":"string"},"enforcePolicies":{"default":false,"type":"boolean"},"scopeSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"strategy":{"default":"descope-api","type":"string","enum":["descope-api","resource-metadata"]},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"}},"required":["enabled","strategy"],"additionalProperties":false},"assignmentConfig":{"type":"object","properties":{"mode":{"default":"manual","type":"string","enum":["manual","profile-default"]},"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}}},"required":["role"],"additionalProperties":false}}},"required":["mode","role"],"additionalProperties":false},"consentConfig":{"type":"object","properties":{"requireConsent":{"default":true,"type":"boolean"},"consentPageUrl":{"type":"string","format":"uri"},"defaultScopes":{"type":"array","items":{"type":"string"}},"sensitiveScopes":{"type":"array","items":{"type":"string"}}},"required":["requireConsent"],"additionalProperties":false},"clientRegistration":{"type":"object","properties":{"mode":{"default":"cimd","type":"string","enum":["cimd","dcr","pre-registered","disabled"]},"allowedRedirectPatterns":{"type":"array","items":{"type":"string"}},"requirePkce":{"default":true,"type":"boolean"}},"required":["mode","requirePkce"],"additionalProperties":false},"connectionProviderId":{"type":"string"},"connectionScopes":{"type":"array","items":{"type":"string"}},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"openApiSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"spec":{"$ref":"#/components/schemas/__schema0"},"specUrl":{"type":"string","format":"uri"},"supplementalSpecUrls":{"maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"baseUrl":{"type":"string","format":"uri"},"namespace":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"authScopes":{"type":"array","items":{"type":"string"}},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"staticHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"type":"array","items":{"type":"string"}},"includePathPrefixes":{"type":"array","items":{"type":"string"}},"excludePathPrefixes":{"type":"array","items":{"type":"string"}},"stripPathPrefixes":{"type":"array","items":{"type":"string"}},"pathReplacements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"widgetDefaults":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false},"widgetOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"googleDiscoverySync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"services":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"discoveryUrl":{"type":"string","format":"uri"}},"required":["name","version"],"additionalProperties":false}},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"user","type":"string","enum":["tenant","user","hybrid"]},"includeMethodIds":{"type":"array","items":{"type":"string"}},"excludeMethodIds":{"type":"array","items":{"type":"string"}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"capturePayloads":{"type":"boolean"},"codeMode":{"type":"boolean"},"codeModeTimeout":{"type":"integer","minimum":5000,"maximum":300000},"codeModeNamespaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"codeModeModules":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serverInstructions":{"type":"string"},"autoAppendSkillInstructions":{"type":"boolean"},"tediPolicy":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"tediId":{"type":"string"},"allowedTools":{"default":[],"type":"array","items":{"type":"string"}},"blockedTools":{"default":[],"type":"array","items":{"type":"string"}},"maxTokens":{"default":4096,"type":"number"},"timeoutMs":{"default":60000,"type":"number"},"allowedDomains":{"type":"array","items":{"type":"string"}}},"required":["enabled","allowedTools","blockedTools","maxTokens","timeoutMs"],"additionalProperties":false},"guidanceSkillApps":{"type":"array","items":{"type":"string"}},"publicSkillSlugs":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"aggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"inactiveAggregateApps":{"description":"Absent until gateway membership settings have been saved by the platform.","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"aggregateTedis":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"namespace":{"type":"string"},"sessionKey":{"type":"string"},"serverUrl":{"type":"string","format":"uri"},"surface":{"type":"string","enum":["full","collaboration"]},"surfaceRev":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["authMode","capabilities","enforcePolicies"],"additionalProperties":{}},"widgetConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"contentToolConfig":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"contentConfig":{"type":"object","properties":{"aiModel":{"type":"string"},"temperature":{"type":"number"},"maxTokens":{"type":"number"},"systemPrompt":{"type":"string"},"syncInterval":{"type":"string","enum":["daily","weekly","monthly","disabled"]}},"additionalProperties":false},"blogConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"hotTheme":{"type":"object","properties":{"enabled":{"type":"boolean"},"cssKey":{"type":"string"},"historyKey":{"type":"string"},"manifestKey":{"type":"string"},"previousRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"string"},"revisionKey":{"type":"string"},"sha256":{"type":"string"},"updatedAt":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicPath":{"type":"string"}},"additionalProperties":false},"blogTitle":{"type":"string"},"blogDescription":{"type":"string"},"defaultTone":{"type":"string","enum":["professional","casual","technical"]},"sitemapEnabled":{"type":"boolean"},"rssEnabled":{"type":"boolean"},"privacyBannerEnabled":{"type":"boolean"},"language":{"type":"string"},"authorUrl":{"type":"string"},"imageGeneration":{"type":"object","properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["photorealistic","illustration","diagram","abstract"]},"prompt":{"type":"string"},"negativePrompt":{"type":"string"},"size":{"type":"string","enum":["1792x1024","1024x1024","1024x1792"]},"model":{"type":"string"}},"additionalProperties":false},"voicePersona":{"type":"object","properties":{"icpProfile":{"type":"string"},"voiceStyle":{"type":"string"},"doList":{"type":"array","items":{"type":"string"}},"dontList":{"type":"array","items":{"type":"string"}},"examplePhrases":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"companyData":{"type":"object","properties":{"companyName":{"type":"string"},"companyUrl":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"products":{"type":"string"},"targetAudience":{"type":"string"},"tone":{"type":"string"},"painPoints":{"type":"string"},"valuePropositions":{"type":"string"}},"additionalProperties":false},"competitors":{"type":"array","items":{"type":"string"}},"contentStrategy":{"type":"object","properties":{"targetAeoScore":{"type":"number"},"autoPublish":{"type":"boolean"},"maxPostsPerWeek":{"type":"number"},"focusKeywords":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"locales":{"type":"array","items":{"type":"string"}},"defaultLocale":{"type":"string"},"cmsDomain":{"type":"string"},"authDescopeTenantId":{"type":"string"},"publicPathPrefix":{"type":"string"},"templateSlug":{"type":"string"}},"additionalProperties":false},"publicSiteUrl":{"type":"string"},"extractionConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}},"additionalProperties":false},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}},"additionalProperties":false}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},"itemImport":{"type":"object","properties":{"lastImportedAt":{"type":"string"},"itemsImported":{"type":"number"},"itemsSaved":{"type":"number"},"method":{"type":"string"},"vectorize":{"type":"object","properties":{"synced":{"type":"number"},"failed":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":{}},{"type":"null"}]},"extractedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"aiSearchSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","name","slug","description","primaryDomain","logoUrl","visibility","discoveryStatus","customMcpDomain","openaiChallengeToken","openaiAppId","appStoreStatus","activeConfigVersionId","latestConfigVersion","metadata","extractedAt","aiSearchSyncedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/apps/{appId}":{"get":{"operationId":"apps.get","summary":"Get app by ID","description":"Get detailed information about a specific app","tags":["apps"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public","private","disabled"]},{"type":"null"}]},"discoveryStatus":{"anyOf":[{"type":"string","enum":["pending","discovered","scraping","scraped","failed"]},{"type":"null"}]},"customMcpDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiChallengeToken":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiAppId":{"anyOf":[{"type":"string"},{"type":"null"}]},"appStoreStatus":{"anyOf":[{"type":"string","enum":["draft","pending_verification","pending_review","approved","rejected"]},{"type":"null"}]},"activeConfigVersionId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"latestConfigVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"vertical":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"branding":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"colorScheme":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"colors":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"colorsDark":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"homepageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"themeMode":{"anyOf":[{"type":"string","enum":["light","dark","system"]},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}]},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"brandingExtractedAt":{"type":"string"},"socialLinks":{"type":"object","properties":{"twitter":{"type":"string"},"linkedin":{"type":"string"},"github":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"youtube":{"type":"string"},"email":{"type":"string"}},"additionalProperties":{}},"capabilities":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"],"additionalProperties":false},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"defaultZoom":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}},"additionalProperties":false}},"required":["enabled"],"additionalProperties":false},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"mcpConfig":{"type":"object","properties":{"widgetDomain":{"type":"string"},"serverName":{"type":"string"},"serverVersion":{"type":"string"},"corsOrigins":{"type":"array","items":{"type":"string"}},"toolTimeout":{"type":"number"},"widgetCSP":{"type":"object","properties":{"connect_domains":{"type":"array","items":{"type":"string"}},"resource_domains":{"type":"array","items":{"type":"string"}},"frame_domains":{"type":"array","items":{"type":"string"}},"redirect_domains":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"authMode":{"default":"authenticated","type":"string","enum":["public","authenticated","hybrid","proxy-target"]},"connectionLabel":{"type":"string"},"capabilities":{"default":[],"type":"array","items":{"type":"string"}},"descopeResourceId":{"type":"string"},"expectedAudience":{"type":"string"},"protectedResourceMetadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolScopes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"chatgptToolAllowlist":{"type":"array","items":{"type":"string"}},"scopeDescriptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolAuthRequirements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"authRequired":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authRequired"],"additionalProperties":false}},"lastScopesSyncedAt":{"type":"string"},"policyId":{"type":"string"},"enforcePolicies":{"default":false,"type":"boolean"},"scopeSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"strategy":{"default":"descope-api","type":"string","enum":["descope-api","resource-metadata"]},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"}},"required":["enabled","strategy"],"additionalProperties":false},"assignmentConfig":{"type":"object","properties":{"mode":{"default":"manual","type":"string","enum":["manual","profile-default"]},"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}}},"required":["role"],"additionalProperties":false}}},"required":["mode","role"],"additionalProperties":false},"consentConfig":{"type":"object","properties":{"requireConsent":{"default":true,"type":"boolean"},"consentPageUrl":{"type":"string","format":"uri"},"defaultScopes":{"type":"array","items":{"type":"string"}},"sensitiveScopes":{"type":"array","items":{"type":"string"}}},"required":["requireConsent"],"additionalProperties":false},"clientRegistration":{"type":"object","properties":{"mode":{"default":"cimd","type":"string","enum":["cimd","dcr","pre-registered","disabled"]},"allowedRedirectPatterns":{"type":"array","items":{"type":"string"}},"requirePkce":{"default":true,"type":"boolean"}},"required":["mode","requirePkce"],"additionalProperties":false},"connectionProviderId":{"type":"string"},"connectionScopes":{"type":"array","items":{"type":"string"}},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"openApiSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"spec":{"$ref":"#/components/schemas/__schema0"},"specUrl":{"type":"string","format":"uri"},"supplementalSpecUrls":{"maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"baseUrl":{"type":"string","format":"uri"},"namespace":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"authScopes":{"type":"array","items":{"type":"string"}},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"staticHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"type":"array","items":{"type":"string"}},"includePathPrefixes":{"type":"array","items":{"type":"string"}},"excludePathPrefixes":{"type":"array","items":{"type":"string"}},"stripPathPrefixes":{"type":"array","items":{"type":"string"}},"pathReplacements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"widgetDefaults":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false},"widgetOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"googleDiscoverySync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"services":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"discoveryUrl":{"type":"string","format":"uri"}},"required":["name","version"],"additionalProperties":false}},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"user","type":"string","enum":["tenant","user","hybrid"]},"includeMethodIds":{"type":"array","items":{"type":"string"}},"excludeMethodIds":{"type":"array","items":{"type":"string"}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"capturePayloads":{"type":"boolean"},"codeMode":{"type":"boolean"},"codeModeTimeout":{"type":"integer","minimum":5000,"maximum":300000},"codeModeNamespaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"codeModeModules":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serverInstructions":{"type":"string"},"autoAppendSkillInstructions":{"type":"boolean"},"tediPolicy":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"tediId":{"type":"string"},"allowedTools":{"default":[],"type":"array","items":{"type":"string"}},"blockedTools":{"default":[],"type":"array","items":{"type":"string"}},"maxTokens":{"default":4096,"type":"number"},"timeoutMs":{"default":60000,"type":"number"},"allowedDomains":{"type":"array","items":{"type":"string"}}},"required":["enabled","allowedTools","blockedTools","maxTokens","timeoutMs"],"additionalProperties":false},"guidanceSkillApps":{"type":"array","items":{"type":"string"}},"publicSkillSlugs":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"aggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"inactiveAggregateApps":{"description":"Absent until gateway membership settings have been saved by the platform.","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"aggregateTedis":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"namespace":{"type":"string"},"sessionKey":{"type":"string"},"serverUrl":{"type":"string","format":"uri"},"surface":{"type":"string","enum":["full","collaboration"]},"surfaceRev":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["authMode","capabilities","enforcePolicies"],"additionalProperties":{}},"widgetConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"contentToolConfig":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"contentConfig":{"type":"object","properties":{"aiModel":{"type":"string"},"temperature":{"type":"number"},"maxTokens":{"type":"number"},"systemPrompt":{"type":"string"},"syncInterval":{"type":"string","enum":["daily","weekly","monthly","disabled"]}},"additionalProperties":false},"blogConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"hotTheme":{"type":"object","properties":{"enabled":{"type":"boolean"},"cssKey":{"type":"string"},"historyKey":{"type":"string"},"manifestKey":{"type":"string"},"previousRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"string"},"revisionKey":{"type":"string"},"sha256":{"type":"string"},"updatedAt":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicPath":{"type":"string"}},"additionalProperties":false},"blogTitle":{"type":"string"},"blogDescription":{"type":"string"},"defaultTone":{"type":"string","enum":["professional","casual","technical"]},"sitemapEnabled":{"type":"boolean"},"rssEnabled":{"type":"boolean"},"privacyBannerEnabled":{"type":"boolean"},"language":{"type":"string"},"authorUrl":{"type":"string"},"imageGeneration":{"type":"object","properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["photorealistic","illustration","diagram","abstract"]},"prompt":{"type":"string"},"negativePrompt":{"type":"string"},"size":{"type":"string","enum":["1792x1024","1024x1024","1024x1792"]},"model":{"type":"string"}},"additionalProperties":false},"voicePersona":{"type":"object","properties":{"icpProfile":{"type":"string"},"voiceStyle":{"type":"string"},"doList":{"type":"array","items":{"type":"string"}},"dontList":{"type":"array","items":{"type":"string"}},"examplePhrases":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"companyData":{"type":"object","properties":{"companyName":{"type":"string"},"companyUrl":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"products":{"type":"string"},"targetAudience":{"type":"string"},"tone":{"type":"string"},"painPoints":{"type":"string"},"valuePropositions":{"type":"string"}},"additionalProperties":false},"competitors":{"type":"array","items":{"type":"string"}},"contentStrategy":{"type":"object","properties":{"targetAeoScore":{"type":"number"},"autoPublish":{"type":"boolean"},"maxPostsPerWeek":{"type":"number"},"focusKeywords":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"locales":{"type":"array","items":{"type":"string"}},"defaultLocale":{"type":"string"},"cmsDomain":{"type":"string"},"authDescopeTenantId":{"type":"string"},"publicPathPrefix":{"type":"string"},"templateSlug":{"type":"string"}},"additionalProperties":false},"publicSiteUrl":{"type":"string"},"extractionConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}},"additionalProperties":false},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}},"additionalProperties":false}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},"itemImport":{"type":"object","properties":{"lastImportedAt":{"type":"string"},"itemsImported":{"type":"number"},"itemsSaved":{"type":"number"},"method":{"type":"string"},"vectorize":{"type":"object","properties":{"synced":{"type":"number"},"failed":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":{}},{"type":"null"}]},"extractedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"aiSearchSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","name","slug","description","primaryDomain","logoUrl","visibility","discoveryStatus","customMcpDomain","openaiChallengeToken","openaiAppId","appStoreStatus","activeConfigVersionId","latestConfigVersion","metadata","extractedAt","aiSearchSyncedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"patch":{"operationId":"apps.update","summary":"Update app","description":"Update an existing app","tags":["apps"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"slug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"primaryDomain":{"anyOf":[{"type":"string","maxLength":253},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"visibility":{"type":"string","enum":["public","private","disabled"]},"metadata":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"branding":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"colorScheme":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"colors":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"colorsDark":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]},"homepageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"themeMode":{"anyOf":[{"type":"string","enum":["light","dark","system"]},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}]},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}]}}},{"type":"null"}]}}},{"type":"null"}]},"brandingExtractedAt":{"type":"string"},"socialLinks":{"type":"object","properties":{"twitter":{"type":"string"},"linkedin":{"type":"string"},"github":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"youtube":{"type":"string"},"email":{"type":"string"}},"additionalProperties":{}},"capabilities":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"]},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"]},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"]},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"]},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"]},"defaultZoom":{"type":"number"}},"required":["enabled"]},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}}}},"required":["enabled"]},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"mcpConfig":{"description":"Partial MCP configuration patch; omitted fields preserve their persisted values.","type":"object","properties":{"widgetDomain":{"type":"string"},"serverName":{"type":"string"},"serverVersion":{"type":"string"},"corsOrigins":{"type":"array","items":{"type":"string"}},"toolTimeout":{"type":"number"},"widgetCSP":{"type":"object","properties":{"connect_domains":{"type":"array","items":{"type":"string"}},"resource_domains":{"type":"array","items":{"type":"string"}},"frame_domains":{"type":"array","items":{"type":"string"}},"redirect_domains":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"authMode":{"default":"authenticated","type":"string","enum":["public","authenticated","hybrid","proxy-target"]},"connectionLabel":{"type":"string"},"capabilities":{"default":[],"type":"array","items":{"type":"string"}},"descopeResourceId":{"type":"string"},"expectedAudience":{"type":"string"},"protectedResourceMetadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolScopes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"chatgptToolAllowlist":{"type":"array","items":{"type":"string"}},"scopeDescriptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolAuthRequirements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"authRequired":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authRequired"]}},"lastScopesSyncedAt":{"type":"string"},"policyId":{"type":"string"},"enforcePolicies":{"default":false,"type":"boolean"},"scopeSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"strategy":{"default":"descope-api","type":"string","enum":["descope-api","resource-metadata"]},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"}}},"assignmentConfig":{"type":"object","properties":{"mode":{"default":"manual","type":"string","enum":["manual","profile-default"]},"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}}}}}}},"consentConfig":{"type":"object","properties":{"requireConsent":{"default":true,"type":"boolean"},"consentPageUrl":{"type":"string","format":"uri"},"defaultScopes":{"type":"array","items":{"type":"string"}},"sensitiveScopes":{"type":"array","items":{"type":"string"}}}},"clientRegistration":{"type":"object","properties":{"mode":{"default":"cimd","type":"string","enum":["cimd","dcr","pre-registered","disabled"]},"allowedRedirectPatterns":{"type":"array","items":{"type":"string"}},"requirePkce":{"default":true,"type":"boolean"}}},"connectionProviderId":{"description":"Patch lifecycle: omit to preserve the app-level Connection binding; null explicitly removes it and its inherited credential settings.","anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"connectionScopes":{"type":"array","items":{"type":"string"}},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label"]}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"]}},"defaultScopes":{"type":"array","items":{"type":"string"}}}},"openApiSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"spec":{"$ref":"#/components/schemas/__schema0"},"specUrl":{"type":"string","format":"uri"},"supplementalSpecUrls":{"maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"baseUrl":{"type":"string","format":"uri"},"namespace":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label"]}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"]}},"defaultScopes":{"type":"array","items":{"type":"string"}}}},"authScopes":{"type":"array","items":{"type":"string"}},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"staticHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"type":"array","items":{"type":"string"}},"includePathPrefixes":{"type":"array","items":{"type":"string"}},"excludePathPrefixes":{"type":"array","items":{"type":"string"}},"stripPathPrefixes":{"type":"array","items":{"type":"string"}},"pathReplacements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"widgetDefaults":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"]}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}}},"widgetOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"]}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}}}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"]}}},"googleDiscoverySync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"services":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"discoveryUrl":{"type":"string","format":"uri"}},"required":["name","version"]}},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"user","type":"string","enum":["tenant","user","hybrid"]},"includeMethodIds":{"type":"array","items":{"type":"string"}},"excludeMethodIds":{"type":"array","items":{"type":"string"}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"]}}},"capturePayloads":{"type":"boolean"},"codeMode":{"type":"boolean"},"codeModeTimeout":{"type":"integer","minimum":5000,"maximum":300000},"codeModeNamespaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"codeModeModules":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serverInstructions":{"type":"string"},"autoAppendSkillInstructions":{"type":"boolean"},"tediPolicy":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"tediId":{"type":"string"},"allowedTools":{"default":[],"type":"array","items":{"type":"string"}},"blockedTools":{"default":[],"type":"array","items":{"type":"string"}},"maxTokens":{"default":4096,"type":"number"},"timeoutMs":{"default":60000,"type":"number"},"allowedDomains":{"type":"array","items":{"type":"string"}}}},"guidanceSkillApps":{"type":"array","items":{"type":"string"}},"publicSkillSlugs":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"aggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"]}},"inactiveAggregateApps":{"description":"Absent until gateway membership settings have been saved by the platform.","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"]}},"aggregateTedis":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"namespace":{"type":"string"},"sessionKey":{"type":"string"},"serverUrl":{"type":"string","format":"uri"},"surface":{"type":"string","enum":["full","collaboration"]},"surfaceRev":{"type":"string"}},"required":["slug"]}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"additionalProperties":{}},"widgetConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"contentToolConfig":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}}},"contentConfig":{"type":"object","properties":{"aiModel":{"type":"string"},"temperature":{"type":"number"},"maxTokens":{"type":"number"},"systemPrompt":{"type":"string"},"syncInterval":{"type":"string","enum":["daily","weekly","monthly","disabled"]}}},"blogConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"hotTheme":{"type":"object","properties":{"enabled":{"type":"boolean"},"cssKey":{"type":"string"},"historyKey":{"type":"string"},"manifestKey":{"type":"string"},"previousRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"string"},"revisionKey":{"type":"string"},"sha256":{"type":"string"},"updatedAt":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicPath":{"type":"string"}}},"blogTitle":{"type":"string"},"blogDescription":{"type":"string"},"defaultTone":{"type":"string","enum":["professional","casual","technical"]},"sitemapEnabled":{"type":"boolean"},"rssEnabled":{"type":"boolean"},"privacyBannerEnabled":{"type":"boolean"},"language":{"type":"string"},"authorUrl":{"type":"string"},"imageGeneration":{"type":"object","properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["photorealistic","illustration","diagram","abstract"]},"prompt":{"type":"string"},"negativePrompt":{"type":"string"},"size":{"type":"string","enum":["1792x1024","1024x1024","1024x1792"]},"model":{"type":"string"}}},"voicePersona":{"type":"object","properties":{"icpProfile":{"type":"string"},"voiceStyle":{"type":"string"},"doList":{"type":"array","items":{"type":"string"}},"dontList":{"type":"array","items":{"type":"string"}},"examplePhrases":{"type":"array","items":{"type":"string"}}}},"companyData":{"type":"object","properties":{"companyName":{"type":"string"},"companyUrl":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"products":{"type":"string"},"targetAudience":{"type":"string"},"tone":{"type":"string"},"painPoints":{"type":"string"},"valuePropositions":{"type":"string"}}},"competitors":{"type":"array","items":{"type":"string"}},"contentStrategy":{"type":"object","properties":{"targetAeoScore":{"type":"number"},"autoPublish":{"type":"boolean"},"maxPostsPerWeek":{"type":"number"},"focusKeywords":{"type":"array","items":{"type":"string"}}}},"locales":{"type":"array","items":{"type":"string"}},"defaultLocale":{"type":"string"},"cmsDomain":{"type":"string"},"authDescopeTenantId":{"type":"string"},"publicPathPrefix":{"type":"string"},"templateSlug":{"type":"string"}}},"publicSiteUrl":{"type":"string"},"extractionConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}}},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}}},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}}}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},"itemImport":{"type":"object","properties":{"lastImportedAt":{"type":"string"},"itemsImported":{"type":"number"},"itemsSaved":{"type":"number"},"method":{"type":"string"},"vectorize":{"type":"object","properties":{"synced":{"type":"number"},"failed":{"type":"number"}}}}}},"additionalProperties":{}}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public","private","disabled"]},{"type":"null"}]},"discoveryStatus":{"anyOf":[{"type":"string","enum":["pending","discovered","scraping","scraped","failed"]},{"type":"null"}]},"customMcpDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiChallengeToken":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiAppId":{"anyOf":[{"type":"string"},{"type":"null"}]},"appStoreStatus":{"anyOf":[{"type":"string","enum":["draft","pending_verification","pending_review","approved","rejected"]},{"type":"null"}]},"activeConfigVersionId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"latestConfigVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"vertical":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"branding":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"colorScheme":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"colors":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"colorsDark":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"homepageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"themeMode":{"anyOf":[{"type":"string","enum":["light","dark","system"]},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}]},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"brandingExtractedAt":{"type":"string"},"socialLinks":{"type":"object","properties":{"twitter":{"type":"string"},"linkedin":{"type":"string"},"github":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"youtube":{"type":"string"},"email":{"type":"string"}},"additionalProperties":{}},"capabilities":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"],"additionalProperties":false},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"defaultZoom":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}},"additionalProperties":false}},"required":["enabled"],"additionalProperties":false},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"mcpConfig":{"type":"object","properties":{"widgetDomain":{"type":"string"},"serverName":{"type":"string"},"serverVersion":{"type":"string"},"corsOrigins":{"type":"array","items":{"type":"string"}},"toolTimeout":{"type":"number"},"widgetCSP":{"type":"object","properties":{"connect_domains":{"type":"array","items":{"type":"string"}},"resource_domains":{"type":"array","items":{"type":"string"}},"frame_domains":{"type":"array","items":{"type":"string"}},"redirect_domains":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"authMode":{"default":"authenticated","type":"string","enum":["public","authenticated","hybrid","proxy-target"]},"connectionLabel":{"type":"string"},"capabilities":{"default":[],"type":"array","items":{"type":"string"}},"descopeResourceId":{"type":"string"},"expectedAudience":{"type":"string"},"protectedResourceMetadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolScopes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"chatgptToolAllowlist":{"type":"array","items":{"type":"string"}},"scopeDescriptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolAuthRequirements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"authRequired":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authRequired"],"additionalProperties":false}},"lastScopesSyncedAt":{"type":"string"},"policyId":{"type":"string"},"enforcePolicies":{"default":false,"type":"boolean"},"scopeSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"strategy":{"default":"descope-api","type":"string","enum":["descope-api","resource-metadata"]},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"}},"required":["enabled","strategy"],"additionalProperties":false},"assignmentConfig":{"type":"object","properties":{"mode":{"default":"manual","type":"string","enum":["manual","profile-default"]},"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}}},"required":["role"],"additionalProperties":false}}},"required":["mode","role"],"additionalProperties":false},"consentConfig":{"type":"object","properties":{"requireConsent":{"default":true,"type":"boolean"},"consentPageUrl":{"type":"string","format":"uri"},"defaultScopes":{"type":"array","items":{"type":"string"}},"sensitiveScopes":{"type":"array","items":{"type":"string"}}},"required":["requireConsent"],"additionalProperties":false},"clientRegistration":{"type":"object","properties":{"mode":{"default":"cimd","type":"string","enum":["cimd","dcr","pre-registered","disabled"]},"allowedRedirectPatterns":{"type":"array","items":{"type":"string"}},"requirePkce":{"default":true,"type":"boolean"}},"required":["mode","requirePkce"],"additionalProperties":false},"connectionProviderId":{"type":"string"},"connectionScopes":{"type":"array","items":{"type":"string"}},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"openApiSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"spec":{"$ref":"#/components/schemas/__schema0"},"specUrl":{"type":"string","format":"uri"},"supplementalSpecUrls":{"maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"baseUrl":{"type":"string","format":"uri"},"namespace":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"authScopes":{"type":"array","items":{"type":"string"}},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"staticHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"type":"array","items":{"type":"string"}},"includePathPrefixes":{"type":"array","items":{"type":"string"}},"excludePathPrefixes":{"type":"array","items":{"type":"string"}},"stripPathPrefixes":{"type":"array","items":{"type":"string"}},"pathReplacements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"widgetDefaults":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false},"widgetOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"googleDiscoverySync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"services":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"discoveryUrl":{"type":"string","format":"uri"}},"required":["name","version"],"additionalProperties":false}},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"user","type":"string","enum":["tenant","user","hybrid"]},"includeMethodIds":{"type":"array","items":{"type":"string"}},"excludeMethodIds":{"type":"array","items":{"type":"string"}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"capturePayloads":{"type":"boolean"},"codeMode":{"type":"boolean"},"codeModeTimeout":{"type":"integer","minimum":5000,"maximum":300000},"codeModeNamespaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"codeModeModules":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serverInstructions":{"type":"string"},"autoAppendSkillInstructions":{"type":"boolean"},"tediPolicy":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"tediId":{"type":"string"},"allowedTools":{"default":[],"type":"array","items":{"type":"string"}},"blockedTools":{"default":[],"type":"array","items":{"type":"string"}},"maxTokens":{"default":4096,"type":"number"},"timeoutMs":{"default":60000,"type":"number"},"allowedDomains":{"type":"array","items":{"type":"string"}}},"required":["enabled","allowedTools","blockedTools","maxTokens","timeoutMs"],"additionalProperties":false},"guidanceSkillApps":{"type":"array","items":{"type":"string"}},"publicSkillSlugs":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"aggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"inactiveAggregateApps":{"description":"Absent until gateway membership settings have been saved by the platform.","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"aggregateTedis":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"namespace":{"type":"string"},"sessionKey":{"type":"string"},"serverUrl":{"type":"string","format":"uri"},"surface":{"type":"string","enum":["full","collaboration"]},"surfaceRev":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["authMode","capabilities","enforcePolicies"],"additionalProperties":{}},"widgetConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"contentToolConfig":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"contentConfig":{"type":"object","properties":{"aiModel":{"type":"string"},"temperature":{"type":"number"},"maxTokens":{"type":"number"},"systemPrompt":{"type":"string"},"syncInterval":{"type":"string","enum":["daily","weekly","monthly","disabled"]}},"additionalProperties":false},"blogConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"hotTheme":{"type":"object","properties":{"enabled":{"type":"boolean"},"cssKey":{"type":"string"},"historyKey":{"type":"string"},"manifestKey":{"type":"string"},"previousRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"string"},"revisionKey":{"type":"string"},"sha256":{"type":"string"},"updatedAt":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicPath":{"type":"string"}},"additionalProperties":false},"blogTitle":{"type":"string"},"blogDescription":{"type":"string"},"defaultTone":{"type":"string","enum":["professional","casual","technical"]},"sitemapEnabled":{"type":"boolean"},"rssEnabled":{"type":"boolean"},"privacyBannerEnabled":{"type":"boolean"},"language":{"type":"string"},"authorUrl":{"type":"string"},"imageGeneration":{"type":"object","properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["photorealistic","illustration","diagram","abstract"]},"prompt":{"type":"string"},"negativePrompt":{"type":"string"},"size":{"type":"string","enum":["1792x1024","1024x1024","1024x1792"]},"model":{"type":"string"}},"additionalProperties":false},"voicePersona":{"type":"object","properties":{"icpProfile":{"type":"string"},"voiceStyle":{"type":"string"},"doList":{"type":"array","items":{"type":"string"}},"dontList":{"type":"array","items":{"type":"string"}},"examplePhrases":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"companyData":{"type":"object","properties":{"companyName":{"type":"string"},"companyUrl":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"products":{"type":"string"},"targetAudience":{"type":"string"},"tone":{"type":"string"},"painPoints":{"type":"string"},"valuePropositions":{"type":"string"}},"additionalProperties":false},"competitors":{"type":"array","items":{"type":"string"}},"contentStrategy":{"type":"object","properties":{"targetAeoScore":{"type":"number"},"autoPublish":{"type":"boolean"},"maxPostsPerWeek":{"type":"number"},"focusKeywords":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"locales":{"type":"array","items":{"type":"string"}},"defaultLocale":{"type":"string"},"cmsDomain":{"type":"string"},"authDescopeTenantId":{"type":"string"},"publicPathPrefix":{"type":"string"},"templateSlug":{"type":"string"}},"additionalProperties":false},"publicSiteUrl":{"type":"string"},"extractionConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}},"additionalProperties":false},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}},"additionalProperties":false}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},"itemImport":{"type":"object","properties":{"lastImportedAt":{"type":"string"},"itemsImported":{"type":"number"},"itemsSaved":{"type":"number"},"method":{"type":"string"},"vectorize":{"type":"object","properties":{"synced":{"type":"number"},"failed":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":{}},{"type":"null"}]},"extractedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"aiSearchSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","name","slug","description","primaryDomain","logoUrl","visibility","discoveryStatus","customMcpDomain","openaiChallengeToken","openaiAppId","appStoreStatus","activeConfigVersionId","latestConfigVersion","metadata","extractedAt","aiSearchSyncedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"delete":{"operationId":"apps.delete","summary":"Delete app","description":"Permanently delete an app and all associated data","tags":["apps"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"}},"required":["success"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/apps/slug/{slug}":{"get":{"operationId":"apps.getBySlug","summary":"Get app by slug","description":"Get app information by its unique slug","tags":["apps"],"parameters":[{"in":"path","required":true,"name":"slug","schema":{"type":"string","minLength":1,"maxLength":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string","enum":["public","private","disabled"]},{"type":"null"}]},"discoveryStatus":{"anyOf":[{"type":"string","enum":["pending","discovered","scraping","scraped","failed"]},{"type":"null"}]},"customMcpDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiChallengeToken":{"anyOf":[{"type":"string"},{"type":"null"}]},"openaiAppId":{"anyOf":[{"type":"string"},{"type":"null"}]},"appStoreStatus":{"anyOf":[{"type":"string","enum":["draft","pending_verification","pending_review","approved","rejected"]},{"type":"null"}]},"activeConfigVersionId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"latestConfigVersion":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"vertical":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"branding":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"colorScheme":{"anyOf":[{"type":"string","enum":["light","dark"]},{"type":"null"}]},"colors":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"colorsDark":{"anyOf":[{"type":"object","properties":{"primary":{"anyOf":[{"type":"string"},{"type":"null"}]},"secondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"accent":{"anyOf":[{"type":"string"},{"type":"null"}]},"tint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryTint":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"primaryDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"interactiveHover":{"anyOf":[{"type":"string"},{"type":"null"}]},"background":{"anyOf":[{"type":"string"},{"type":"null"}]},"text":{"anyOf":[{"type":"string"},{"type":"null"}]},"textSecondary":{"anyOf":[{"type":"string"},{"type":"null"}]},"link":{"anyOf":[{"type":"string"},{"type":"null"}]},"success":{"anyOf":[{"type":"string"},{"type":"null"}]},"warning":{"anyOf":[{"type":"string"},{"type":"null"}]},"error":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"heading":{"anyOf":[{"type":"string"},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"homepageUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"themeMode":{"anyOf":[{"type":"string","enum":["light","dark","system"]},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"string"},{"type":"null"}]},"favicon":{"anyOf":[{"type":"string"},{"type":"null"}]},"ogImage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"brandingExtractedAt":{"type":"string"},"socialLinks":{"type":"object","properties":{"twitter":{"type":"string"},"linkedin":{"type":"string"},"github":{"type":"string"},"facebook":{"type":"string"},"instagram":{"type":"string"},"youtube":{"type":"string"},"email":{"type":"string"}},"additionalProperties":{}},"capabilities":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"],"additionalProperties":false},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"defaultZoom":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}},"additionalProperties":false}},"required":["enabled"],"additionalProperties":false},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"mcpConfig":{"type":"object","properties":{"widgetDomain":{"type":"string"},"serverName":{"type":"string"},"serverVersion":{"type":"string"},"corsOrigins":{"type":"array","items":{"type":"string"}},"toolTimeout":{"type":"number"},"widgetCSP":{"type":"object","properties":{"connect_domains":{"type":"array","items":{"type":"string"}},"resource_domains":{"type":"array","items":{"type":"string"}},"frame_domains":{"type":"array","items":{"type":"string"}},"redirect_domains":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"authMode":{"default":"authenticated","type":"string","enum":["public","authenticated","hybrid","proxy-target"]},"connectionLabel":{"type":"string"},"capabilities":{"default":[],"type":"array","items":{"type":"string"}},"descopeResourceId":{"type":"string"},"expectedAudience":{"type":"string"},"protectedResourceMetadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolScopes":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"chatgptToolAllowlist":{"type":"array","items":{"type":"string"}},"scopeDescriptions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolAuthRequirements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"authRequired":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["authRequired"],"additionalProperties":false}},"lastScopesSyncedAt":{"type":"string"},"policyId":{"type":"string"},"enforcePolicies":{"default":false,"type":"boolean"},"scopeSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"strategy":{"default":"descope-api","type":"string","enum":["descope-api","resource-metadata"]},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"}},"required":["enabled","strategy"],"additionalProperties":false},"assignmentConfig":{"type":"object","properties":{"mode":{"default":"manual","type":"string","enum":["manual","profile-default"]},"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}},"rules":{"type":"array","items":{"type":"object","properties":{"role":{"default":"operator","type":"string","enum":["operator","observer"]},"capabilityProfiles":{"type":"array","items":{"type":"string","enum":["standard","org_admin","platform_admin"]}},"requiredTediTags":{"type":"array","items":{"type":"string"}},"excludedTediTags":{"type":"array","items":{"type":"string"}}},"required":["role"],"additionalProperties":false}}},"required":["mode","role"],"additionalProperties":false},"consentConfig":{"type":"object","properties":{"requireConsent":{"default":true,"type":"boolean"},"consentPageUrl":{"type":"string","format":"uri"},"defaultScopes":{"type":"array","items":{"type":"string"}},"sensitiveScopes":{"type":"array","items":{"type":"string"}}},"required":["requireConsent"],"additionalProperties":false},"clientRegistration":{"type":"object","properties":{"mode":{"default":"cimd","type":"string","enum":["cimd","dcr","pre-registered","disabled"]},"allowedRedirectPatterns":{"type":"array","items":{"type":"string"}},"requirePkce":{"default":true,"type":"boolean"}},"required":["mode","requirePkce"],"additionalProperties":false},"connectionProviderId":{"type":"string"},"connectionScopes":{"type":"array","items":{"type":"string"}},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"openApiSync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"spec":{"$ref":"#/components/schemas/__schema0"},"specUrl":{"type":"string","format":"uri"},"supplementalSpecUrls":{"maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"baseUrl":{"type":"string","format":"uri"},"namespace":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"tenant","type":"string","enum":["tenant","user","hybrid"]},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label","type","required"],"additionalProperties":false}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"],"additionalProperties":false}},"defaultScopes":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"authScopes":{"type":"array","items":{"type":"string"}},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"staticHeaders":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"type":"array","items":{"type":"string"}},"includePathPrefixes":{"type":"array","items":{"type":"string"}},"excludePathPrefixes":{"type":"array","items":{"type":"string"}},"stripPathPrefixes":{"type":"array","items":{"type":"string"}},"pathReplacements":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"widgetDefaults":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false},"widgetOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"],"additionalProperties":false}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}},"additionalProperties":false}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"googleDiscoverySync":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"services":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"discoveryUrl":{"type":"string","format":"uri"}},"required":["name","version"],"additionalProperties":false}},"connectionProviderId":{"type":"string"},"connectionScope":{"default":"user","type":"string","enum":["tenant","user","hybrid"]},"includeMethodIds":{"type":"array","items":{"type":"string"}},"excludeMethodIds":{"type":"array","items":{"type":"string"}},"replaceExisting":{"default":true,"type":"boolean"},"lastSyncedAt":{"type":"string"},"lastError":{"type":"string"},"lastResult":{"type":"object","properties":{"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["totalOperations","planned","created","updated","deleted","inSync","failed"],"additionalProperties":false}},"required":["enabled","connectionScope","replaceExisting"],"additionalProperties":false},"capturePayloads":{"type":"boolean"},"codeMode":{"type":"boolean"},"codeModeTimeout":{"type":"integer","minimum":5000,"maximum":300000},"codeModeNamespaces":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"codeModeModules":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"serverInstructions":{"type":"string"},"autoAppendSkillInstructions":{"type":"boolean"},"tediPolicy":{"type":"object","properties":{"enabled":{"default":false,"type":"boolean"},"tediId":{"type":"string"},"allowedTools":{"default":[],"type":"array","items":{"type":"string"}},"blockedTools":{"default":[],"type":"array","items":{"type":"string"}},"maxTokens":{"default":4096,"type":"number"},"timeoutMs":{"default":60000,"type":"number"},"allowedDomains":{"type":"array","items":{"type":"string"}}},"required":["enabled","allowedTools","blockedTools","maxTokens","timeoutMs"],"additionalProperties":false},"guidanceSkillApps":{"type":"array","items":{"type":"string"}},"publicSkillSlugs":{"maxItems":50,"type":"array","items":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"aggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"inactiveAggregateApps":{"description":"Absent until gateway membership settings have been saved by the platform.","type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"description":"Defaults to the source app slug when omitted.","type":"string"},"connectionLabel":{"description":"Legacy stored routing hint; omitted on new integrations.","type":"string"},"connectionProviderId":{"description":"Omit to inherit the source app connection provider.","type":"string"},"connectionScope":{"description":"Omit to inherit the source app connection scope.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Omit to inherit the source app requested connection scopes.","type":"array","items":{"type":"string"}},"forwardedQueryParams":{"description":"Platform-managed parameters; omitted when no forwarding is configured.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"toolIds":{"description":"Omit to include all eligible source tools.","type":"array","items":{"type":"string"}},"endpointPrefixes":{"description":"Omit when no endpoint prefix restriction is configured.","type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"aggregateTedis":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"namespace":{"type":"string"},"sessionKey":{"type":"string"},"serverUrl":{"type":"string","format":"uri"},"surface":{"type":"string","enum":["full","collaboration"]},"surfaceRev":{"type":"string"}},"required":["slug"],"additionalProperties":false}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["authMode","capabilities","enforcePolicies"],"additionalProperties":{}},"widgetConfig":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"contentToolConfig":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"}},"additionalProperties":false},"contentConfig":{"type":"object","properties":{"aiModel":{"type":"string"},"temperature":{"type":"number"},"maxTokens":{"type":"number"},"systemPrompt":{"type":"string"},"syncInterval":{"type":"string","enum":["daily","weekly","monthly","disabled"]}},"additionalProperties":false},"blogConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"hotTheme":{"type":"object","properties":{"enabled":{"type":"boolean"},"cssKey":{"type":"string"},"historyKey":{"type":"string"},"manifestKey":{"type":"string"},"previousRevision":{"anyOf":[{"type":"string"},{"type":"null"}]},"revision":{"type":"string"},"revisionKey":{"type":"string"},"sha256":{"type":"string"},"updatedAt":{"type":"string"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicPath":{"type":"string"}},"additionalProperties":false},"blogTitle":{"type":"string"},"blogDescription":{"type":"string"},"defaultTone":{"type":"string","enum":["professional","casual","technical"]},"sitemapEnabled":{"type":"boolean"},"rssEnabled":{"type":"boolean"},"privacyBannerEnabled":{"type":"boolean"},"language":{"type":"string"},"authorUrl":{"type":"string"},"imageGeneration":{"type":"object","properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["photorealistic","illustration","diagram","abstract"]},"prompt":{"type":"string"},"negativePrompt":{"type":"string"},"size":{"type":"string","enum":["1792x1024","1024x1024","1024x1792"]},"model":{"type":"string"}},"additionalProperties":false},"voicePersona":{"type":"object","properties":{"icpProfile":{"type":"string"},"voiceStyle":{"type":"string"},"doList":{"type":"array","items":{"type":"string"}},"dontList":{"type":"array","items":{"type":"string"}},"examplePhrases":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"companyData":{"type":"object","properties":{"companyName":{"type":"string"},"companyUrl":{"type":"string"},"industry":{"type":"string"},"description":{"type":"string"},"products":{"type":"string"},"targetAudience":{"type":"string"},"tone":{"type":"string"},"painPoints":{"type":"string"},"valuePropositions":{"type":"string"}},"additionalProperties":false},"competitors":{"type":"array","items":{"type":"string"}},"contentStrategy":{"type":"object","properties":{"targetAeoScore":{"type":"number"},"autoPublish":{"type":"boolean"},"maxPostsPerWeek":{"type":"number"},"focusKeywords":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"locales":{"type":"array","items":{"type":"string"}},"defaultLocale":{"type":"string"},"cmsDomain":{"type":"string"},"authDescopeTenantId":{"type":"string"},"publicPathPrefix":{"type":"string"},"templateSlug":{"type":"string"}},"additionalProperties":false},"publicSiteUrl":{"type":"string"},"extractionConfig":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}},"additionalProperties":false},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}},"additionalProperties":false}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},"itemImport":{"type":"object","properties":{"lastImportedAt":{"type":"string"},"itemsImported":{"type":"number"},"itemsSaved":{"type":"number"},"method":{"type":"string"},"vectorize":{"type":"object","properties":{"synced":{"type":"number"},"failed":{"type":"number"}},"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":{}},{"type":"null"}]},"extractedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"aiSearchSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","name","slug","description","primaryDomain","logoUrl","visibility","discoveryStatus","customMcpDomain","openaiChallengeToken","openaiAppId","appStoreStatus","activeConfigVersionId","latestConfigVersion","metadata","extractedAt","aiSearchSyncedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/apps/slug-check/{slug}":{"get":{"operationId":"apps.isSlugAvailable","summary":"Check slug availability","description":"Check if an app slug is available for use","tags":["apps"],"parameters":[{"in":"path","required":true,"name":"slug","schema":{"type":"string","minLength":1,"maxLength":100}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/apps/{appId}/adapters":{"get":{"operationId":"appAdapters.list","summary":"List app adapters","description":"List all adapters configured for a specific app","tags":["app-adapters"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"query","name":"limit","schema":{"default":50,"type":"number"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"priority":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","appId","name","displayName","adapterType","enabled","priority","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}}}},"post":{"operationId":"appAdapters.create","summary":"Create adapter","description":"Create a new adapter for the app","tags":["app-adapters"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"displayName":{"type":"string","maxLength":200},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"config":{"$ref":"#/components/schemas/__schema0"},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"verticals":{"type":"array","items":{"type":"string"}},"enabled":{"default":true,"type":"boolean"},"priority":{"default":0,"type":"number"}},"required":["name","adapterType"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"config":{"anyOf":[{"$ref":"#/components/schemas/__schema0"},{"type":"null"}]},"fieldMappings":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"verticals":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"priority":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","appId","name","displayName","adapterType","config","fieldMappings","verticals","enabled","priority","createdAt","updatedAt"],"additionalProperties":false}}}}}}},"/apps/{appId}/adapters/{adapterId}":{"get":{"operationId":"appAdapters.get","summary":"Get adapter by ID","description":"Get detailed information about a specific adapter","tags":["app-adapters"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"adapterId","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"config":{"anyOf":[{"$ref":"#/components/schemas/__schema0"},{"type":"null"}]},"fieldMappings":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"verticals":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"priority":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","appId","name","displayName","adapterType","config","fieldMappings","verticals","enabled","priority","createdAt","updatedAt"],"additionalProperties":false}}}}}},"patch":{"operationId":"appAdapters.update","summary":"Update adapter","description":"Update an existing adapter configuration","tags":["app-adapters"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"adapterId","schema":{"type":"string","minLength":1}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"displayName":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"config":{"$ref":"#/components/schemas/__schema0"},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"verticals":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"},"priority":{"type":"number"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"config":{"anyOf":[{"$ref":"#/components/schemas/__schema0"},{"type":"null"}]},"fieldMappings":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"verticals":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"priority":{"anyOf":[{"type":"number"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","appId","name","displayName","adapterType","config","fieldMappings","verticals","enabled","priority","createdAt","updatedAt"],"additionalProperties":false}}}}}},"delete":{"operationId":"appAdapters.delete","summary":"Delete adapter","description":"Permanently delete an adapter configuration","tags":["app-adapters"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"adapterId","schema":{"type":"string","minLength":1}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"}},"required":["success"],"additionalProperties":false}}}}}}},"/apps/{appId}/adapters/preflight":{"post":{"operationId":"appAdapters.preflight","summary":"Preflight adapter config","description":"Validate adapter config and simulate write-time outcome without persisting changes","tags":["app-adapters"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"config":{"anyOf":[{"$ref":"#/components/schemas/__schema0"},{"type":"null"}]},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"verticals":{"type":"array","items":{"type":"string"}},"operation":{"default":"update","type":"string","enum":["create","update"]},"dryRun":{"default":true,"type":"boolean"}},"required":["adapterType"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"simulation":{"type":"object","properties":{"operation":{"type":"string","enum":["create","update"]},"wouldPersist":{"type":"boolean"},"requiresMcpRefresh":{"type":"boolean","const":true},"adapterType":{"type":"string","enum":["klarna","shopify","custom","webhook","mcp","internal"]},"requiredBindings":{"type":"array","items":{"type":"string"}}},"required":["operation","wouldPersist","requiresMcpRefresh","adapterType","requiredBindings"],"additionalProperties":false}},"required":["valid","errors","warnings","simulation"],"additionalProperties":false}}}}}}},"/apps/{appId}/tools":{"get":{"operationId":"appTools.list","summary":"List app tools","description":"List all MCP tools configured for an app with pagination","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":500},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"query","schema":{"description":"Optional normalized all-term search across tool id, title, and description. Omit to list the unfiltered app inventory.","type":"string","maxLength":200},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"inputSchema":{},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"anyOf":[{"type":"string"},{"type":"null"}]},"resultStrategy":{"anyOf":[{"type":"string"},{"type":"null"}]},"outputTemplate":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetRoute":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetAccessible":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"authRequired":{"default":false,"type":"boolean"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiredScopes":{"description":"MCP capability scopes a caller must hold to invoke this tool, resolved by the same function the MCP edge enforces with. Absent on write paths and on responses that do not carry the app's mcpConfig, because the answer depends on it — an empty array means the tool requires no scope, which is not the same as unknown. A disabled tool reports the scope it would require if enabled, since the edge serves only enabled tools.","type":"array","items":{"type":"string"}},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"],"additionalProperties":false}},{"type":"null"}]},"executionTaskSupport":{"default":null,"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"writeCapability":{"description":"Absent or null means UNDECLARED — nobody has stated what this tool does — which every gate treats as write-capable. It is NOT a synonym for read-only, and absent is also how code-built tools that carry explicit annotations arrive.","default":null,"anyOf":[{"type":"string","enum":["read","write","destructive"]},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"invocationStatus":{"anyOf":[{"type":"object","properties":{"invoking":{"type":"string","maxLength":64},"invoked":{"type":"string","maxLength":64}},"additionalProperties":false},{"type":"null"}]},"fileParams":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"widgetDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetPrefersBorder":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"widgetDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"schemaDialect":{"default":null,"anyOf":[{"type":"string","enum":["json-schema-2020-12"]},{"type":"null"}]},"schemaSource":{"default":null,"anyOf":[{"type":"string","enum":["orpc","openapi","google-discovery","mcp","manual"]},{"type":"null"}]},"schemaSourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSourceHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"anyOf":[{"type":"number"},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolCspDomains":{"type":"array","items":{"type":"object","properties":{"toolId":{"type":"string"},"domainType":{"type":"string","enum":["connect","resource","img","script","style","frame","redirect"]},"domainUrl":{"type":"string"},"active":{"type":"boolean"}},"required":["toolId","domainType","domainUrl"],"additionalProperties":false}}},"required":["id","toolId","toolTypeId","title","description","inputSchema","outputSchema","adapterScope","resultStrategy","outputTemplate","widgetKey","widgetRoute","widgetAccessible","authRequired","visibility","icons","executionTaskSupport","annotations","meta","invocationStatus","fileParams","widgetDescription","widgetPrefersBorder","widgetDomain","config","schemaDialect","schemaSource","schemaSourceRef","schemaSourceHash","schemaSyncedAt","sortOrder","enabled","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false},"inventoryTotal":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["data","pagination","inventoryTotal"],"additionalProperties":false}}}}}},"post":{"operationId":"appTools.create","summary":"Create app tool","description":"Create a new MCP tool for an app","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"toolId":{"type":"string","minLength":1,"maxLength":100},"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"inputSchema":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"default":"primary","type":"string"},"resultStrategy":{"default":"merge","type":"string","enum":["parallel_all","first_success","merge"]},"outputTemplate":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetRoute":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetAccessible":{"default":true,"type":"boolean"},"authRequired":{"default":false,"type":"boolean"},"visibility":{"default":"public","type":"string"},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"]}},{"type":"null"}]},"executionTaskSupport":{"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}}},{"type":"null"}]},"writeCapability":{"description":"Explicit write-capability declaration. Omit to derive it from `annotations`; send null to clear it back to UNDECLARED. The manual path exists for upstream MCP servers that never send annotations at all, whose tools can otherwise never be classified.","anyOf":[{"type":"string","enum":["read","write","destructive"]},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"invocationStatus":{"anyOf":[{"type":"object","properties":{"invoking":{"type":"string","maxLength":64},"invoked":{"type":"string","maxLength":64}}},{"type":"null"}]},"fileParams":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"widgetDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetPrefersBorder":{"default":true,"type":"boolean"},"widgetDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"schemaDialect":{"anyOf":[{"type":"string","enum":["json-schema-2020-12"]},{"type":"null"}]},"schemaSource":{"anyOf":[{"type":"string","enum":["orpc","openapi","google-discovery","mcp","manual"]},{"type":"null"}]},"schemaSourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSourceHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"default":0,"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"enabled":{"default":true,"type":"boolean"}},"required":["toolId","toolTypeId","title"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"inputSchema":{},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"anyOf":[{"type":"string"},{"type":"null"}]},"resultStrategy":{"anyOf":[{"type":"string"},{"type":"null"}]},"outputTemplate":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetRoute":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetAccessible":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"authRequired":{"default":false,"type":"boolean"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiredScopes":{"description":"MCP capability scopes a caller must hold to invoke this tool, resolved by the same function the MCP edge enforces with. Absent on write paths and on responses that do not carry the app's mcpConfig, because the answer depends on it — an empty array means the tool requires no scope, which is not the same as unknown. A disabled tool reports the scope it would require if enabled, since the edge serves only enabled tools.","type":"array","items":{"type":"string"}},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"],"additionalProperties":false}},{"type":"null"}]},"executionTaskSupport":{"default":null,"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"writeCapability":{"description":"Absent or null means UNDECLARED — nobody has stated what this tool does — which every gate treats as write-capable. It is NOT a synonym for read-only, and absent is also how code-built tools that carry explicit annotations arrive.","default":null,"anyOf":[{"type":"string","enum":["read","write","destructive"]},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"invocationStatus":{"anyOf":[{"type":"object","properties":{"invoking":{"type":"string","maxLength":64},"invoked":{"type":"string","maxLength":64}},"additionalProperties":false},{"type":"null"}]},"fileParams":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"widgetDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetPrefersBorder":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"widgetDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"schemaDialect":{"default":null,"anyOf":[{"type":"string","enum":["json-schema-2020-12"]},{"type":"null"}]},"schemaSource":{"default":null,"anyOf":[{"type":"string","enum":["orpc","openapi","google-discovery","mcp","manual"]},{"type":"null"}]},"schemaSourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSourceHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"anyOf":[{"type":"number"},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolCspDomains":{"type":"array","items":{"type":"object","properties":{"toolId":{"type":"string"},"domainType":{"type":"string","enum":["connect","resource","img","script","style","frame","redirect"]},"domainUrl":{"type":"string"},"active":{"type":"boolean"}},"required":["toolId","domainType","domainUrl"],"additionalProperties":false}}},"required":["id","toolId","toolTypeId","title","description","inputSchema","outputSchema","adapterScope","resultStrategy","outputTemplate","widgetKey","widgetRoute","widgetAccessible","authRequired","visibility","icons","executionTaskSupport","annotations","meta","invocationStatus","fileParams","widgetDescription","widgetPrefersBorder","widgetDomain","config","schemaDialect","schemaSource","schemaSourceRef","schemaSourceHash","schemaSyncedAt","sortOrder","enabled","createdAt","updatedAt"],"additionalProperties":false}}}}}}},"/apps/{appId}/tools/{toolId}":{"get":{"operationId":"appTools.get","summary":"Get app tool by ID","description":"Get detailed information about a specific app tool","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"toolId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"inputSchema":{},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"anyOf":[{"type":"string"},{"type":"null"}]},"resultStrategy":{"anyOf":[{"type":"string"},{"type":"null"}]},"outputTemplate":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetRoute":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetAccessible":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"authRequired":{"default":false,"type":"boolean"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiredScopes":{"description":"MCP capability scopes a caller must hold to invoke this tool, resolved by the same function the MCP edge enforces with. Absent on write paths and on responses that do not carry the app's mcpConfig, because the answer depends on it — an empty array means the tool requires no scope, which is not the same as unknown. A disabled tool reports the scope it would require if enabled, since the edge serves only enabled tools.","type":"array","items":{"type":"string"}},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"],"additionalProperties":false}},{"type":"null"}]},"executionTaskSupport":{"default":null,"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"writeCapability":{"description":"Absent or null means UNDECLARED — nobody has stated what this tool does — which every gate treats as write-capable. It is NOT a synonym for read-only, and absent is also how code-built tools that carry explicit annotations arrive.","default":null,"anyOf":[{"type":"string","enum":["read","write","destructive"]},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"invocationStatus":{"anyOf":[{"type":"object","properties":{"invoking":{"type":"string","maxLength":64},"invoked":{"type":"string","maxLength":64}},"additionalProperties":false},{"type":"null"}]},"fileParams":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"widgetDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetPrefersBorder":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"widgetDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"schemaDialect":{"default":null,"anyOf":[{"type":"string","enum":["json-schema-2020-12"]},{"type":"null"}]},"schemaSource":{"default":null,"anyOf":[{"type":"string","enum":["orpc","openapi","google-discovery","mcp","manual"]},{"type":"null"}]},"schemaSourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSourceHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"anyOf":[{"type":"number"},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolCspDomains":{"type":"array","items":{"type":"object","properties":{"toolId":{"type":"string"},"domainType":{"type":"string","enum":["connect","resource","img","script","style","frame","redirect"]},"domainUrl":{"type":"string"},"active":{"type":"boolean"}},"required":["toolId","domainType","domainUrl"],"additionalProperties":false}}},"required":["id","toolId","toolTypeId","title","description","inputSchema","outputSchema","adapterScope","resultStrategy","outputTemplate","widgetKey","widgetRoute","widgetAccessible","authRequired","visibility","icons","executionTaskSupport","annotations","meta","invocationStatus","fileParams","widgetDescription","widgetPrefersBorder","widgetDomain","config","schemaDialect","schemaSource","schemaSourceRef","schemaSourceHash","schemaSyncedAt","sortOrder","enabled","createdAt","updatedAt"],"additionalProperties":false}}}}}},"patch":{"operationId":"appTools.update","summary":"Update app tool","description":"Update an existing app tool configuration","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"toolId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"inputSchema":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"type":"string"},"resultStrategy":{"type":"string","enum":["parallel_all","first_success","merge"]},"outputTemplate":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetRoute":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetAccessible":{"type":"boolean"},"authRequired":{"type":"boolean"},"visibility":{"type":"string"},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"]}},{"type":"null"}]},"executionTaskSupport":{"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}}},{"type":"null"}]},"writeCapability":{"description":"Explicit write-capability declaration. Omit to derive it from `annotations`; send null to clear it back to UNDECLARED. The manual path exists for upstream MCP servers that never send annotations at all, whose tools can otherwise never be classified.","anyOf":[{"type":"string","enum":["read","write","destructive"]},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"invocationStatus":{"anyOf":[{"type":"object","properties":{"invoking":{"type":"string","maxLength":64},"invoked":{"type":"string","maxLength":64}}},{"type":"null"}]},"fileParams":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"widgetDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetPrefersBorder":{"type":"boolean"},"widgetDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"schemaDialect":{"anyOf":[{"type":"string","enum":["json-schema-2020-12"]},{"type":"null"}]},"schemaSource":{"anyOf":[{"type":"string","enum":["orpc","openapi","google-discovery","mcp","manual"]},{"type":"null"}]},"schemaSourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSourceHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"toolId":{"type":"string"},"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"inputSchema":{},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"anyOf":[{"type":"string"},{"type":"null"}]},"resultStrategy":{"anyOf":[{"type":"string"},{"type":"null"}]},"outputTemplate":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetRoute":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetAccessible":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"authRequired":{"default":false,"type":"boolean"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiredScopes":{"description":"MCP capability scopes a caller must hold to invoke this tool, resolved by the same function the MCP edge enforces with. Absent on write paths and on responses that do not carry the app's mcpConfig, because the answer depends on it — an empty array means the tool requires no scope, which is not the same as unknown. A disabled tool reports the scope it would require if enabled, since the edge serves only enabled tools.","type":"array","items":{"type":"string"}},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"],"additionalProperties":false}},{"type":"null"}]},"executionTaskSupport":{"default":null,"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"writeCapability":{"description":"Absent or null means UNDECLARED — nobody has stated what this tool does — which every gate treats as write-capable. It is NOT a synonym for read-only, and absent is also how code-built tools that carry explicit annotations arrive.","default":null,"anyOf":[{"type":"string","enum":["read","write","destructive"]},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"invocationStatus":{"anyOf":[{"type":"object","properties":{"invoking":{"type":"string","maxLength":64},"invoked":{"type":"string","maxLength":64}},"additionalProperties":false},{"type":"null"}]},"fileParams":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"widgetDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"widgetPrefersBorder":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"widgetDomain":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"schemaDialect":{"default":null,"anyOf":[{"type":"string","enum":["json-schema-2020-12"]},{"type":"null"}]},"schemaSource":{"default":null,"anyOf":[{"type":"string","enum":["orpc","openapi","google-discovery","mcp","manual"]},{"type":"null"}]},"schemaSourceRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSourceHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"schemaSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sortOrder":{"anyOf":[{"type":"number"},{"type":"null"}]},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolCspDomains":{"type":"array","items":{"type":"object","properties":{"toolId":{"type":"string"},"domainType":{"type":"string","enum":["connect","resource","img","script","style","frame","redirect"]},"domainUrl":{"type":"string"},"active":{"type":"boolean"}},"required":["toolId","domainType","domainUrl"],"additionalProperties":false}}},"required":["id","toolId","toolTypeId","title","description","inputSchema","outputSchema","adapterScope","resultStrategy","outputTemplate","widgetKey","widgetRoute","widgetAccessible","authRequired","visibility","icons","executionTaskSupport","annotations","meta","invocationStatus","fileParams","widgetDescription","widgetPrefersBorder","widgetDomain","config","schemaDialect","schemaSource","schemaSourceRef","schemaSourceHash","schemaSyncedAt","sortOrder","enabled","createdAt","updatedAt"],"additionalProperties":false}}}}}},"delete":{"operationId":"appTools.delete","summary":"Delete app tool","description":"Permanently delete an app tool","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"path","required":true,"name":"toolId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"}},"required":["success"],"additionalProperties":false}}}}}}},"/apps/{appId}/tools/order":{"put":{"operationId":"appTools.reorder","summary":"Reorder app tools","description":"Update the display order of app tools","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"toolIds":{"type":"array","items":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}},"required":["toolIds"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"updated":{"type":"number"}},"required":["success","updated"],"additionalProperties":false}}}}}}},"/apps/{appId}/tools/preflight":{"post":{"operationId":"appTools.preflight","summary":"Preflight tool config","description":"Validate tool config and simulate write-time outcome without persisting changes","tags":["app-tools"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"toolId":{"type":"string","minLength":1,"maxLength":100},"toolTypeId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"inputSchema":{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"adapterScope":{"type":"string"},"resultStrategy":{"type":"string","enum":["parallel_all","first_success","merge"]},"authRequired":{"default":false,"type":"boolean"},"config":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"operation":{"default":"update","type":"string","enum":["create","update"]},"dryRun":{"default":true,"type":"boolean"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"valid":{"type":"boolean"},"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"warnings":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"message":{"type":"string"}},"required":["path","message"],"additionalProperties":false}},"simulation":{"type":"object","properties":{"operation":{"type":"string","enum":["create","update"]},"wouldPersist":{"type":"boolean"},"requiresMcpRefresh":{"type":"boolean","const":true},"adapterScope":{"type":"object","properties":{"mode":{"type":"string","enum":["all","primary","ids","invalid"]},"requestedIds":{"type":"array","items":{"type":"string"}},"resolvedIds":{"type":"array","items":{"type":"string"}},"totalAvailable":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["mode","requestedIds","resolvedIds","totalAvailable"],"additionalProperties":false},"authRequired":{"type":"boolean"}},"required":["operation","wouldPersist","requiresMcpRefresh","adapterScope","authRequired"],"additionalProperties":false}},"required":["valid","errors","warnings","simulation"],"additionalProperties":false}}}}}}},"/templates":{"get":{"operationId":"templates.list","summary":"List templates","description":"List all active app templates","tags":["templates"],"parameters":[{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"vertical":{"type":"string"},"version":{"type":"number"},"capabilities":{"anyOf":[{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"],"additionalProperties":false},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"defaultZoom":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}},"additionalProperties":false}},"required":["enabled"],"additionalProperties":false},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},{"type":"null"}]},"adapters":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"tools":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"fieldMappings":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"extractionConfig":{"anyOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}},"additionalProperties":false},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}},"additionalProperties":false}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},{"type":"null"}]},"requiredFields":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"optionalFields":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"isActive":{"type":"boolean"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","description","vertical","version","isActive","createdAt","updatedAt"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}}}}},"/templates/{templateId}":{"get":{"operationId":"templates.get","summary":"Get template by ID","description":"Get detailed information about a specific template","tags":["templates"],"parameters":[{"in":"path","required":true,"name":"templateId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"template":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"vertical":{"type":"string"},"version":{"type":"number"},"capabilities":{"anyOf":[{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"],"additionalProperties":false},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"defaultZoom":{"type":"number"}},"required":["enabled"],"additionalProperties":false},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}},"additionalProperties":false}},"required":["enabled"],"additionalProperties":false},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},{"type":"null"}]},"adapters":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"tools":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"fieldMappings":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]},"extractionConfig":{"anyOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}},"additionalProperties":false},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}},"additionalProperties":false},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}},"additionalProperties":false}},"required":["enabled","method","arrayKey","siteName","siteSearchInstructions","prompt","schema"],"additionalProperties":{}},{"type":"null"}]},"requiredFields":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"optionalFields":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"isActive":{"type":"boolean"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","slug","description","vertical","version","isActive","createdAt","updatedAt"],"additionalProperties":false}},"required":["success","template"],"additionalProperties":false}}}}}}},"/templates/apply":{"post":{"operationId":"templates.apply","summary":"Apply template","description":"Create a new app from a template with custom configuration. Replaces placeholders like {siteName}, {siteContext}, etc.","tags":["templates"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"templateId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1,"pattern":"^[a-z0-9-]+$"},"primaryDomain":{"type":"string","minLength":1},"description":{"type":"string"},"logoUrl":{"type":"string","format":"uri"},"visibility":{"type":"string","enum":["public","private","disabled"]},"metadataOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"capabilitiesOverrides":{"type":"object","properties":{"vertical":{"type":"string","enum":["ecommerce","marketplace","automotive","real_estate","jobs","travel","crypto","content","services"]},"checkout":{"type":"object","properties":{"enabled":{"type":"boolean"},"methods":{"type":"array","items":{"type":"string","enum":["native","redirect","deeplink","modal"]}},"nativePayments":{"type":"boolean"},"minOrderValue":{"type":"number"},"currency":{"type":"string"}},"required":["enabled"]},"cart":{"type":"object","properties":{"enabled":{"type":"boolean"},"persistCart":{"type":"boolean"},"maxItems":{"type":"number"},"expirationHours":{"type":"number"}},"required":["enabled"]},"wishlist":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"]},"compare":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxItems":{"type":"number"}},"required":["enabled"]},"map":{"type":"object","properties":{"enabled":{"type":"boolean"},"defaultCenter":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"]},"defaultZoom":{"type":"number"}},"required":["enabled"]},"externalCta":{"type":"object","properties":{"enabled":{"type":"boolean"},"ctaText":{"type":"string"},"ctaUrl":{"type":"string"},"openInNewTab":{"type":"boolean"},"utmParams":{"type":"object","properties":{"source":{"type":"string"},"medium":{"type":"string"},"campaign":{"type":"string"}}}},"required":["enabled"]},"paymentMethods":{"type":"array","items":{"type":"string","enum":["credit_card","paypal","apple_pay","google_pay","klarna","sofort","ideal","giropay","crypto","bank_transfer","invoice"]}},"capabilitiesUpdatedAt":{"type":"string"},"capabilitiesSource":{"type":"string","enum":["auto","manual"]}},"additionalProperties":{}},"extractionConfigOverrides":{"type":"object","properties":{"enabled":{"type":"boolean"},"method":{"type":"string","const":"agent"},"arrayKey":{"type":"string","minLength":1},"siteName":{"type":"string","minLength":1},"siteSearchInstructions":{"type":"string","minLength":1},"prompt":{"type":"string","minLength":1},"schema":{"$ref":"#/components/schemas/__schema0"},"limit":{"type":"integer","minimum":1,"maximum":100},"priceFormat":{"type":"string","enum":["german","us","uk"]},"currency":{"type":"string","minLength":1,"maxLength":3},"fieldMappings":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}},"urlPatterns":{"type":"object","properties":{"listing":{"type":"array","items":{"type":"string"}},"detail":{"type":"array","items":{"type":"string"}},"product":{"type":"array","items":{"type":"string"}},"category":{"type":"array","items":{"type":"string"}},"ignore":{"type":"array","items":{"type":"string"}}},"additionalProperties":{}},"promptOnlyMode":{"type":"boolean"},"agent":{"type":"object","properties":{"model":{"type":"string","enum":["spark-1-mini","spark-1-pro"]},"maxCredits":{"type":"number","exclusiveMinimum":0},"urls":{"type":"array","items":{"type":"string","format":"uri"}},"strictConstrainToURLs":{"type":"boolean"},"timeout":{"type":"number","exclusiveMinimum":0}}},"stopConditions":{"type":"object","properties":{"maxDetailPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxListingPages":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxScrolls":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"maxClicks":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}},"normalization":{"type":"object","properties":{"idStrategy":{"type":"string","enum":["url","field","hash"]},"idField":{"type":"string","minLength":1},"imageStrategy":{"type":"string","enum":["image","images[0]"]},"featureFormat":{"type":"string","enum":["labelValue","string"]}}},"quality":{"type":"object","properties":{"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"minImages":{"type":"integer","minimum":0,"maximum":9007199254740991},"minCompletenessScore":{"type":"number","minimum":0,"maximum":1},"rejectMissingImage":{"type":"boolean"},"rejectMissingUrl":{"type":"boolean"}}}},"additionalProperties":{}},"adapterOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"toolConfigOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}}},"required":["templateId","organizationId","name","slug","primaryDomain"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"app":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"primaryDomain":{"type":"string"}},"required":["id","name","slug","primaryDomain"],"additionalProperties":false},"adaptersCreated":{"type":"number"},"toolsCreated":{"type":"number"}},"required":["success","app","adaptersCreated","toolsCreated"],"additionalProperties":false}}}}}}},"/tedis":{"get":{"operationId":"tedis.list","summary":"List tedis","description":"List the current organization's live tedis. Set includeRetired to list its retired tedis instead — deleting a tedi retires it rather than destroying it, so a retired worker's memory, rationale, skills, artifacts and growth history remain in the platform keyed by the id returned here. Retirement renames slug to free the name for a replacement worker; retiredSlug carries the name the worker answered to.","tags":["tedis"],"parameters":[{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"includeRetired","schema":{"description":"Lifecycle: absent/false lists the organization's live tedis; true lists ONLY its retired ones. The two sets are disjoint so a retired worker can never be mistaken for an operating one in the default view.","type":"boolean"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string","enum":["personal","organization"]},{"type":"null"}]},"name":{"type":"string"},"slug":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeMcpResourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"personality":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"installedSkills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"installedPlugins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["active","paused","error","provisioning"]},{"type":"null"}]},"billingState":{"anyOf":[{"type":"string","enum":["cold","warm","active"]},{"type":"null"}]},"workerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"r2BucketName":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolPolicy":{"anyOf":[{"type":"object","properties":{"bash":{"default":"approve-first-then-allow","type":"string","enum":["always-allow","approve-first-then-allow","always-approve"]},"browser":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"browserEgress":{"type":"object","properties":{"allowedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"deniedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}}},"required":["allowedHostnames","deniedHostnames"],"additionalProperties":false},"github":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"deploy":{"default":"always-approve","type":"string","enum":["always-allow","always-approve"]}},"required":["bash","browser","github","deploy"],"additionalProperties":false},{"type":"null"}]},"selfImprovementPolicy":{"anyOf":[{"type":"object","properties":{"memoryAppend":{"default":"auto","type":"string","enum":["auto","approval-required"]},"skillRefUpdate":{"default":"pr-required","type":"string","enum":["auto","pr-required","pr-and-approval"]},"newSkill":{"default":"pr-and-approval","type":"string","enum":["pr-required","pr-and-approval"]},"cronJob":{"default":"approval-required","type":"string","enum":["auto","approval-required"]},"configChange":{"default":"approval-required","type":"string","enum":["auto","approval-required"]}},"required":["memoryAppend","skillRefUpdate","newSkill","cronJob","configChange"],"additionalProperties":false},{"type":"null"}]},"budgets":{"anyOf":[{"type":"object","properties":{"dailyTokenLimit":{"default":2000000,"description":"Daily local token ceiling; -1 uses shared organization capacity without an individual ceiling.","type":"number"},"dailyMessageLimit":{"default":200,"description":"Daily local message ceiling; -1 disables the individual message ceiling.","type":"number"},"operatorTokenReserve":{"default":400000,"type":"number"},"operatorMessageReserve":{"default":20,"type":"number"},"governedLearningTokenReserve":{"default":400000,"type":"number"},"governedLearningMessageReserve":{"default":80,"type":"number"},"maxCronJobs":{"default":20,"type":"number"},"maxIterationsPerTask":{"default":10,"type":"number"},"browserBudgetDaily":{"default":50,"type":"number"},"aiGatewayPolicy":{"type":"object","properties":{"allowedModelTiers":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["economy","balanced","frontier"]}},"dailyTokenLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"dailySpendLimitMicros":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"required":["dailyTokenLimit","dailyMessageLimit","operatorTokenReserve","operatorMessageReserve","governedLearningTokenReserve","governedLearningMessageReserve","maxCronJobs","maxIterationsPerTask","browserBudgetDaily"],"additionalProperties":false},{"type":"null"}]},"quietHours":{"anyOf":[{"type":"object","properties":{"start":{"default":"22:00","type":"string"},"end":{"default":"07:00","type":"string"},"timezone":{"default":"Europe/Berlin","type":"string"},"emergencyOverride":{"default":true,"type":"boolean"}},"required":["start","end","timezone","emergencyOverride"],"additionalProperties":false},{"type":"null"}]},"channels":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"cronJobs":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"schedule":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"}},"required":["name","schedule","enabled"],"additionalProperties":false}},{"type":"null"}]},"repoConfig":{"anyOf":[{"type":"object","properties":{"repoUrl":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},"branch":{"type":"string","minLength":1,"maxLength":100},"worktreePath":{"type":"string","minLength":1,"maxLength":512}},"required":["repoUrl"],"additionalProperties":false},{"type":"null"}]},"runtimeOverrides":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"runtimeState":{"anyOf":[{"type":"string","enum":["active","standby","archived"]},{"type":"null"}]},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastHeartbeatAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"idleSince":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtimeStatus":{"anyOf":[{"type":"string","enum":["running","sleeping","starting","error","unknown"]},{"type":"null"}]},"runtimeKind":{"anyOf":[{"type":"string","const":"agent"},{"type":"null"}]},"isolateAgentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Lifecycle: null/absent on every live tedi, and absent entirely on rows read before the retirement columns existed. Non-null means the worker was retired (soft-deleted) at this ISO timestamp — its identity and runtime are gone, but its memory, rationale, skills, artifacts and growth history are retained under this id.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredSlug":{"description":"Lifecycle: set only alongside retiredAt. The slug the worker answered to before retirement renamed `slug` to free the permanently unique name for a replacement worker.","anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","ownerUserId","scope","name","slug","displayName","externalRef","tags","personality","avatar","timezone","language","installedSkills","installedPlugins","status","billingState","workerName","r2BucketName","runtimeStatus","lastSeenAt","lastSyncAt","createdAt","updatedAt"],"additionalProperties":{}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"503":{"description":"Embedded Tedi session is temporarily unavailable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ServiceUnavailable"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"post":{"operationId":"tedis.create","summary":"Create tedi","description":"Create and provision a digital worker in the caller's organization.","tags":["tedis"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"description":"Organization to create the tedi in. Defaults to the caller's org; a different org requires platform-admin authority.","type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string","minLength":1,"maxLength":100},"slug":{"type":"string","minLength":1,"maxLength":50,"pattern":"^[a-z0-9-]+$"},"displayName":{"type":"string","maxLength":100},"externalRef":{"type":"string","maxLength":200},"tags":{"maxItems":32,"type":"array","items":{"type":"string","minLength":1,"maxLength":64}},"personality":{"type":"string","maxLength":5000},"timezone":{"type":"string","maxLength":50},"language":{"type":"string","maxLength":10},"r2BucketName":{"type":"string"},"workerName":{"type":"string"},"runtimeOverrides":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"runtimeKind":{"description":"Runtime adapter tier: 'agent' (Worker+DO Agent runtime).","type":"string","const":"agent"},"isolateAgentId":{"description":"Optional DO agent id pin for the Agent runtime.","anyOf":[{"type":"string"},{"type":"null"}]},"registerDescopeAih":{"default":false,"description":"Opt in to creating a per-tedi Descope AIH MCP server for standalone OAuth or cross-tedi M2M.","type":"boolean"}},"required":["name"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string","enum":["personal","organization"]},{"type":"null"}]},"name":{"type":"string"},"slug":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeMcpResourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"personality":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"installedSkills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"installedPlugins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["active","paused","error","provisioning"]},{"type":"null"}]},"billingState":{"anyOf":[{"type":"string","enum":["cold","warm","active"]},{"type":"null"}]},"workerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"r2BucketName":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolPolicy":{"anyOf":[{"type":"object","properties":{"bash":{"default":"approve-first-then-allow","type":"string","enum":["always-allow","approve-first-then-allow","always-approve"]},"browser":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"browserEgress":{"type":"object","properties":{"allowedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"deniedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}}},"required":["allowedHostnames","deniedHostnames"],"additionalProperties":false},"github":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"deploy":{"default":"always-approve","type":"string","enum":["always-allow","always-approve"]}},"required":["bash","browser","github","deploy"],"additionalProperties":false},{"type":"null"}]},"selfImprovementPolicy":{"anyOf":[{"type":"object","properties":{"memoryAppend":{"default":"auto","type":"string","enum":["auto","approval-required"]},"skillRefUpdate":{"default":"pr-required","type":"string","enum":["auto","pr-required","pr-and-approval"]},"newSkill":{"default":"pr-and-approval","type":"string","enum":["pr-required","pr-and-approval"]},"cronJob":{"default":"approval-required","type":"string","enum":["auto","approval-required"]},"configChange":{"default":"approval-required","type":"string","enum":["auto","approval-required"]}},"required":["memoryAppend","skillRefUpdate","newSkill","cronJob","configChange"],"additionalProperties":false},{"type":"null"}]},"budgets":{"anyOf":[{"type":"object","properties":{"dailyTokenLimit":{"default":2000000,"description":"Daily local token ceiling; -1 uses shared organization capacity without an individual ceiling.","type":"number"},"dailyMessageLimit":{"default":200,"description":"Daily local message ceiling; -1 disables the individual message ceiling.","type":"number"},"operatorTokenReserve":{"default":400000,"type":"number"},"operatorMessageReserve":{"default":20,"type":"number"},"governedLearningTokenReserve":{"default":400000,"type":"number"},"governedLearningMessageReserve":{"default":80,"type":"number"},"maxCronJobs":{"default":20,"type":"number"},"maxIterationsPerTask":{"default":10,"type":"number"},"browserBudgetDaily":{"default":50,"type":"number"},"aiGatewayPolicy":{"type":"object","properties":{"allowedModelTiers":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["economy","balanced","frontier"]}},"dailyTokenLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"dailySpendLimitMicros":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"required":["dailyTokenLimit","dailyMessageLimit","operatorTokenReserve","operatorMessageReserve","governedLearningTokenReserve","governedLearningMessageReserve","maxCronJobs","maxIterationsPerTask","browserBudgetDaily"],"additionalProperties":false},{"type":"null"}]},"quietHours":{"anyOf":[{"type":"object","properties":{"start":{"default":"22:00","type":"string"},"end":{"default":"07:00","type":"string"},"timezone":{"default":"Europe/Berlin","type":"string"},"emergencyOverride":{"default":true,"type":"boolean"}},"required":["start","end","timezone","emergencyOverride"],"additionalProperties":false},{"type":"null"}]},"channels":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"cronJobs":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"schedule":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"}},"required":["name","schedule","enabled"],"additionalProperties":false}},{"type":"null"}]},"repoConfig":{"anyOf":[{"type":"object","properties":{"repoUrl":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},"branch":{"type":"string","minLength":1,"maxLength":100},"worktreePath":{"type":"string","minLength":1,"maxLength":512}},"required":["repoUrl"],"additionalProperties":false},{"type":"null"}]},"runtimeOverrides":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"runtimeState":{"anyOf":[{"type":"string","enum":["active","standby","archived"]},{"type":"null"}]},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastHeartbeatAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"idleSince":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtimeStatus":{"anyOf":[{"type":"string","enum":["running","sleeping","starting","error","unknown"]},{"type":"null"}]},"runtimeKind":{"anyOf":[{"type":"string","const":"agent"},{"type":"null"}]},"isolateAgentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Lifecycle: null/absent on every live tedi, and absent entirely on rows read before the retirement columns existed. Non-null means the worker was retired (soft-deleted) at this ISO timestamp — its identity and runtime are gone, but its memory, rationale, skills, artifacts and growth history are retained under this id.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredSlug":{"description":"Lifecycle: set only alongside retiredAt. The slug the worker answered to before retirement renamed `slug` to free the permanently unique name for a replacement worker.","anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","ownerUserId","scope","name","slug","displayName","externalRef","tags","personality","avatar","timezone","language","installedSkills","installedPlugins","status","billingState","workerName","r2BucketName","runtimeStatus","lastSeenAt","lastSyncAt","createdAt","updatedAt"],"additionalProperties":{}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"503":{"description":"Embedded Tedi session is temporarily unavailable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ServiceUnavailable"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/tedis/{tediId}":{"get":{"operationId":"tedis.get","summary":"Get tedi","description":"Get one digital worker in the caller's organization.","tags":["tedis"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string","enum":["personal","organization"]},{"type":"null"}]},"name":{"type":"string"},"slug":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeMcpResourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"personality":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"installedSkills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"installedPlugins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["active","paused","error","provisioning"]},{"type":"null"}]},"billingState":{"anyOf":[{"type":"string","enum":["cold","warm","active"]},{"type":"null"}]},"workerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"r2BucketName":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolPolicy":{"anyOf":[{"type":"object","properties":{"bash":{"default":"approve-first-then-allow","type":"string","enum":["always-allow","approve-first-then-allow","always-approve"]},"browser":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"browserEgress":{"type":"object","properties":{"allowedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"deniedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}}},"required":["allowedHostnames","deniedHostnames"],"additionalProperties":false},"github":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"deploy":{"default":"always-approve","type":"string","enum":["always-allow","always-approve"]}},"required":["bash","browser","github","deploy"],"additionalProperties":false},{"type":"null"}]},"selfImprovementPolicy":{"anyOf":[{"type":"object","properties":{"memoryAppend":{"default":"auto","type":"string","enum":["auto","approval-required"]},"skillRefUpdate":{"default":"pr-required","type":"string","enum":["auto","pr-required","pr-and-approval"]},"newSkill":{"default":"pr-and-approval","type":"string","enum":["pr-required","pr-and-approval"]},"cronJob":{"default":"approval-required","type":"string","enum":["auto","approval-required"]},"configChange":{"default":"approval-required","type":"string","enum":["auto","approval-required"]}},"required":["memoryAppend","skillRefUpdate","newSkill","cronJob","configChange"],"additionalProperties":false},{"type":"null"}]},"budgets":{"anyOf":[{"type":"object","properties":{"dailyTokenLimit":{"default":2000000,"description":"Daily local token ceiling; -1 uses shared organization capacity without an individual ceiling.","type":"number"},"dailyMessageLimit":{"default":200,"description":"Daily local message ceiling; -1 disables the individual message ceiling.","type":"number"},"operatorTokenReserve":{"default":400000,"type":"number"},"operatorMessageReserve":{"default":20,"type":"number"},"governedLearningTokenReserve":{"default":400000,"type":"number"},"governedLearningMessageReserve":{"default":80,"type":"number"},"maxCronJobs":{"default":20,"type":"number"},"maxIterationsPerTask":{"default":10,"type":"number"},"browserBudgetDaily":{"default":50,"type":"number"},"aiGatewayPolicy":{"type":"object","properties":{"allowedModelTiers":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["economy","balanced","frontier"]}},"dailyTokenLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"dailySpendLimitMicros":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"required":["dailyTokenLimit","dailyMessageLimit","operatorTokenReserve","operatorMessageReserve","governedLearningTokenReserve","governedLearningMessageReserve","maxCronJobs","maxIterationsPerTask","browserBudgetDaily"],"additionalProperties":false},{"type":"null"}]},"quietHours":{"anyOf":[{"type":"object","properties":{"start":{"default":"22:00","type":"string"},"end":{"default":"07:00","type":"string"},"timezone":{"default":"Europe/Berlin","type":"string"},"emergencyOverride":{"default":true,"type":"boolean"}},"required":["start","end","timezone","emergencyOverride"],"additionalProperties":false},{"type":"null"}]},"channels":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"cronJobs":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"schedule":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"}},"required":["name","schedule","enabled"],"additionalProperties":false}},{"type":"null"}]},"repoConfig":{"anyOf":[{"type":"object","properties":{"repoUrl":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},"branch":{"type":"string","minLength":1,"maxLength":100},"worktreePath":{"type":"string","minLength":1,"maxLength":512}},"required":["repoUrl"],"additionalProperties":false},{"type":"null"}]},"runtimeOverrides":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"runtimeState":{"anyOf":[{"type":"string","enum":["active","standby","archived"]},{"type":"null"}]},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastHeartbeatAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"idleSince":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtimeStatus":{"anyOf":[{"type":"string","enum":["running","sleeping","starting","error","unknown"]},{"type":"null"}]},"runtimeKind":{"anyOf":[{"type":"string","const":"agent"},{"type":"null"}]},"isolateAgentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Lifecycle: null/absent on every live tedi, and absent entirely on rows read before the retirement columns existed. Non-null means the worker was retired (soft-deleted) at this ISO timestamp — its identity and runtime are gone, but its memory, rationale, skills, artifacts and growth history are retained under this id.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredSlug":{"description":"Lifecycle: set only alongside retiredAt. The slug the worker answered to before retirement renamed `slug` to free the permanently unique name for a replacement worker.","anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","ownerUserId","scope","name","slug","displayName","externalRef","tags","personality","avatar","timezone","language","installedSkills","installedPlugins","status","billingState","workerName","r2BucketName","runtimeStatus","lastSeenAt","lastSyncAt","createdAt","updatedAt"],"additionalProperties":{}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"503":{"description":"Embedded Tedi session is temporarily unavailable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ServiceUnavailable"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"patch":{"operationId":"tedis.update","summary":"Update tedi","description":"Update the identity and governed configuration of an organization-owned digital worker.","tags":["tedis"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"displayName":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"externalRef":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"tags":{"maxItems":32,"type":"array","items":{"type":"string","minLength":1,"maxLength":64}},"personality":{"anyOf":[{"type":"string","maxLength":5000},{"type":"null"}]},"avatar":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"language":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}]},"status":{"type":"string","enum":["active","paused"]},"billingState":{"type":"string","enum":["cold","warm","active"]},"workerName":{"type":"string"},"r2BucketName":{"type":"string"},"toolPolicy":{"type":"object","properties":{"bash":{"default":"approve-first-then-allow","type":"string","enum":["always-allow","approve-first-then-allow","always-approve"]},"browser":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"browserEgress":{"type":"object","properties":{"allowedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"deniedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}}}},"github":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"deploy":{"default":"always-approve","type":"string","enum":["always-allow","always-approve"]}}},"selfImprovementPolicy":{"type":"object","properties":{"memoryAppend":{"default":"auto","type":"string","enum":["auto","approval-required"]},"skillRefUpdate":{"default":"pr-required","type":"string","enum":["auto","pr-required","pr-and-approval"]},"newSkill":{"default":"pr-and-approval","type":"string","enum":["pr-required","pr-and-approval"]},"cronJob":{"default":"approval-required","type":"string","enum":["auto","approval-required"]},"configChange":{"default":"approval-required","type":"string","enum":["auto","approval-required"]}}},"budgets":{"type":"object","properties":{"dailyTokenLimit":{"default":2000000,"description":"Daily local token ceiling; -1 uses shared organization capacity without an individual ceiling.","type":"number"},"dailyMessageLimit":{"default":200,"description":"Daily local message ceiling; -1 disables the individual message ceiling.","type":"number"},"operatorTokenReserve":{"default":400000,"type":"number"},"operatorMessageReserve":{"default":20,"type":"number"},"governedLearningTokenReserve":{"default":400000,"type":"number"},"governedLearningMessageReserve":{"default":80,"type":"number"},"maxCronJobs":{"default":20,"type":"number"},"maxIterationsPerTask":{"default":10,"type":"number"},"browserBudgetDaily":{"default":50,"type":"number"},"aiGatewayPolicy":{"type":"object","properties":{"allowedModelTiers":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["economy","balanced","frontier"]}},"dailyTokenLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"dailySpendLimitMicros":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}}}}},"quietHours":{"type":"object","properties":{"start":{"default":"22:00","type":"string"},"end":{"default":"07:00","type":"string"},"timezone":{"default":"Europe/Berlin","type":"string"},"emergencyOverride":{"default":true,"type":"boolean"}}},"channels":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"cronJobs":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"schedule":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"}},"required":["name","schedule","enabled"]}},"installedSkills":{"type":"array","items":{"type":"string"}},"installedPlugins":{"type":"array","items":{"type":"string"}},"runtimeOverrides":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"runtimeProfileId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"repoConfig":{"anyOf":[{"type":"object","properties":{"repoUrl":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},"branch":{"type":"string","minLength":1,"maxLength":100},"worktreePath":{"type":"string","minLength":1,"maxLength":512}},"required":["repoUrl"]},{"type":"null"}]},"mcpCapabilityProfile":{"type":"string","enum":["standard","org_admin","platform_admin"]}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"ownerUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"scope":{"anyOf":[{"type":"string","enum":["personal","organization"]},{"type":"null"}]},"name":{"type":"string"},"slug":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"descopeMcpResourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"externalRef":{"anyOf":[{"type":"string"},{"type":"null"}]},"tags":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"personality":{"anyOf":[{"type":"string"},{"type":"null"}]},"avatar":{"anyOf":[{"type":"string"},{"type":"null"}]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}]},"installedSkills":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"installedPlugins":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"status":{"anyOf":[{"type":"string","enum":["active","paused","error","provisioning"]},{"type":"null"}]},"billingState":{"anyOf":[{"type":"string","enum":["cold","warm","active"]},{"type":"null"}]},"workerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"r2BucketName":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolPolicy":{"anyOf":[{"type":"object","properties":{"bash":{"default":"approve-first-then-allow","type":"string","enum":["always-allow","approve-first-then-allow","always-approve"]},"browser":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"browserEgress":{"type":"object","properties":{"allowedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}},"deniedHostnames":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":253}}},"required":["allowedHostnames","deniedHostnames"],"additionalProperties":false},"github":{"default":"always-allow","type":"string","enum":["always-allow","always-approve"]},"deploy":{"default":"always-approve","type":"string","enum":["always-allow","always-approve"]}},"required":["bash","browser","github","deploy"],"additionalProperties":false},{"type":"null"}]},"selfImprovementPolicy":{"anyOf":[{"type":"object","properties":{"memoryAppend":{"default":"auto","type":"string","enum":["auto","approval-required"]},"skillRefUpdate":{"default":"pr-required","type":"string","enum":["auto","pr-required","pr-and-approval"]},"newSkill":{"default":"pr-and-approval","type":"string","enum":["pr-required","pr-and-approval"]},"cronJob":{"default":"approval-required","type":"string","enum":["auto","approval-required"]},"configChange":{"default":"approval-required","type":"string","enum":["auto","approval-required"]}},"required":["memoryAppend","skillRefUpdate","newSkill","cronJob","configChange"],"additionalProperties":false},{"type":"null"}]},"budgets":{"anyOf":[{"type":"object","properties":{"dailyTokenLimit":{"default":2000000,"description":"Daily local token ceiling; -1 uses shared organization capacity without an individual ceiling.","type":"number"},"dailyMessageLimit":{"default":200,"description":"Daily local message ceiling; -1 disables the individual message ceiling.","type":"number"},"operatorTokenReserve":{"default":400000,"type":"number"},"operatorMessageReserve":{"default":20,"type":"number"},"governedLearningTokenReserve":{"default":400000,"type":"number"},"governedLearningMessageReserve":{"default":80,"type":"number"},"maxCronJobs":{"default":20,"type":"number"},"maxIterationsPerTask":{"default":10,"type":"number"},"browserBudgetDaily":{"default":50,"type":"number"},"aiGatewayPolicy":{"type":"object","properties":{"allowedModelTiers":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["economy","balanced","frontier"]}},"dailyTokenLimit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"dailySpendLimitMicros":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"additionalProperties":false}},"required":["dailyTokenLimit","dailyMessageLimit","operatorTokenReserve","operatorMessageReserve","governedLearningTokenReserve","governedLearningMessageReserve","maxCronJobs","maxIterationsPerTask","browserBudgetDaily"],"additionalProperties":false},{"type":"null"}]},"quietHours":{"anyOf":[{"type":"object","properties":{"start":{"default":"22:00","type":"string"},"end":{"default":"07:00","type":"string"},"timezone":{"default":"Europe/Berlin","type":"string"},"emergencyOverride":{"default":true,"type":"boolean"}},"required":["start","end","timezone","emergencyOverride"],"additionalProperties":false},{"type":"null"}]},"channels":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"cronJobs":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"schedule":{"type":"string","minLength":1,"maxLength":100},"enabled":{"type":"boolean"}},"required":["name","schedule","enabled"],"additionalProperties":false}},{"type":"null"}]},"repoConfig":{"anyOf":[{"type":"object","properties":{"repoUrl":{"type":"string","format":"uri","pattern":"^https:\\/\\/.*"},"branch":{"type":"string","minLength":1,"maxLength":100},"worktreePath":{"type":"string","minLength":1,"maxLength":512}},"required":["repoUrl"],"additionalProperties":false},{"type":"null"}]},"runtimeOverrides":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"runtimeState":{"anyOf":[{"type":"string","enum":["active","standby","archived"]},{"type":"null"}]},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastHeartbeatAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"idleSince":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtimeStatus":{"anyOf":[{"type":"string","enum":["running","sleeping","starting","error","unknown"]},{"type":"null"}]},"runtimeKind":{"anyOf":[{"type":"string","const":"agent"},{"type":"null"}]},"isolateAgentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSeenAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"retiredAt":{"description":"Lifecycle: null/absent on every live tedi, and absent entirely on rows read before the retirement columns existed. Non-null means the worker was retired (soft-deleted) at this ISO timestamp — its identity and runtime are gone, but its memory, rationale, skills, artifacts and growth history are retained under this id.","anyOf":[{"type":"string"},{"type":"null"}]},"retiredSlug":{"description":"Lifecycle: set only alongside retiredAt. The slug the worker answered to before retirement renamed `slug` to free the permanently unique name for a replacement worker.","anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","ownerUserId","scope","name","slug","displayName","externalRef","tags","personality","avatar","timezone","language","installedSkills","installedPlugins","status","billingState","workerName","r2BucketName","runtimeStatus","lastSeenAt","lastSyncAt","createdAt","updatedAt"],"additionalProperties":{}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"503":{"description":"Embedded Tedi session is temporarily unavailable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ServiceUnavailable"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}},"delete":{"operationId":"tedis.delete","summary":"Delete (retire) tedi","description":"Retire an organization-owned digital worker through the supported lifecycle path. The worker stops immediately — its Descope identity, FGA grants and AIH MCP server are purged, its runtime is archived, and its slug is freed for a replacement — but its row is retained, so its memory, rationale, skills, artifacts, growth history and audit trail are NOT destroyed. List them again with tedis.list?includeRetired=true. Destroying that cognitive state requires the platform-admin tedis.decommission hardPurge path.","tags":["tedis"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"}},"required":["success"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"503":{"description":"Embedded Tedi session is temporarily unavailable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ServiceUnavailable"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/tedis/{tediId}/status":{"get":{"operationId":"tedis.getStatus","summary":"Get tedi runtime status","description":"Read the current runtime status of an organization-owned digital worker.","tags":["tedis"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"runtimeStatus":{"type":"string"},"lastSeenAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"runtimeVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"processCount":{"type":"number"},"slug":{"type":"string"}},"required":["runtimeStatus","lastSeenAt","lastSyncAt","runtimeVersion","processCount","slug"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"503":{"description":"Embedded Tedi session is temporarily unavailable","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ServiceUnavailable"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/tedi-app-assignments/by-app/{appId}":{"get":{"operationId":"tediAppAssignments.listByApp","summary":"List tedi assignments for an app","description":"List digital workers assigned to an organization-owned app.","tags":["tedi-app-assignments"],"parameters":[{"in":"path","required":true,"name":"appId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["operator","observer"]},"assignedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","appId","tediId","role","assignedBy","createdAt","updatedAt"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}}}}},"/tedi-app-assignments/by-tedi/{tediId}":{"get":{"operationId":"tediAppAssignments.listByTedi","summary":"List app assignments for a tedi","description":"List app assignments for an organization-owned digital worker.","tags":["tedi-app-assignments"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["operator","observer"]},"assignedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","appId","tediId","role","assignedBy","createdAt","updatedAt"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}}}}},"/tedi-app-assignments":{"post":{"operationId":"tediAppAssignments.create","summary":"Assign a tedi to an app","description":"Assign an organization-owned digital worker to an organization-owned app. The response carries `aihClientSync`: the FGA grant always succeeds, but the Descope AIH client sync can be `skipped` when the app has no MCP resource, and the caller must read that field rather than assume MCP access now works.","tags":["tedi-app-assignments"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"default":"operator","type":"string","enum":["operator","observer"]}},"required":["appId","tediId"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["operator","observer"]},"assignedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"aihClientSync":{"type":"object","properties":{"status":{"type":"string","enum":["created","updated","deleted","skipped"]},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mcpServerId":{"type":"string"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"secretNames":{"type":"object","properties":{"clientIdName":{"type":"string"},"clientSecretName":{"type":"string"}},"required":["clientIdName","clientSecretName"],"additionalProperties":false},"reason":{"type":"string"}},"required":["status","appId","appSlug","tediId","scopes"],"additionalProperties":false}},"required":["id","organizationId","appId","tediId","role","assignedBy","createdAt","updatedAt","aihClientSync"],"additionalProperties":false}}}}}}},"/tedi-app-assignments/{assignmentId}":{"delete":{"operationId":"tediAppAssignments.delete","summary":"Remove a tedi-app assignment","description":"Remove an app assignment inside the caller's organization.","tags":["tedi-app-assignments"],"parameters":[{"in":"path","required":true,"name":"assignmentId","schema":{"type":"string","minLength":1}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","const":true},"message":{"type":"string"}},"required":["success"],"additionalProperties":false}}}}}},"patch":{"operationId":"tediAppAssignments.updateRole","summary":"Update assignment role","description":"Update the role of a tedi-app assignment inside the caller's organization. The response carries `aihClientSync`: re-scoping the Descope AIH client can be `skipped` when the app has no MCP resource, so the caller must read that field rather than assume the new role's scopes took effect.","tags":["tedi-app-assignments"],"parameters":[{"in":"path","required":true,"name":"assignmentId","schema":{"type":"string","minLength":1}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["operator","observer"]}},"required":["role"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"role":{"type":"string","enum":["operator","observer"]},"assignedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"aihClientSync":{"type":"object","properties":{"status":{"type":"string","enum":["created","updated","deleted","skipped"]},"appId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"appSlug":{"type":"string"},"tediId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"mcpServerId":{"type":"string"},"clientId":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}},"secretNames":{"type":"object","properties":{"clientIdName":{"type":"string"},"clientSecretName":{"type":"string"}},"required":["clientIdName","clientSecretName"],"additionalProperties":false},"reason":{"type":"string"}},"required":["status","appId","appSlug","tediId","scopes"],"additionalProperties":false}},"required":["id","organizationId","appId","tediId","role","assignedBy","createdAt","updatedAt","aihClientSync"],"additionalProperties":false}}}}}}},"/organizations/{organizationId}/usage":{"get":{"operationId":"orgUsage.getOrgUsage","summary":"Get organization-level token usage and cost aggregation","description":"Aggregates token usage across all tedis in the org. Shows totals, per-tedi breakdown, daily chart data, and plan limit comparison.","tags":["org-usage"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string"}},{"in":"query","name":"period","schema":{"default":"30d","type":"string","enum":["24h","7d","30d"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"window","schema":{"description":"Exact billing window for OS charts; omitted by legacy callers that intentionally request a rolling period","type":"object","properties":{"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["from","to"]},"allowEmptyValue":true,"allowReserved":true,"style":"deepObject","explode":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string"},"status":{"type":"string"}},"required":["id","name","tier","status"],"additionalProperties":false},"period":{"type":"string","enum":["24h","7d","30d"]},"window":{"type":"object","properties":{"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["from","to"],"additionalProperties":false},"totals":{"type":"object","properties":{"totalTokens":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"activeTedis":{"type":"number"}},"required":["totalTokens","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","estimatedCostUsd","activeTedis"],"additionalProperties":false},"planLimits":{"type":"object","properties":{"maxTokensPerMonth":{"type":"number"},"currentMonthTokens":{"type":"number"},"usagePct":{"anyOf":[{"type":"number"},{"type":"null"}]},"maxTedis":{"type":"number"},"currentTedis":{"type":"number"}},"required":["maxTokensPerMonth","currentMonthTokens","usagePct","maxTedis","currentTedis"],"additionalProperties":false},"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"}},"required":["date","totalTokens","estimatedCostUsd","inputTokens","outputTokens"],"additionalProperties":false}},"tediBreakdown":{"type":"array","items":{"type":"object","properties":{"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"cacheHitRate":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["tediId","tediName","tediSlug","totalTokens","estimatedCostUsd","cacheHitRate"],"additionalProperties":false}},"modelBreakdown":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"snapshotCount":{"type":"number"}},"required":["model","provider","providerResource","deployment","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","snapshotCount"],"additionalProperties":false}},"sourceBreakdown":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"sessionType":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"rowCount":{"type":"number"}},"required":["source","sessionType","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","rowCount"],"additionalProperties":false}}},"required":["organization","period","window","totals","planLimits","daily","tediBreakdown","modelBreakdown","sourceBreakdown"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}/cost-drilldown":{"get":{"operationId":"orgUsage.getCostDrilldown","summary":"Get organization cost drilldown","description":"Returns billing-grade model cost attribution across tedis, sources, billing categories, sessions, provider resources, models, and days.","tags":["org-usage"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string"}},{"in":"query","name":"period","schema":{"default":"7d","type":"string","enum":["24h","7d","30d"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"tediId","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"source","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"model","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"includeUnattributed","schema":{"default":true,"type":"boolean"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"sessionLimit","schema":{"default":50,"type":"integer","minimum":1,"maximum":500},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string"},"status":{"type":"string"}},"required":["id","name","tier","status"],"additionalProperties":false},"period":{"type":"string","enum":["24h","7d","30d"]},"window":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"totals":{"type":"object","properties":{"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"nonBillableCostUsd":{"type":"number"},"unattributedCostUsd":{"type":"number"}},"required":["inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens","estimatedCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","nonBillableCostUsd","unattributedCostUsd"],"additionalProperties":false},"billing":{"type":"object","properties":{"pricingVersion":{"type":"string"},"attributionVersion":{"type":"string"},"dailyRunRateUsd":{"type":"number"},"projectedMonthlyCostUsd":{"type":"number"},"invoiceReady":{"type":"boolean"},"invoiceReadyTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"quarantinedTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"quarantinedCostShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"unattributedShare":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["pricingVersion","attributionVersion","dailyRunRateUsd","projectedMonthlyCostUsd","invoiceReady","invoiceReadyTokenShare","quarantinedTokenShare","quarantinedCostShare","unattributedShare"],"additionalProperties":false},"dataQuality":{"type":"object","properties":{"level":{"type":"string","enum":["ok","warning","critical"]},"score":{"type":"number"},"rowCount":{"type":"number"},"issueRowCount":{"type":"number"},"totalTokens":{"type":"number"},"issueTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"issueCostUsd":{"type":"number"},"issueTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"issueCostShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"pricedTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"unknownModelTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"zeroCostTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["unknown_model","unpriced_tokens","ingestion_quarantined","empty_ledger"]},"severity":{"type":"string","enum":["warning","critical"]},"message":{"type":"string"},"rowCount":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"tokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"costShare":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["code","severity","message","rowCount","totalTokens","totalCostUsd","tokenShare","costShare"],"additionalProperties":false}},"byTedi":{"type":"array","items":{"type":"object","properties":{"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"},"rowCount":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"issueRowCount":{"type":"number"},"issueTokens":{"type":"number"},"issueCostUsd":{"type":"number"},"issueTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"issueCostShare":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["tediId","tediName","tediSlug","rowCount","totalTokens","totalCostUsd","issueRowCount","issueTokens","issueCostUsd","issueTokenShare","issueCostShare"],"additionalProperties":false}},"recentProblemRows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"},"snapshotAt":{"type":"string"},"model":{"type":"string"},"source":{"type":"string"},"sessionType":{"type":"string"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"flags":{"type":"array","items":{"type":"string","enum":["unknown_model","unpriced_tokens","ingestion_quarantined","empty_ledger"]}}},"required":["id","tediId","tediName","tediSlug","snapshotAt","model","source","sessionType","totalTokens","estimatedCostUsd","flags"],"additionalProperties":false}},"recommendations":{"type":"array","items":{"type":"string"}}},"required":["level","score","rowCount","issueRowCount","totalTokens","issueTokens","totalCostUsd","issueCostUsd","issueTokenShare","issueCostShare","pricedTokenShare","unknownModelTokenShare","zeroCostTokenShare","issues","byTedi","recentProblemRows","recommendations"],"additionalProperties":false},"byTedi":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"rowCount":{"type":"number"},"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"}},"required":["key","label","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","rowCount","tediId","tediName","tediSlug"],"additionalProperties":false}},"bySource":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"rowCount":{"type":"number"},"source":{"type":"string"},"sessionType":{"type":"string"}},"required":["key","label","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","rowCount","source","sessionType"],"additionalProperties":false}},"byCategory":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"rowCount":{"type":"number"},"billingCategory":{"type":"string"}},"required":["key","label","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","rowCount","billingCategory"],"additionalProperties":false}},"byModel":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"rowCount":{"type":"number"},"model":{"type":"string"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["key","label","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","rowCount","model","provider","providerResource","deployment"],"additionalProperties":false}},"byResource":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"rowCount":{"type":"number"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerBaseUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["key","label","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","rowCount","provider","providerResource","providerBaseUrl","deployment"],"additionalProperties":false}},"daily":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"rowCount":{"type":"number"},"date":{"type":"string"}},"required":["key","label","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","rowCount","date"],"additionalProperties":false}}},"required":["organization","period","window","totals","billing","dataQuality","byTedi","bySource","byCategory","byModel","byResource","daily"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/organizations/{organizationId}/billing-ledger":{"get":{"operationId":"orgUsage.getBillingLedger","summary":"Get organization billing ledger","description":"Lists the newest normalized D1 tedi_call_costs rows while computing totals and data-quality aggregates across the complete filtered window.","tags":["org-usage"],"parameters":[{"in":"path","required":true,"name":"organizationId","schema":{"type":"string"}},{"in":"query","name":"period","schema":{"default":"7d","type":"string","enum":["24h","7d","30d"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"tediId","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"source","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"model","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"includeUnattributed","schema":{"default":true,"type":"boolean"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"limit","schema":{"default":200,"type":"integer","minimum":1,"maximum":1000},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string"},"status":{"type":"string"}},"required":["id","name","tier","status"],"additionalProperties":false},"period":{"type":"string","enum":["24h","7d","30d"]},"window":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"}},"required":["from","to"],"additionalProperties":false},"totals":{"type":"object","properties":{"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"nonBillableCostUsd":{"type":"number"},"unattributedCostUsd":{"type":"number"}},"required":["inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens","estimatedCostUsd","billableTokens","billableCostUsd","invoiceReadyTokens","invoiceReadyCostUsd","quarantinedTokens","quarantinedCostUsd","nonBillableCostUsd","unattributedCostUsd"],"additionalProperties":false},"billing":{"type":"object","properties":{"pricingVersion":{"type":"string"},"attributionVersion":{"type":"string"},"dailyRunRateUsd":{"type":"number"},"projectedMonthlyCostUsd":{"type":"number"},"invoiceReady":{"type":"boolean"},"invoiceReadyTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"quarantinedTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"quarantinedCostShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"unattributedShare":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["pricingVersion","attributionVersion","dailyRunRateUsd","projectedMonthlyCostUsd","invoiceReady","invoiceReadyTokenShare","quarantinedTokenShare","quarantinedCostShare","unattributedShare"],"additionalProperties":false},"dataQuality":{"type":"object","properties":{"level":{"type":"string","enum":["ok","warning","critical"]},"score":{"type":"number"},"rowCount":{"type":"number"},"issueRowCount":{"type":"number"},"totalTokens":{"type":"number"},"issueTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"issueCostUsd":{"type":"number"},"issueTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"issueCostShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"pricedTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"unknownModelTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"zeroCostTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"issues":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["unknown_model","unpriced_tokens","ingestion_quarantined","empty_ledger"]},"severity":{"type":"string","enum":["warning","critical"]},"message":{"type":"string"},"rowCount":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"tokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"costShare":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["code","severity","message","rowCount","totalTokens","totalCostUsd","tokenShare","costShare"],"additionalProperties":false}},"byTedi":{"type":"array","items":{"type":"object","properties":{"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"},"rowCount":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"issueRowCount":{"type":"number"},"issueTokens":{"type":"number"},"issueCostUsd":{"type":"number"},"issueTokenShare":{"anyOf":[{"type":"number"},{"type":"null"}]},"issueCostShare":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["tediId","tediName","tediSlug","rowCount","totalTokens","totalCostUsd","issueRowCount","issueTokens","issueCostUsd","issueTokenShare","issueCostShare"],"additionalProperties":false}},"recentProblemRows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"},"snapshotAt":{"type":"string"},"model":{"type":"string"},"source":{"type":"string"},"sessionType":{"type":"string"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"flags":{"type":"array","items":{"type":"string","enum":["unknown_model","unpriced_tokens","ingestion_quarantined","empty_ledger"]}}},"required":["id","tediId","tediName","tediSlug","snapshotAt","model","source","sessionType","totalTokens","estimatedCostUsd","flags"],"additionalProperties":false}},"recommendations":{"type":"array","items":{"type":"string"}}},"required":["level","score","rowCount","issueRowCount","totalTokens","issueTokens","totalCostUsd","issueCostUsd","issueTokenShare","issueCostShare","pricedTokenShare","unknownModelTokenShare","zeroCostTokenShare","issues","byTedi","recentProblemRows","recommendations"],"additionalProperties":false},"pagination":{"type":"object","properties":{"limit":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"returnedRows":{"type":"integer","minimum":0,"maximum":9007199254740991},"totalRows":{"type":"integer","minimum":0,"maximum":9007199254740991},"hasMore":{"type":"boolean"}},"required":["limit","returnedRows","totalRows","hasMore"],"additionalProperties":false},"rows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tediId":{"type":"string"},"tediName":{"type":"string"},"tediSlug":{"type":"string"},"snapshotAt":{"type":"string"},"model":{"type":"string"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerBaseUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]},"runId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workItemId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sessionKeyHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"sessionType":{"type":"string","enum":["tedi","tedi_observer","kernel","unattributed"]},"source":{"type":"string"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"rawEstimatedCostUsd":{"type":"number"},"costBasis":{"type":"string","enum":["provider_reported","pricing_table","unpriced"]},"dataQuality":{"type":"string","enum":["ok","quarantined_no_pricing","quarantined_failed"]},"sessionCount":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"billingCategory":{"type":"string"},"billable":{"type":"boolean"},"billableTokens":{"type":"number"},"billableCostUsd":{"type":"number"},"invoiceReady":{"type":"boolean"},"invoiceReadyTokens":{"type":"number"},"invoiceReadyCostUsd":{"type":"number"},"reconciliationStatus":{"type":"string","enum":["ready","quarantined"]},"reconciliationReasons":{"type":"array","items":{"type":"string","enum":["unknown_model","unpriced_tokens","ingestion_quarantined","empty_ledger"]}},"quarantinedTokens":{"type":"number"},"quarantinedCostUsd":{"type":"number"},"pricingVersion":{"type":"string"},"attributionVersion":{"type":"string"}},"required":["id","tediId","tediName","tediSlug","snapshotAt","model","provider","providerResource","providerBaseUrl","deployment","runId","workItemId","sessionKeyHash","sessionType","source","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens","estimatedCostUsd","rawEstimatedCostUsd","costBasis","dataQuality","sessionCount","createdAt","billingCategory","billable","billableTokens","billableCostUsd","invoiceReady","invoiceReadyTokens","invoiceReadyCostUsd","reconciliationStatus","reconciliationReasons","quarantinedTokens","quarantinedCostUsd","pricingVersion","attributionVersion"],"additionalProperties":false}}},"required":["organization","period","window","totals","billing","dataQuality","pagination","rows"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/tedis/{tediId}/usage":{"get":{"operationId":"tediUsage.getTediUsage","summary":"Get tedi token usage and efficiency analysis","description":"Returns token usage totals, efficiency metrics, optimization recommendations, and daily cost history for a tedi over a configurable time period, ingested directly from AI Gateway logs.","tags":["tedi-usage"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"query","name":"period","schema":{"default":"7d","type":"string","enum":["live","24h","7d","30d"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"includeRecommendations","schema":{"default":true,"type":"boolean"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"tedi":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"],"additionalProperties":false},"period":{"type":"string","enum":["live","24h","7d","30d"]},"totals":{"type":"object","properties":{"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"callCount":{"type":"number"},"toolCallsTotal":{"type":"number"},"toolCallsFailed":{"type":"number"}},"required":["inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens","estimatedCostUsd","callCount","toolCallsTotal","toolCallsFailed"],"additionalProperties":false},"efficiency":{"type":"object","properties":{"cacheHitRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"toolCallSuccessRate":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["cacheHitRate","toolCallSuccessRate"],"additionalProperties":false},"cost":{"type":"object","properties":{"totalUsd":{"type":"number"},"dailyAvgUsd":{"type":"number"},"modelBreakdown":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"sessionCount":{"type":"number"}},"required":["model","provider","providerResource","deployment","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens","estimatedCostUsd","sessionCount"],"additionalProperties":false}},"sourceBreakdown":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"sessionType":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"rowCount":{"type":"number"}},"required":["source","sessionType","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","rowCount"],"additionalProperties":false}}},"required":["totalUsd","dailyAvgUsd","modelBreakdown","sourceBreakdown"],"additionalProperties":false},"recommendations":{"type":"array","items":{"type":"string"}},"history":{"type":"object","properties":{"daily":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"callCount":{"type":"number"}},"required":["date","inputTokens","outputTokens","totalTokens","estimatedCostUsd","callCount"],"additionalProperties":false}}},"required":["daily"],"additionalProperties":false}},"required":["tedi","period","totals","efficiency","cost","recommendations","history"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/tedis/{tediId}/call-costs":{"get":{"operationId":"tediUsage.getCallCosts","summary":"Get per-model call cost attribution","description":"Returns direct per-call cost rows ingested from AI Gateway logs (one row per gateway log row), with a per-model summary for billing attribution.","tags":["tedi-usage"],"parameters":[{"in":"path","required":true,"name":"tediId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},{"in":"query","name":"period","schema":{"default":"7d","type":"string","enum":["24h","7d","30d"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"model","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"tediId":{"type":"string"},"period":{"type":"string","enum":["24h","7d","30d"]},"costs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"tediId":{"type":"string"},"snapshotAt":{"type":"string"},"model":{"type":"string"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]},"runId":{"anyOf":[{"type":"string"},{"type":"null"}]},"workItemId":{"anyOf":[{"type":"string"},{"type":"null"}]},"sessionKeyHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"sessionType":{"type":"string","enum":["tedi","tedi_observer","kernel","unattributed"]},"source":{"type":"string"},"inputTokens":{"type":"number"},"outputTokens":{"type":"number"},"cacheReadTokens":{"type":"number"},"cacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"estimatedCostUsd":{"type":"number"},"dataQuality":{"type":"string","enum":["ok","quarantined_no_pricing","quarantined_failed"]},"sessionCount":{"type":"number"},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","tediId","snapshotAt","model","provider","providerResource","deployment","runId","workItemId","sessionKeyHash","sessionType","source","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","totalTokens","estimatedCostUsd","dataQuality","sessionCount","createdAt"],"additionalProperties":false}},"summary":{"type":"array","items":{"type":"object","properties":{"model":{"type":"string"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"providerResource":{"anyOf":[{"type":"string"},{"type":"null"}]},"deployment":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"snapshotCount":{"type":"number"}},"required":["model","provider","providerResource","deployment","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","snapshotCount"],"additionalProperties":false}},"sourceSummary":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"sessionType":{"type":"string"},"totalInputTokens":{"type":"number"},"totalOutputTokens":{"type":"number"},"totalCacheReadTokens":{"type":"number"},"totalCacheWriteTokens":{"type":"number"},"totalTokens":{"type":"number"},"totalCostUsd":{"type":"number"},"rowCount":{"type":"number"}},"required":["source","sessionType","totalInputTokens","totalOutputTokens","totalCacheReadTokens","totalCacheWriteTokens","totalTokens","totalCostUsd","rowCount"],"additionalProperties":false}}},"required":["tediId","period","costs","summary","sourceSummary"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/catalog/apps":{"get":{"operationId":"catalog.list","summary":"List catalog apps","description":"List apps from the catalog with filtering and pagination. Only returns discoverable apps from trusted developers.","tags":["catalog"],"parameters":[{"in":"query","name":"search","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"category","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"connectorType","schema":{"type":"string","enum":["MCP","SERVICE","FIRST_PARTY_ECOSYSTEM","NATIVE"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"developerType","schema":{"type":"string","enum":["TRUSTED_PARTNER","OAI","THIRD_PARTY","UNTRUSTED"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"hasInteractive","schema":{"type":"boolean"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"hasWrites","schema":{"type":"boolean"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"healthStatus","schema":{"type":"string","enum":["healthy","degraded","unhealthy","requires_auth","blocked","unsupported","unknown"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"region","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"source","schema":{"type":"string","enum":["chatgpt","claude","gemini","copilot","official","tedix","tedi","community","manual"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"tag","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"sortBy","schema":{"type":"string","enum":["sourceCreatedAt","updatedAt","lastSyncedAt","name","relevance"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"sortDir","schema":{"type":"string","enum":["asc","desc"]},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":200},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"apps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source":{"anyOf":[{"type":"string","enum":["chatgpt","claude","gemini","copilot","official","tedix","tedi","community","manual"]},{"type":"null"}]},"sourceAppId":{"anyOf":[{"type":"string"},{"type":"null"}]},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"regions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"svgLogo":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"developer":{"anyOf":[{"type":"string"},{"type":"null"}]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"connectorType":{"anyOf":[{"type":"string"},{"type":"null"}]},"developerType":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasWrites":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hasInteractive":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hasFileSearch":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"keywordsForTriggering":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"version":{"anyOf":[{"type":"string"},{"type":"null"}]},"screenshotUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"healthStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"healthUptimePercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"mcpToolCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"sourceCreatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolSource":{"anyOf":[{"type":"string","enum":["upstream_mcp","tedix_app","openapi","google-discovery"]},{"type":"null"}]},"quality":{"type":"object","properties":{"score":{"type":"number","minimum":0,"maximum":100},"label":{"type":"string","enum":["Excellent","Good","Fair","Thin"]},"status":{"type":"string","enum":["publishable","thin","needs_review","quarantined"]},"logoStatus":{"type":"string","enum":["normalized","inline_svg","external_url","internal_url","missing"]},"sourceConfidence":{"type":"string","enum":["official","high","medium","low"]},"freshnessStatus":{"type":"string","enum":["fresh","aging","stale","unknown"]},"signals":{"type":"array","items":{"type":"string"}}},"required":["score","label","status","logoStatus","sourceConfidence","freshnessStatus","signals"],"additionalProperties":false},"installability":{"type":"object","properties":{"installable":{"type":"boolean"},"state":{"type":"string","enum":["installable","listing_only","service_connector","needs_base_app","needs_mcp_endpoint","disabled"]},"reason":{"type":"string"}},"required":["installable","state","reason"],"additionalProperties":false},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","source","sourceAppId","slug","regions","name","description","logoUrl","category","developer","website","connectorType","developerType","hasWrites","hasInteractive","hasFileSearch","keywordsForTriggering","version","screenshotUrl","healthStatus","healthUptimePercent","mcpToolCount","sourceCreatedAt","lastSyncedAt","toolSource","quality","installability","createdAt","updatedAt"],"additionalProperties":false}},"total":{"type":"number"},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","hasMore"],"additionalProperties":false}},"required":["apps","total","pagination"],"additionalProperties":false}}}}}}},"/catalog/apps/{slug}":{"get":{"operationId":"catalog.getBySlug","summary":"Get catalog app by slug","description":"Get detailed information about a catalog app including store listings and MCP tools","tags":["catalog"],"parameters":[{"in":"path","required":true,"name":"slug","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"modelDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"baseUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpEndpointNormalized":{"anyOf":[{"type":"string"},{"type":"null"}]},"toolSource":{"anyOf":[{"type":"string","enum":["upstream_mcp","tedix_app","openapi","google-discovery"]},{"type":"null"}]},"connectorType":{"anyOf":[{"type":"string"},{"type":"null"}]},"distributionChannel":{"anyOf":[{"type":"string"},{"type":"null"}]},"developerType":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}]},"category":{"anyOf":[{"type":"string"},{"type":"null"}]},"developer":{"anyOf":[{"type":"string"},{"type":"null"}]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"privacyPolicy":{"anyOf":[{"type":"string"},{"type":"null"}]},"termsOfService":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"svgLogo":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrlDark":{"anyOf":[{"type":"string"},{"type":"null"}]},"screenshots":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"keywordsForDiscovery":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"keywordsForTriggering":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"hasWrites":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hasInteractive":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hasFileSearch":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hasDeepResearch":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"hasSync":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"authTypes":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"mcpServerName":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpServerVersion":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpToolCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"mcpResourceCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"mcpPromptCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"mcpLastScannedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"mcpInstructions":{"anyOf":[{"type":"string"},{"type":"null"}]},"healthStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"healthLastCheckedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"healthConnectTimeMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"healthUptimePercent":{"anyOf":[{"type":"number"},{"type":"null"}]},"healthErrorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"screenshotUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"enrichedDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"seoDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"socialLinks":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"examplePrompts":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"raw":{"type":"string"},"cleanPrompt":{"type":"string"},"appMention":{"type":"string"},"screenshotUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceFileId":{"anyOf":[{"type":"string"},{"type":"null"}]},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}]},"source":{"type":"string","enum":["markdown","raw_html","sync"]}},"required":["raw","cleanPrompt","appMention"],"additionalProperties":false}},{"type":"null"}]},"categories":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"enrichedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"discoverability":{"type":"object","properties":{"score":{"type":"number","minimum":0,"maximum":100},"label":{"type":"string","enum":["Excellent","Good","Fair","Low"]},"criteria":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"score":{"type":"number"},"max":{"type":"number"}},"required":["label","score","max"],"additionalProperties":false}},"tips":{"type":"array","items":{"type":"object","properties":{"tip":{"type":"string"},"priority":{"type":"string","enum":["high","medium","low"]}},"required":["tip","priority"],"additionalProperties":false}}},"required":["score","label","criteria","tips"],"additionalProperties":false},"quality":{"type":"object","properties":{"score":{"type":"number","minimum":0,"maximum":100},"label":{"type":"string","enum":["Excellent","Good","Fair","Thin"]},"status":{"type":"string","enum":["publishable","thin","needs_review","quarantined"]},"logoStatus":{"type":"string","enum":["normalized","inline_svg","external_url","internal_url","missing"]},"sourceConfidence":{"type":"string","enum":["official","high","medium","low"]},"freshnessStatus":{"type":"string","enum":["fresh","aging","stale","unknown"]},"signals":{"type":"array","items":{"type":"string"}}},"required":["score","label","status","logoStatus","sourceConfidence","freshnessStatus","signals"],"additionalProperties":false},"installability":{"type":"object","properties":{"installable":{"type":"boolean"},"state":{"type":"string","enum":["installable","listing_only","service_connector","needs_base_app","needs_mcp_endpoint","disabled"]},"reason":{"type":"string"}},"required":["installable","state","reason"],"additionalProperties":false},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceCreatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"storeListings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"source":{"type":"string","enum":["chatgpt","claude","gemini","copilot","official","tedix","tedi","community","manual"]},"sourceAppId":{"type":"string"},"regions":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"storeUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"authRequired":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"storeLogoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"storeDescription":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastSyncedAt":{"type":"string"}},"required":["id","source","sourceAppId","regions","storeUrl","reviewStatus","authRequired","storeLogoUrl","storeDescription","lastSyncedAt"],"additionalProperties":false}},"tools":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"toolName":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"inputSchema":{},"outputSchema":{"anyOf":[{"type":"object","properties":{"type":{"anyOf":[{"type":"string","enum":["array","boolean","integer","null","number","object","string"]},{"minItems":1,"type":"array","items":{"type":"string","enum":["array","boolean","integer","null","number","object","string"]}}]},"properties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},"required":{"type":"array","items":{"type":"string","minLength":1}},"items":{"$ref":"#/components/schemas/__schema0"},"additionalProperties":{"anyOf":[{"type":"boolean"},{"$ref":"#/components/schemas/__schema0"}]}},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"icons":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"src":{"type":"string","minLength":1},"mimeType":{"type":"string"},"sizes":{"type":"array","items":{"type":"string","minLength":1}},"theme":{"type":"string","enum":["light","dark"]}},"required":["src"],"additionalProperties":false}},{"type":"null"}]},"executionTaskSupport":{"anyOf":[{"type":"string","enum":["forbidden","optional","required"]},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"title":{"type":"string"},"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"detectedAt":{"type":"string"},"lastSeenAt":{"type":"string"},"removedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastTestedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"testSuccessRate":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgLatencyMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"testCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"exampleInput":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"exampleOutput":{"anyOf":[{"$ref":"#/components/schemas/__schema0"},{"type":"null"}]}},"required":["id","toolName","description","inputSchema","annotations","detectedAt","lastSeenAt","removedAt","lastTestedAt","testSuccessRate","avgLatencyMs","testCount","exampleInput","exampleOutput"],"additionalProperties":false}},"resources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"uri":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}]},"icons":{"anyOf":[{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}}},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"audience":{"type":"array","items":{"type":"string"}},"priority":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"detectedAt":{"type":"string"},"lastSeenAt":{"type":"string"},"removedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","uri","name","title","description","mimeType","detectedAt","lastSeenAt","removedAt"],"additionalProperties":false}},"resourceTemplates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"uriTemplate":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}]},"icons":{"anyOf":[{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}}},{"type":"null"}]},"annotations":{"anyOf":[{"type":"object","properties":{"audience":{"type":"array","items":{"type":"string"}},"priority":{"type":"number"}},"additionalProperties":false},{"type":"null"}]},"meta":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/components/schemas/__schema0"}},{"type":"null"}]},"detectedAt":{"type":"string"},"lastSeenAt":{"type":"string"},"removedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","title","uriTemplate","description","mimeType","detectedAt","lastSeenAt","removedAt"],"additionalProperties":false}},"prompts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"promptName":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"arguments":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"required":{"type":"boolean"}},"required":["name"],"additionalProperties":false}},{"type":"null"}]},"detectedAt":{"type":"string"},"lastSeenAt":{"type":"string"},"removedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","promptName","description","arguments","detectedAt","lastSeenAt","removedAt"],"additionalProperties":false}}},"required":["id","slug","name","description","modelDescription","baseUrl","mcpEndpointNormalized","toolSource","connectorType","distributionChannel","developerType","status","category","developer","website","privacyPolicy","termsOfService","logoUrl","logoUrlDark","screenshots","keywordsForDiscovery","keywordsForTriggering","hasWrites","hasInteractive","hasFileSearch","hasDeepResearch","hasSync","authTypes","mcpServerName","mcpServerVersion","mcpToolCount","mcpResourceCount","mcpPromptCount","mcpLastScannedAt","mcpInstructions","healthStatus","healthLastCheckedAt","healthConnectTimeMs","healthUptimePercent","healthErrorMessage","screenshotUrl","enrichedDescription","seoDescription","socialLinks","examplePrompts","categories","enrichedAt","discoverability","quality","installability","lastSyncedAt","createdAt","updatedAt","sourceCreatedAt"],"additionalProperties":false},{"type":"null"}]}}}}}}},"/catalog/categories":{"get":{"operationId":"catalog.getCategories","summary":"Get category counts","description":"Get all categories with app counts","tags":["catalog"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"label":{"type":"string"},"count":{"type":"number"}},"required":["name","label","count"],"additionalProperties":false}}}}}}}},"/catalog/stats":{"get":{"operationId":"catalog.getStats","summary":"Get catalog statistics","description":"Get overall statistics including total apps, MCP count, and capability counts","tags":["catalog"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"number"},"mcp":{"type":"number"},"withInteractive":{"type":"number"},"withWrites":{"type":"number"},"sourceBreakdown":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"count":{"type":"number"}},"required":["source","count"],"additionalProperties":false}},"lastSyncedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"syncSource":{"anyOf":[{"type":"string"},{"type":"null"}]},"autoSyncEnabledBaseApps":{"type":"number"}},"required":["total","mcp","withInteractive","withWrites","sourceBreakdown","lastSyncedAt","syncSource"],"additionalProperties":false}}}}}}},"/catalog/health-summary":{"get":{"operationId":"catalog.getHealthSummary","summary":"Get health status summary","description":"Get catalog health, scan backlog, protocol-era inventory, and bounded 30-day successful compatibility usage","tags":["catalog"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"number"},"healthy":{"type":"number"},"degraded":{"type":"number"},"unhealthy":{"type":"number"},"requiresAuth":{"type":"number"},"blocked":{"type":"number"},"unsupported":{"type":"number"},"unknown":{"type":"number"},"qualityScorecard":{"type":"object","properties":{"version":{"type":"string","const":"catalog_quality_v1"},"score":{"type":"number","minimum":0,"maximum":100},"grade":{"type":"string","enum":["healthy","needs_attention","critical"]},"measuredAt":{"type":"string"},"dimensions":{"type":"object","properties":{"healthClassifiedPercent":{"type":"number","minimum":0,"maximum":100},"freshProtocolPercent":{"type":"number","minimum":0,"maximum":100},"backlogClearPercent":{"type":"number","minimum":0,"maximum":100}},"required":["healthClassifiedPercent","freshProtocolPercent","backlogClearPercent"],"additionalProperties":false},"remediation":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","enum":["scan_backlog","unhealthy_inventory","protocol_freshness"]},"severity":{"type":"string","enum":["warning","critical"]},"count":{"type":"integer","minimum":0,"maximum":9007199254740991},"action":{"type":"string"}},"required":["key","severity","count","action"],"additionalProperties":false}}},"required":["version","score","grade","measuredAt","dimensions","remediation"],"additionalProperties":false},"protocolInventory":{"type":"object","properties":{"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"},"unknown":{"type":"number"},"freshWithin24h":{"type":"object","properties":{"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"},"unknown":{"type":"number"}},"required":["modern2026","legacyStreamable","legacySse","unknown"],"additionalProperties":false},"staleOrUnscanned":{"type":"number"},"enabled":{"type":"object","properties":{"total":{"type":"number"},"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"},"unknown":{"type":"number"},"freshWithin24h":{"type":"object","properties":{"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"},"unknown":{"type":"number"}},"required":["modern2026","legacyStreamable","legacySse","unknown"],"additionalProperties":false},"staleOrUnscanned":{"type":"number"}},"required":["total","modern2026","legacyStreamable","legacySse","unknown","freshWithin24h","staleOrUnscanned"],"additionalProperties":false},"tedixOwned":{"type":"object","properties":{"total":{"type":"number"},"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"},"unknown":{"type":"number"},"freshWithin24h":{"type":"object","properties":{"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"},"unknown":{"type":"number"}},"required":["modern2026","legacyStreamable","legacySse","unknown"],"additionalProperties":false},"staleOrUnscanned":{"type":"number"},"apps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"endpoint":{"type":"string","format":"uri"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null when the latest Tedix-owned endpoint scan did not negotiate a revision."},"protocolEra":{"type":"string","enum":["modern_2026","legacy_streamable_2025","legacy_sse_2024","unknown"]},"healthStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null until the Tedix-owned endpoint has a persisted health result."},"protocolObservedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null until a scan successfully negotiates a protocol revision with the Tedix-owned endpoint."}},"required":["slug","endpoint","protocolVersion","protocolEra","healthStatus","protocolObservedAt"],"additionalProperties":false}},"appsTruncated":{"type":"boolean"}},"required":["total","modern2026","legacyStreamable","legacySse","unknown","freshWithin24h","staleOrUnscanned","apps","appsTruncated"],"additionalProperties":false},"legacyApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"protocolVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null when the last external scan did not negotiate a revision."},"protocolEra":{"type":"string","enum":["legacy_streamable_2025","legacy_sse_2024"]},"healthStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null for catalog rows that have not completed a health scan."},"protocolObservedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null until a scan successfully negotiates a protocol revision with the endpoint."}},"required":["slug","protocolVersion","protocolEra","healthStatus","protocolObservedAt"],"additionalProperties":false}},"legacyAppsTruncated":{"type":"boolean"}},"required":["modern2026","legacyStreamable","legacySse","unknown","freshWithin24h","staleOrUnscanned","enabled","tedixOwned","legacyApps","legacyAppsTruncated"],"additionalProperties":false},"compatibilityUsage":{"type":"object","properties":{"status":{"type":"string","enum":["available","unconfigured","unavailable"]},"from":{"type":"string"},"to":{"type":"string"},"sampled":{"type":"boolean","const":true},"uses":{"anyOf":[{"type":"object","properties":{"external":{"type":"object","properties":{"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"}},"required":["modern2026","legacyStreamable","legacySse"],"additionalProperties":false},"firstParty":{"type":"object","properties":{"modern2026":{"type":"number"},"legacyStreamable":{"type":"number"},"legacySse":{"type":"number"}},"required":["modern2026","legacyStreamable","legacySse"],"additionalProperties":false}},"required":["external","firstParty"],"additionalProperties":false},{"type":"null"}],"description":"Null when Analytics Engine querying is unconfigured or temporarily unavailable; never interpret null as zero use."},"callerClasses":{"type":"array","items":{"type":"object","properties":{"callerClass":{"type":"string","enum":["os","tedi_runtime","human_client","api_client","external_agent","internal_service","unknown","pre_attribution"]},"boundary":{"type":"string","enum":["external","first_party"]},"protocolEra":{"type":"string","enum":["modern_2026","legacy_streamable_2025","legacy_sse_2024"]},"estimatedUses":{"type":"number"}},"required":["callerClass","boundary","protocolEra","estimatedUses"],"additionalProperties":false}},"attributionCoverage":{"anyOf":[{"type":"object","properties":{"version":{"type":"string","const":"caller_class_v1"},"attributedUses":{"type":"number"},"unknownUses":{"type":"number"},"preAttributionUses":{"type":"number"},"attributedPercent":{"type":"number"}},"required":["version","attributedUses","unknownUses","preAttributionUses","attributedPercent"],"additionalProperties":false},{"type":"null"}],"description":"Null for legacy health snapshots produced before caller attribution coverage was recorded."},"legacyApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"protocolEra":{"type":"string","enum":["legacy_streamable_2025","legacy_sse_2024"]},"estimatedUses":{"type":"number"},"lastObservedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Null only when Analytics Engine returned a legacy aggregate without a valid maximum event timestamp."}},"required":["slug","protocolEra","estimatedUses","lastObservedAt"],"additionalProperties":false}},"legacyAppsTruncated":{"type":"boolean"}},"required":["status","from","to","sampled","uses","callerClasses","attributionCoverage","legacyApps","legacyAppsTruncated"],"additionalProperties":false},"protocolRetirementReadiness":{"type":"object","properties":{"windowDays":{"type":"number","const":30},"eras":{"type":"array","items":{"type":"object","properties":{"protocolEra":{"type":"string","enum":["legacy_streamable_2025","legacy_sse_2024"]},"status":{"type":"string","enum":["ready","blocked","insufficient_evidence"]},"externalUses":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Null when protocol-use telemetry is unavailable for the retirement window."},"catalogInventory":{"type":"number"},"enabledInventory":{"type":"number"},"unknownCallerUses":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Null when caller-attribution telemetry is unavailable for the retirement window."},"preAttributionUses":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Null when pre-attribution protocol telemetry is unavailable for the retirement window."},"blockers":{"type":"array","items":{"type":"string","enum":["telemetry_unavailable","external_usage_observed","catalog_inventory_present","enabled_inventory_present","unknown_caller_usage","pre_attribution_history_present"]}}},"required":["protocolEra","status","externalUses","catalogInventory","enabledInventory","unknownCallerUses","preAttributionUses","blockers"],"additionalProperties":false}}},"required":["windowDays","eras"],"additionalProperties":false},"scanBacklog":{"type":"object","properties":{"totalEnabledMcp":{"type":"number"},"dueNow":{"type":"number"},"staleOver24h":{"type":"number"},"staleOver7d":{"type":"number"},"skippedRequiresAuth":{"type":"number"},"skippedBlocked":{"type":"number"},"blockedZeroToolCandidates":{"type":"number"},"unhealthyZeroToolCandidates":{"type":"number"}},"required":["totalEnabledMcp","dueNow","staleOver24h","staleOver7d","skippedRequiresAuth","skippedBlocked","blockedZeroToolCandidates","unhealthyZeroToolCandidates"],"additionalProperties":false}},"required":["total","healthy","degraded","unhealthy","requiresAuth","blocked","unsupported","unknown","qualityScorecard","protocolInventory","compatibilityUsage","protocolRetirementReadiness"],"additionalProperties":false}}}}}}},"/catalog/apps/{catalogAppId}/install":{"post":{"operationId":"catalog.installFromCatalog","summary":"Install catalog app as org proxy app","description":"Create a personalized org proxy app from a catalog entry. The proxy keeps zero app_tools rows and inherits platform base app tools through aggregateApps.","tags":["catalog"],"parameters":[{"in":"path","required":true,"name":"catalogAppId","schema":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000},"visibility":{"default":"private","type":"string","enum":["public","private"]},"connectionProviderId":{"description":"Descope outbound app ID for the installed proxy app","type":"string"},"connectionScope":{"description":"Token scope for the installed proxy app","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"app":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"discoveryStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","organizationId","name","slug","description","logoUrl","visibility","discoveryStatus","createdAt","updatedAt"],"additionalProperties":false},"catalogAppId":{"type":"string"},"catalogAppName":{"type":"string"}},"required":["app","catalogAppId","catalogAppName"],"additionalProperties":false}}}}}}},"/catalog/tenant-openapi-mcp-app":{"post":{"operationId":"catalog.createTenantOpenApiMcpApp","summary":"Create tenant OpenAPI MCP app","description":"Create or reuse a tenant-owned OpenAPI-generated MCP app, register it as a tenant-authored catalog app, create/reuse its zero-tool tenant proxy, and attach that proxy to the caller-owned aggregator app.","tags":["catalog"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"specUrl":{"description":"OpenAPI JSON URL to fetch. Either specUrl or spec must be set.","type":"string","format":"uri"},"supplementalSpecUrls":{"description":"Optional additional OpenAPI documents merged with specUrl. Use for providers that publish one bounded specification per service or action group.","maxItems":4,"type":"array","items":{"type":"string","format":"uri"}},"spec":{"description":"Inline OpenAPI JSON object. Either specUrl or spec must be set.","$ref":"#/components/schemas/__schema0"},"baseUrl":{"description":"External API base URL used by generated tools. Required unless stored in metadata.mcpConfig.openApiSync.","type":"string","format":"uri"},"namespace":{"description":"Code Mode namespace stored in config._aggregateNamespace.","type":"string","minLength":1},"connectionProviderId":{"description":"Descope Token Vault provider ID for generated tool auth.","type":"string","minLength":1},"connectionScope":{"type":"string","enum":["tenant","user","hybrid"]},"authScopes":{"description":"Required Descope Token Vault scopes for generated external tools. OAuth providers such as Gmail, Google Calendar, or Google Drive use these to request a token with the exact API scopes the tool needs.","type":"array","items":{"type":"string"}},"authHeader":{"description":"Credential header name for generated external tools.","type":"string","minLength":1},"authTemplate":{"description":"Credential header template. Use {token} as the placeholder.","type":"string","minLength":1},"authEncoding":{"description":"Optional credential transform before inserting into authTemplate.","type":"string","enum":["base64"]},"staticHeaders":{"description":"Static headers merged into every generated external request.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"includeOperationIds":{"description":"Optional operationId allowlist.","type":"array","items":{"type":"string","minLength":1}},"includePathPrefixes":{"description":"Optional OpenAPI path prefix allowlist. Use this to import only a source-owned surface such as /v1/mgmt.","type":"array","items":{"type":"string","minLength":1}},"excludePathPrefixes":{"description":"Optional OpenAPI path prefix denylist applied after include filters.","type":"array","items":{"type":"string","minLength":1}},"stripPathPrefixes":{"description":"Optional OpenAPI path prefixes to remove from generated external endpoints after filtering.","type":"array","items":{"type":"string","minLength":1}},"pathReplacements":{"description":"Optional exact source-path replacements for provider aliases that cannot be represented by prefix stripping.","type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"type":"string","minLength":1}},"widgetDefaults":{"description":"Generic json-render widget defaults for generated REST tools. Keeps app/tool UI config in catalog sync data instead of apps/mcp-ui code.","type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"]}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}}},"widgetOverrides":{"description":"Per-tool json-render widget overrides keyed by generated tool id or OpenAPI operationId.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"enabled":{"description":"Set false to skip default json-render widget generation.","type":"boolean"},"layoutId":{"description":"Widget route/layout id. Defaults to the output array key.","type":"string","minLength":1},"title":{"description":"Optional heading text. Defaults to the output array label.","type":"string","minLength":1},"showTitle":{"description":"Defaults to true.","type":"boolean"},"dataPath":{"description":"JSON Pointer state path for table rows, e.g. /deployments. Defaults to the first top-level output array.","type":"string","minLength":1},"columns":{"description":"Explicit table columns. Defaults to scalar output fields.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","minLength":1,"description":"Field path in each row object."},"header":{"description":"Column label. Defaults to a title-cased field name.","type":"string","minLength":1},"format":{"type":"string","enum":["text","number","currency","percent","date","badge"]},"align":{"type":"string","enum":["left","center","right"]},"sortable":{"type":"boolean"},"width":{"type":"string","minLength":1}},"required":["field"]}},"columnLimit":{"description":"Maximum generated columns when columns is omitted.","type":"integer","exclusiveMinimum":0,"maximum":24},"pageSize":{"type":"integer","exclusiveMinimum":0,"maximum":100},"compact":{"type":"boolean"},"striped":{"type":"boolean"}}}},"replaceExisting":{"description":"Delete existing external tools on the target app that are not generated by this import. Defaults to true.","type":"boolean"},"limit":{"type":"integer","exclusiveMinimum":0,"maximum":1000},"appSlug":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9][a-z0-9-]*$","description":"DNS-safe app slug used for the tenant-owned base app."},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000},"catalogSlug":{"description":"Optional catalog slug. Defaults to appSlug.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9][a-z0-9-]*$"},"targetAggregatorSlug":{"type":"string","minLength":1,"maxLength":100,"description":"Caller-owned aggregator app to attach the generated proxy to."},"proxySlug":{"description":"Optional zero-tool proxy slug. Defaults to {appSlug}-{orgSlug}.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9][a-z0-9-]*$"},"prefix":{"description":"Code Mode namespace prefix for the aggregator entry.","type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z][a-z0-9_]*$"},"visibility":{"default":"private","type":"string","enum":["public","private"]},"toolScopes":{"default":["mcp:content.write"],"description":"Scopes required to use the installed namespace from the aggregator. platform:admin is intentionally excluded.","minItems":1,"type":"array","items":{"type":"string","enum":["mcp:tedis.read","mcp:tedis.write","mcp:tedis.admin","mcp:apps.read","mcp:apps.write","mcp:apps.admin","mcp:memory.read","mcp:memory.write","mcp:memory.admin","mcp:skills.read","mcp:skills.write","mcp:skills.admin","mcp:content.read","mcp:content.write","mcp:content.admin","mcp:catalog.read","mcp:catalog.write","mcp:catalog.admin","mcp:observe.read","mcp:observe.write","mcp:observe.admin","mcp:messaging.read","mcp:messaging.write","mcp:messaging.admin","mcp:settings.read","mcp:settings.write","mcp:settings.admin"]}},"category":{"type":"string","enum":["PRODUCTIVITY","DEVELOPER_TOOLS","LIFESTYLE","FINANCE","TRAVEL","DESIGN","EDUCATION","ENTERTAINMENT","SOCIAL","BUSINESS","HEALTH","NEWS","SHOPPING","UTILITIES","COLLABORATION","FOOD","BUSINESS_AND_ANALYTICS","MESSAGING_AND_SOCIAL"]},"developer":{"type":"string","maxLength":300},"website":{"type":"string","format":"uri"},"logoUrl":{"type":"string","format":"uri"},"connectionProvider":{"description":"Provision a dedicated Descope outbound app for this tenant-owned OpenAPI app. Mutually exclusive with connectionProviderId.","type":"object","properties":{"id":{"description":"Optional stable Descope outbound app ID. Restricted to platform callers; tenant callers get an org-scoped generated ID.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9][a-z0-9_-]*$"},"type":{"default":"api_key","type":"string","enum":["oauth","api_key"]},"name":{"type":"string","minLength":1,"maxLength":100},"description":{"type":"string","maxLength":254},"logo":{"type":"string","format":"uri"},"clientId":{"type":"string"},"clientSecret":{"type":"string"},"authorizationUrl":{"type":"string","format":"uri"},"authorizationUrlParams":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}},"tokenUrl":{"type":"string","format":"uri"},"tokenUrlParams":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}},"revocationUrl":{"type":"string","format":"uri"},"discoveryUrl":{"type":"string","format":"uri"},"pkce":{"type":"boolean"},"defaultScopes":{"type":"array","items":{"type":"string"}},"defaultRedirectUrl":{"type":"string","format":"uri"},"callbackDomain":{"type":"string"},"accessType":{"type":"string","enum":["offline","online"]},"prompt":{"type":"array","items":{"type":"string","enum":["none","login","consent","select_account"]}},"useDcr":{"type":"boolean"},"dcrUrl":{"type":"string","format":"uri"},"credentialProfile":{"type":"object","properties":{"inputFields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"default":"password","type":"string","enum":["text","password"]},"required":{"default":true,"type":"boolean"},"placeholder":{"type":"string"},"helpText":{"type":"string"},"defaultValue":{"type":"string"}},"required":["name","label"]}},"tokenTemplate":{"type":"string"},"authHeader":{"type":"string"},"authTemplate":{"type":"string"},"authEncoding":{"type":"string","enum":["base64"]},"helpText":{"type":"string"},"scopeGroups":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"description":{"type":"string"},"scopes":{"type":"array","items":{"type":"string"}}},"required":["id","label","scopes"]}},"defaultScopes":{"type":"array","items":{"type":"string"}}}}}},"catalogDiscoverable":{"default":false,"description":"Whether the tenant-authored catalog row should appear in public catalog discovery.","type":"boolean"},"specText":{"description":"Inline OpenAPI JSON or YAML text. Parsed into spec before queuing OpenApiSyncWorkflow.","type":"string"},"dryRun":{"default":true,"type":"boolean"}},"required":["appSlug","name","targetAggregatorSlug"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"dryRun":{"type":"boolean"},"created":{"type":"object","properties":{"catalogApp":{"type":"boolean"},"baseApp":{"type":"boolean"},"proxyApp":{"type":"boolean"},"connectionProvider":{"type":"boolean"}},"required":["catalogApp","baseApp","proxyApp","connectionProvider"],"additionalProperties":false},"connectionProvider":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string"},"type":{"type":"string","enum":["oauth","api_key"]},"status":{"type":"string","enum":["planned","created","updated","existing"]}},"required":["id","name","type","status"],"additionalProperties":false},{"type":"null"}]},"catalogApp":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"slug":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["chatgpt","claude","gemini","copilot","official","tedix","tedi","community","manual"]},"toolSource":{"type":"string","enum":["upstream_mcp","tedix_app","openapi","google-discovery"]},"isDiscoverable":{"type":"boolean"}},"required":["id","slug","name","source","toolSource","isDiscoverable"],"additionalProperties":false},"baseApp":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"catalogAppId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]}},"required":["id","organizationId","name","slug","catalogAppId"],"additionalProperties":false},"proxyInstall":{"type":"object","properties":{"dryRun":{"type":"boolean"},"created":{"type":"boolean"},"attached":{"type":"boolean"},"requiresConnection":{"type":"boolean"},"connectUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"connectionMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"proxyApp":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"catalogAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","organizationId","name","slug","visibility","sourceAppId","catalogAppId"],"additionalProperties":false},"targetAggregator":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","slug","organizationId"],"additionalProperties":false},"baseApp":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"],"additionalProperties":false},"catalogApp":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"],"additionalProperties":false},"aggregateEntry":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"type":"array","items":{"type":"string"}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["slug"],"additionalProperties":false},"toolScopes":{"type":"array","items":{"type":"string","enum":["mcp:tedis.read","mcp:tedis.write","mcp:tedis.admin","mcp:apps.read","mcp:apps.write","mcp:apps.admin","mcp:memory.read","mcp:memory.write","mcp:memory.admin","mcp:skills.read","mcp:skills.write","mcp:skills.admin","mcp:content.read","mcp:content.write","mcp:content.admin","mcp:catalog.read","mcp:catalog.write","mcp:catalog.admin","mcp:observe.read","mcp:observe.write","mcp:observe.admin","mcp:messaging.read","mcp:messaging.write","mcp:messaging.admin","mcp:settings.read","mcp:settings.write","mcp:settings.admin"]}},"summary":{"type":"string"}},"required":["dryRun","created","attached","proxyApp","targetAggregator","baseApp","catalogApp","aggregateEntry","toolScopes","summary"],"additionalProperties":false},"openApiPreview":{"anyOf":[{"type":"object","properties":{"appId":{"type":"string"},"dryRun":{"type":"boolean"},"totalOperations":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"planned":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"created":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"updated":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"inSync":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"deleted":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"skipped":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"failed":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"items":{"type":"array","items":{"type":"object","properties":{"toolId":{"type":"string"},"operationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"method":{"type":"string"},"path":{"type":"string"},"status":{"type":"string","enum":["inSync","wouldCreate","created","wouldUpdate","updated","wouldDelete","deleted","skipped","failed"]},"message":{"type":"string"}},"required":["toolId","operationId","method","path","status"],"additionalProperties":false}}},"required":["appId","dryRun","totalOperations","planned","created","updated","inSync","deleted","skipped","failed","items"],"additionalProperties":false},{"type":"null"}]},"openApiSync":{"type":"object","properties":{"appId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"workflowId":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["queued","running","skipped"]},"message":{"type":"string"}},"required":["appId","workflowId","status","message"],"additionalProperties":false},"summary":{"type":"string"}},"required":["dryRun","created","connectionProvider","catalogApp","baseApp","proxyInstall","openApiPreview","openApiSync","summary"],"additionalProperties":false}}}}}}},"/catalog/install-tenant-mcp-app":{"post":{"operationId":"tenantCatalog.installTenantMcpApp","summary":"Install catalog app into tenant MCP aggregator","description":"Create or reuse an org-owned zero-tool proxy for a prepared catalog app, then attach the proxy to a caller-owned aggregator app. Shared base-app preparation remains platform-owned; listing-only, unprepared, and missing-endpoint entries are blocked.","tags":["tenant-catalog"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"catalogAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"catalogAppSlug":{"type":"string","minLength":1,"maxLength":120},"targetAggregatorSlug":{"type":"string","minLength":1,"maxLength":100,"description":"Caller-owned aggregator app to attach the installed proxy to."},"slug":{"description":"Optional proxy app slug. Defaults to {baseAppSlug}-{orgSlug}.","type":"string","minLength":1,"maxLength":100},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"type":"string","maxLength":1000},"visibility":{"default":"private","type":"string","enum":["public","private"]},"prefix":{"description":"Code Mode namespace prefix for the aggregator entry.","type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z][a-z0-9_]*$"},"connectionProviderId":{"description":"Optional Descope outbound app ID to bind the tenant proxy namespace to.","type":"string","minLength":1,"maxLength":100},"connectionScope":{"description":"Credential scope for the installed namespace. Defaults to tenant when a connection provider is configured.","type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"description":"Optional provider scopes required by the installed namespace.","type":"array","items":{"type":"string","minLength":1}},"organizationQueryParam":{"description":"Optional upstream query-parameter name whose value is always derived from the caller organization slug. Use for prepared multitenant apps that require an org selector; callers cannot supply another tenant's value.","type":"string","minLength":1,"maxLength":64,"pattern":"^[A-Za-z][A-Za-z0-9_.-]*$"},"toolScopes":{"default":["mcp:content.write"],"description":"Scopes required to use the installed namespace from the aggregator. platform:admin is intentionally excluded.","minItems":1,"type":"array","items":{"type":"string","enum":["mcp:tedis.read","mcp:tedis.write","mcp:tedis.admin","mcp:apps.read","mcp:apps.write","mcp:apps.admin","mcp:memory.read","mcp:memory.write","mcp:memory.admin","mcp:skills.read","mcp:skills.write","mcp:skills.admin","mcp:content.read","mcp:content.write","mcp:content.admin","mcp:catalog.read","mcp:catalog.write","mcp:catalog.admin","mcp:observe.read","mcp:observe.write","mcp:observe.admin","mcp:messaging.read","mcp:messaging.write","mcp:messaging.admin","mcp:settings.read","mcp:settings.write","mcp:settings.admin"]}},"dryRun":{"default":true,"type":"boolean"}},"required":["targetAggregatorSlug"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"dryRun":{"type":"boolean"},"created":{"type":"boolean"},"attached":{"type":"boolean"},"requiresConnection":{"type":"boolean"},"connectUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"connectionMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"proxyApp":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"name":{"type":"string"},"slug":{"type":"string"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}]},"sourceAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"catalogAppId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","organizationId","name","slug","visibility","sourceAppId","catalogAppId"],"additionalProperties":false},"targetAggregator":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","slug","organizationId"],"additionalProperties":false},"baseApp":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"],"additionalProperties":false},"catalogApp":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"],"additionalProperties":false},"aggregateEntry":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"type":"array","items":{"type":"string"}},"forwardedQueryParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}}},"required":["slug"],"additionalProperties":false},"toolScopes":{"type":"array","items":{"type":"string","enum":["mcp:tedis.read","mcp:tedis.write","mcp:tedis.admin","mcp:apps.read","mcp:apps.write","mcp:apps.admin","mcp:memory.read","mcp:memory.write","mcp:memory.admin","mcp:skills.read","mcp:skills.write","mcp:skills.admin","mcp:content.read","mcp:content.write","mcp:content.admin","mcp:catalog.read","mcp:catalog.write","mcp:catalog.admin","mcp:observe.read","mcp:observe.write","mcp:observe.admin","mcp:messaging.read","mcp:messaging.write","mcp:messaging.admin","mcp:settings.read","mcp:settings.write","mcp:settings.admin"]}},"summary":{"type":"string"}},"required":["dryRun","created","attached","proxyApp","targetAggregator","baseApp","catalogApp","aggregateEntry","toolScopes","summary"],"additionalProperties":false}}}}}}},"/catalog/uninstall-tenant-mcp-app":{"post":{"operationId":"tenantCatalog.uninstallTenantMcpApp","summary":"Detach tenant MCP app from aggregator","description":"Detach an installed tenant proxy namespace from a caller-owned aggregator app. The base app, catalog entry, generated tools, proxy app, and credentials remain intact for later reinstall.","tags":["tenant-catalog"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"targetAggregatorSlug":{"type":"string","minLength":1,"maxLength":100,"description":"Caller-owned aggregator app to detach the namespace from."},"slug":{"description":"Proxy app slug to detach from the aggregator.","type":"string","minLength":1,"maxLength":100,"pattern":"^[a-z0-9][a-z0-9-]*$"},"prefix":{"description":"Optional Code Mode namespace prefix to detach.","type":"string","minLength":1,"maxLength":80,"pattern":"^[a-z][a-z0-9_]*$"},"removeToolScopes":{"default":true,"description":"Remove the detached namespace's tool-scope entries from the aggregator.","type":"boolean"},"dryRun":{"default":true,"type":"boolean"}},"required":["targetAggregatorSlug"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"dryRun":{"type":"boolean"},"detached":{"type":"boolean"},"targetAggregator":{"type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"slug":{"type":"string"},"organizationId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["id","slug","organizationId"],"additionalProperties":false},"aggregateEntry":{"anyOf":[{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"type":"string"},"toolIds":{"type":"array","items":{"type":"string"}},"endpointPrefixes":{"type":"array","items":{"type":"string"}},"connectionLabel":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false},{"type":"null"}]},"removedToolScopeKeys":{"type":"array","items":{"type":"string"}},"remainingAggregateApps":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"prefix":{"type":"string"},"toolIds":{"type":"array","items":{"type":"string"}},"endpointPrefixes":{"type":"array","items":{"type":"string"}},"connectionLabel":{"type":"string"},"connectionProviderId":{"type":"string"},"connectionScope":{"type":"string","enum":["tenant","user","hybrid"]},"connectionScopes":{"type":"array","items":{"type":"string"}}},"required":["slug"],"additionalProperties":false}},"summary":{"type":"string"}},"required":["dryRun","detached","targetAggregator","aggregateEntry","removedToolScopeKeys","remainingAggregateApps","summary"],"additionalProperties":false}}}}}}},"/audit":{"get":{"operationId":"audit.search","summary":"Search audit events","description":"Search audit events for the current organization with optional filters and pagination","tags":["audit"],"parameters":[{"in":"query","name":"actorId","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"action","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"resourceType","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"resourceId","schema":{"type":"string"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"startDate","schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"endDate","schema":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"limit","schema":{"default":50,"type":"number","minimum":1,"maximum":100},"allowEmptyValue":true,"allowReserved":true},{"in":"query","name":"offset","schema":{"default":0,"type":"number","minimum":0},"allowEmptyValue":true,"allowReserved":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"actorId":{"type":"string"},"actorType":{"type":"string","enum":["user","service","tedi","m2m","api_key","anonymous","external_agent","kernel"]},"action":{"type":"string"},"resourceType":{"type":"string"},"resourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{},{"type":"null"}]},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}]},"timestamp":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","organizationId","actorId","actorType","action","resourceType","resourceId","metadata","ipAddress","userAgent","timestamp"],"additionalProperties":false}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["limit","offset","total","hasMore"],"additionalProperties":false}},"required":["data","pagination"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}},"/audit/resource/{resourceType}/{resourceId}":{"get":{"operationId":"audit.getByResource","summary":"Get audit events by resource","description":"Get all audit events for a specific resource type and ID","tags":["audit"],"parameters":[{"in":"path","required":true,"name":"resourceType","schema":{"type":"string","minLength":1}},{"in":"path","required":true,"name":"resourceId","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"organizationId":{"type":"string"},"actorId":{"type":"string"},"actorType":{"type":"string","enum":["user","service","tedi","m2m","api_key","anonymous","external_agent","kernel"]},"action":{"type":"string"},"resourceType":{"type":"string"},"resourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{},{"type":"null"}]},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}]},"timestamp":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"}},"required":["id","organizationId","actorId","actorType","action","resourceType","resourceId","metadata","ipAddress","userAgent","timestamp"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/BadRequest"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"401":{"description":"Authentication required","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Unauthorized"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"403":{"description":"Insufficient permissions","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Forbidden"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/NotFound"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TooManyRequests"},{"$ref":"#/components/schemas/UndefinedError"}]}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/InternalServerError"},{"$ref":"#/components/schemas/UndefinedError"}]}}}}}}}},"security":[{"bearerAuth":[]},{"apiKey":[]}]}