{"openapi":"3.1.0","info":{"title":"Askable by Gentic AI — Platform API","description":"Tenant-scoped Gentic Platform API hosted on Askable. Authenticate with gpt_* platform access tokens. Product name: Askable by Gentic AI.","version":"0.2.0","contact":{"name":"Askable by Gentic AI","email":"karthik.bacherao@gentic.in","url":"https://askable.gentic.in/contact"}},"servers":[{"url":"https://askable.gentic.in/api/platform","description":"Askable production platform API"}],"tags":[{"name":"tenants","description":"Provision and inspect platform tenants"},{"name":"login","description":"Validate platform access tokens"},{"name":"db","description":"Tenant-scoped database operations"},{"name":"agent","description":"Askable agent CRUD"},{"name":"memory","description":"Agent memory graph proxies"},{"name":"workflow","description":"Workflow definitions and instances"},{"name":"knowledge","description":"Knowledge collections and crawl"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"gpt_* platform access token","description":"Platform access token issued at tenant provision time (prefix gpt_v1.)."}},"parameters":{"TenantIdHeader":{"name":"X-Tenant-Id","in":"header","required":false,"schema":{"type":"string"},"description":"Must match token tenant when provided."},"PgSchemaHeader":{"name":"X-PG-Schema","in":"header","required":false,"schema":{"type":"string"},"description":"Must match token schema when provided (public for askable-* tenants)."}}},"security":[{"bearerAuth":[]}],"paths":{"/tenants":{"get":{"tags":["tenants"],"summary":"List platform service ids and scope header names","operationId":"listPlatformTenantsMeta","responses":{"200":{"description":"Service catalog and scope documentation"}}},"post":{"tags":["tenants"],"summary":"Provision a tenant and issue a platform access token","operationId":"provisionPlatformTenant","responses":{"201":{"description":"Tenant created with accessToken"},"401":{"description":"Unauthorized"}}}},"/login/session":{"get":{"tags":["login"],"summary":"Validate bearer token and return tenant scope","operationId":"getPlatformLoginSession","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Session scope for the token"},"401":{"description":"Unauthorized"}}}},"/db/ops":{"get":{"tags":["db"],"summary":"List allowed logical tables for db ops","operationId":"listPlatformDbOps","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Allowed tables and docs"}}},"post":{"tags":["db"],"summary":"Run a tenant-scoped database operation","operationId":"runPlatformDbOps","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Operation result"},"400":{"description":"Validation or scope error"}}}},"/agent":{"get":{"tags":["agent"],"summary":"List Askable agents for the tenant","operationId":"listPlatformAgents","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Agent list"}}},"post":{"tags":["agent"],"summary":"Create an Askable agent","operationId":"createPlatformAgent","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"201":{"description":"Created agent"}}}},"/agent/{agentId}":{"get":{"tags":["agent"],"summary":"Read an Askable agent","operationId":"getPlatformAgent","parameters":[{"name":"agentId","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Agent"},"404":{"description":"Not found"}}},"patch":{"tags":["agent"],"summary":"Update an Askable agent","operationId":"patchPlatformAgent","parameters":[{"name":"agentId","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Updated agent"}}},"delete":{"tags":["agent"],"summary":"Delete an Askable agent","operationId":"deletePlatformAgent","parameters":[{"name":"agentId","in":"path","required":true,"schema":{"type":"string"}},{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Deleted"}}}},"/memory/query":{"post":{"tags":["memory"],"summary":"Query agent memory graph","operationId":"queryPlatformMemory","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Memory query result"}}}},"/workflow/definitions":{"get":{"tags":["workflow"],"summary":"List workflow definitions","operationId":"listWorkflowDefinitions","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Definitions"}}},"post":{"tags":["workflow"],"summary":"Create or compile a workflow definition","operationId":"createWorkflowDefinition","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Definition result"}}}},"/knowledge/collections":{"get":{"tags":["knowledge"],"summary":"List knowledge collections","operationId":"listKnowledgeCollections","parameters":[{"$ref":"#/components/parameters/TenantIdHeader"},{"$ref":"#/components/parameters/PgSchemaHeader"}],"responses":{"200":{"description":"Collections"}}}}},"externalDocs":{"description":"Askable developer docs index","url":"https://askable.gentic.in/developers"}}