Schema & registries
Read-only endpoints exposing a datasource's schema graph and driver metadata.
GET /api/datasources/{id}/schema.json
The datasource's mappings-and-links graph. Pass ?download=true to receive it as
a file attachment.
[
{
"as": "territories",
"from": [
"public+employeeterritories"
],
"to": [
"public+territories"
],
"name": "Territories",
"type": "sql",
"defn": [
{
"toField": "TerritoryID",
"operator": "=",
"toSchema": "public",
"fromField": "TerritoryID",
"toMapping": "territories",
"fromSchema": "public",
"fromMapping": "employeeterritories"
}
]
},
{
"as": "suppliers",
"from": [
"public+products"
],
"to": [
"public+suppliers"
],
"name": "Supplier",
"type": "sql",
"defn": [
{
"toField": "SupplierID",
"operator": "=",
"toSchema": "public",
"fromField": "SupplierID",
"toMapping": "suppliers",
"fromSchema": "public",
"fromMapping": "products"
}
]
},
{
"as": "shippers",
"from": [
"public+orders"
],
"to": [
"public+shippers"
],
"name": "Shipper",
"type": "sql",
"defn": [
{
"toField": "ShipperID",
"operator": "=",
"toSchema": "public",
"fromField": "ShipVia",
"toMapping": "shippers",
"fromSchema": "public",
"fromMapping": "orders"
}
]
},
"… 9 more items (12 total) — omitted from docs"
]
GET /api/datasources/{id}/autohint
Suggest likely links between mappings by matching field names and types — the basis for auto-detected relationships.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/autohint"
}
},
"mappings": {
"usstates": {
"fields": [
{
"id": "StateID",
"name": "State"
},
{
"id": "StateName",
"name": "State Name"
},
{
"id": "StateAbbr",
"name": "State Abbr"
},
"… 1 more items (4 total) — omitted from docs"
],
"name": "Usstates"
},
"territories": {
"fields": [
{
"id": "TerritoryID",
"name": "Territory"
},
{
"id": "TerritoryDescription",
"name": "Territory Description"
},
{
"id": "RegionID",
"name": "Region"
}
],
"name": "Territories"
},
"suppliers": {
"fields": [
{
"id": "Fax",
"name": "Fax"
},
{
"id": "HomePage",
"name": "Home Page"
},
{
"id": "SupplierID",
"name": "Supplier"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Suppliers"
},
"shippers_tmp": {
"fields": [
{
"id": "ShipperID",
"name": "Shipper"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "Phone",
"name": "Phone"
}
],
"name": "Shippers Tmp"
},
"shippers": {
"fields": [
{
"id": "ShipperID",
"name": "Shipper"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "Phone",
"name": "Phone"
}
],
"name": "Shippers"
},
"region": {
"fields": [
{
"id": "RegionID",
"name": "Region"
},
{
"id": "RegionDescription",
"name": "Region Description"
}
],
"name": "Region"
},
"products": {
"fields": [
{
"id": "ProductID",
"name": "Product"
},
{
"id": "ProductName",
"name": "Product Name"
},
{
"id": "SupplierID",
"name": "Supplier"
},
"… 7 more items (10 total) — omitted from docs"
],
"name": "Products"
},
"orders_1998": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 12 more items (15 total) — omitted from docs"
],
"name": "Orders 1998"
},
"orders_1997": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 12 more items (15 total) — omitted from docs"
],
"name": "Orders 1997"
},
"orders_1996": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 12 more items (15 total) — omitted from docs"
],
"name": "Orders 1996"
},
"orders": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "EmployeeID",
"name": "Employee"
},
"… 11 more items (14 total) — omitted from docs"
],
"name": "Orders"
},
"order_details_1998": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 3 more items (6 total) — omitted from docs"
],
"name": "Order Details 1998"
},
"order_details_1997": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 3 more items (6 total) — omitted from docs"
],
"name": "Order Details 1997"
},
"order_details_1996": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 3 more items (6 total) — omitted from docs"
],
"name": "Order Details 1996"
},
"order_details": {
"fields": [
{
"id": "OrderID",
"name": "Order"
},
{
"id": "ProductID",
"name": "Product"
},
{
"id": "UnitPrice",
"name": "Unit Price"
},
"… 2 more items (5 total) — omitted from docs"
],
"name": "Order Details"
},
"employeeterritories": {
"fields": [
{
"id": "EmployeeID",
"name": "Employee"
},
{
"id": "TerritoryID",
"name": "Territory"
}
],
"name": "Employeeterritories"
},
"employees": {
"fields": [
{
"id": "EmployeeID",
"name": "Employee"
},
{
"id": "LastName",
"name": "Last Name"
},
{
"id": "FirstName",
"name": "First Name"
},
"… 15 more items (18 total) — omitted from docs"
],
"name": "Employees"
},
"customers_1998": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Customers 1998"
},
"customers_1997": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Customers 1997"
},
"customers_1996": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 9 more items (12 total) — omitted from docs"
],
"name": "Customers 1996"
},
"customers": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CompanyName",
"name": "Company Name"
},
{
"id": "ContactName",
"name": "Contact Name"
},
"… 8 more items (11 total) — omitted from docs"
],
"name": "Customers"
},
"customerdemographics": {
"fields": [
{
"id": "CustomerTypeID",
"name": "Customer Type"
},
{
"id": "CustomerDesc",
"name": "Customer Desc"
}
],
"name": "Customerdemographics"
},
"customercustomerdemo": {
"fields": [
{
"id": "CustomerID",
"name": "Customer"
},
{
"id": "CustomerTypeID",
"name": "Customer Type"
}
],
"name": "Customercustomerdemo"
},
"categories": {
"fields": [
{
"id": "CategoryID",
"name": "Category"
},
{
"id": "CategoryName",
"name": "Category Name"
},
{
"id": "Description",
"name": "Description"
},
"… 1 more items (4 total) — omitted from docs"
],
"name": "Categories"
}
}
}
GET /api/datasources/{id}/column-types
The column types the datasource's driver supports (used when adding or altering
fields). Requires datasource:ping.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/column-types"
}
},
"items": [
"bigint",
"bigserial",
"bit",
"… 55 more items (58 total) — omitted from docs"
],
"start": 0,
"count": 58,
"total": 58
}
GET /api/datasources/{id}/restricted-fields
The fields restricted by field-level security across the datasource's shares.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/restricted-fields"
}
},
"start": 0,
"count": 0,
"total": 0,
"_embedded": {
"inf:field": []
}
}
GET /api/datasources/{id}/mapping-select-list
The datasource's mappings the caller can use in the ?context= usage context (query, the default, or dataset), as full mapping rows including driver data. ?view=picker returns only the identity and visibility fields (id, restId, name, mappingId, schemaId, hidden), which keeps the list small on large schemas.
[
{
"id": "00000000-0000-4000-8000-000000000001:public+categories",
"restId": "public+categories",
"name": "Categories",
"mappingId": "categories",
"schemaId": "public",
"hidden": false
},
{
"id": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"restId": "public+customercustomerdemo",
"name": "Customercustomerdemo",
"mappingId": "customercustomerdemo",
"schemaId": "public",
"hidden": false
},
{
"id": "00000000-0000-4000-8000-000000000001:public+customerdemographics",
"restId": "public+customerdemographics",
"name": "Customerdemographics",
"mappingId": "customerdemographics",
"schemaId": "public",
"hidden": false
},
"… 21 more items (24 total) — omitted from docs"
]
GET /api/datasources/{id}/settings-components
The driver-specific settings UI components for the datasource.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/settings-components"
}
},
"items": [],
"start": 0,
"count": 0,
"total": 0
}
GET /api/datasources/{id}/web-response-parser-templates
The response-parser templates available for a web datasource.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/datasources/admin%3Anorthwind/web-response-parser-templates"
}
},
"items": [
{
"detective": "00000000-0000-4000-8000-000000000001",
"id": "00000000-0000-4000-8000-000000000001:0",
"value": {
"responseParserType": "default"
}
},
{
"detective": "custom-script-detective",
"id": "custom-script-detective:0",
"value": {
"responseParserType": "custom-script"
}
}
],
"start": 0,
"count": 2,
"total": 2
}
GET /api/schema
Links across the tenant, filtered by ?type= (a link type, repeatable; default
all). Renders the cross-datasource schema graph.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/schema?type=all"
}
},
"00000000-0000-4000-8000-000000000001:public+products": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+products:categories",
"name": "Category",
"linkId": "categories",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+categories",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "categories",
"fromId": "00000000-0000-4000-8000-000000000001:public+products",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "products",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+products",
"00000000-0000-4000-8000-000000000001:public+categories"
]
},
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+products:suppliers",
"name": "Supplier",
"linkId": "suppliers",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+suppliers",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "suppliers",
"fromId": "00000000-0000-4000-8000-000000000001:public+products",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "products",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+products",
"00000000-0000-4000-8000-000000000001:public+suppliers"
]
}
],
"00000000-0000-4000-8000-000000000001:public+orders": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+orders:customers",
"name": "Customer",
"linkId": "customers",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+customers",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "customers",
"fromId": "00000000-0000-4000-8000-000000000001:public+orders",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "orders",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+orders",
"00000000-0000-4000-8000-000000000001:public+customers"
]
},
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+orders:employees",
"name": "Employee",
"linkId": "employees",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+employees",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "employees",
"fromId": "00000000-0000-4000-8000-000000000001:public+orders",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "orders",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+orders",
"00000000-0000-4000-8000-000000000001:public+employees"
]
},
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+orders:order-details",
"name": "Order Detail",
"linkId": "order-details",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+order_details",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "order_details",
"fromId": "00000000-0000-4000-8000-000000000001:public+orders",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "orders",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+orders",
"00000000-0000-4000-8000-000000000001:public+order_details"
]
},
"… 1 more items (4 total) — omitted from docs"
],
"00000000-0000-4000-8000-000000000001:public+customers": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+customers:customercustomerdemo",
"name": "Customercustomerdemo",
"linkId": "customercustomerdemo",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "customercustomerdemo",
"fromId": "00000000-0000-4000-8000-000000000001:public+customers",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "customers",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+customers",
"00000000-0000-4000-8000-000000000001:public+customercustomerdemo"
]
}
],
"00000000-0000-4000-8000-000000000001:public+customercustomerdemo": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo:customerdemographics",
"name": "Customerdemographics",
"linkId": "customerdemographics",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+customerdemographics",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "customerdemographics",
"fromId": "00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "customercustomerdemo",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+customercustomerdemo",
"00000000-0000-4000-8000-000000000001:public+customerdemographics"
]
}
],
"00000000-0000-4000-8000-000000000001:public+employees": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+employees:employeeterritories",
"name": "Employeeterritories",
"linkId": "employeeterritories",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+employeeterritories",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "employeeterritories",
"fromId": "00000000-0000-4000-8000-000000000001:public+employees",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "employees",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+employees",
"00000000-0000-4000-8000-000000000001:public+employeeterritories"
]
}
],
"00000000-0000-4000-8000-000000000001:public+order_details": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+order_details:products",
"name": "Product",
"linkId": "products",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+products",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "products",
"fromId": "00000000-0000-4000-8000-000000000001:public+order_details",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "order_details",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+order_details",
"00000000-0000-4000-8000-000000000001:public+products"
]
}
],
"00000000-0000-4000-8000-000000000001:public+territories": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+territories:region",
"name": "Region",
"linkId": "region",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+region",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "region",
"fromId": "00000000-0000-4000-8000-000000000001:public+territories",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "territories",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+territories",
"00000000-0000-4000-8000-000000000001:public+region"
]
}
],
"00000000-0000-4000-8000-000000000001:public+employeeterritories": [
{
"type": "sql",
"id": "00000000-0000-4000-8000-000000000001:public+employeeterritories:territories",
"name": "Territories",
"linkId": "territories",
"embedded": false,
"embeddedPrefix": null,
"toId": "00000000-0000-4000-8000-000000000001:public+territories",
"toDatasourceId": "00000000-0000-4000-8000-000000000001",
"toSchemaId": "public",
"toMappingId": "territories",
"fromId": "00000000-0000-4000-8000-000000000001:public+employeeterritories",
"fromDatasourceId": "00000000-0000-4000-8000-000000000001",
"fromMappingId": "employeeterritories",
"fromSchemaId": "public",
"allMappings": [
"00000000-0000-4000-8000-000000000001:public+employeeterritories",
"00000000-0000-4000-8000-000000000001:public+territories"
]
}
]
}
GET /api/web-datasource-auth-drivers
The authentication drivers available for web datasources.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers"
}
},
"start": 0,
"count": 5,
"total": 5,
"_embedded": {
"inf:driver": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers/basicUserCredentialAuth"
}
},
"id": "basicUserCredentialAuth",
"name": "Basic Auth",
"editComponent": "basicUserCredentialAuthEditor"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers/bearerTokenAuth"
}
},
"id": "bearerTokenAuth",
"name": "Bearer Token",
"editComponent": "bearerTokenAuthEditor"
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-datasource-auth-drivers/apiKeyAuth"
}
},
"id": "apiKeyAuth",
"name": "API Key",
"editComponent": "apiKeyAuthEditor"
},
"… 2 more items (5 total) — omitted from docs"
]
}
}
GET /api/web-response-parser-drivers
The response-parser drivers available for web datasources.
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers"
}
},
"start": 0,
"count": 5,
"total": 5,
"_embedded": {
"inf:driver": [
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers/default"
}
},
"id": "default",
"helpComponents": {
"responseParser": "defaultResponseParserHelp"
},
"name": "JSON Object Array",
"embedded": false
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers/jira-cloud"
}
},
"id": "jira-cloud",
"name": "JIRA Cloud",
"embedded": false
},
{
"_links": {
"self": {
"href": "https://informer.example.com/api/web-response-parser-drivers/custom-script"
}
},
"id": "custom-script",
"helpComponents": {
"responseParser": "customScriptResponseParserHelp"
},
"editComponent": "customScriptResponseParserEditor",
"name": "Custom Script",
"embedded": false
},
"… 2 more items (5 total) — omitted from docs"
]
}
}
Binary and live routes
These are documented by contract (no captured example):
GET /api/datasources/\{id\}/imageandGET /api/datasource-drivers/\{id\}/imagestream image bytes (the datasource/driver icon), not JSON.POST /api/datasource-drivers/\{id\}/_pingdials a connection to validate it before a datasource is saved. The payload is{ id?, connection?, integrationId?, integration?, options? }: aconnectionis dialled as given (requiresdatasources:createfor the driver, ordatasource:writewhenidresolves to a datasource of the same driver type), while anidwithout aconnectionpings that datasource's stored connection (requiresdatasource:write). AnintegrationIdnames the Integration whose access token authenticates the dial; it must be readable by the requester and able to supply a token (404/400otherwise), except the resolved datasource's own unchanged Integration on the two branches authorized against that datasource. Anintegrationdefinition that is not saved yet cannot be dialled and is reported as an unusable connection. Always responds200with{ "status": "online" | "error", "message": ... }; readstatusto determine reachability.