Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/algenta-ai:algenta-ai-data-mapping-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Algenta Ai Data Mapping API
version: 1.0.0
description: 'Operations tagged Data Mapping across 2 of this provider''s published API definitions: api.algenta.ai-openapi.json, gateway.algenta.ai-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.algenta.ai
- url: /
tags:
- name: Data Mapping
paths:
/v1/map/{map_id}:
get:
tags:
- Data Mapping
summary: Poll for deep analysis (join keys + derived relationships)
description: 'When `POST /v1/map` returns `deep_analysis_pending: true`, poll this endpoint with the `map_id` to retrieve join keys, derived relationships, and the simulation payload once Phase 2 analysis completes.'
operationId: get_deep_analysis_v1_map__map_id__get
security:
- BearerAuth: []
- LegacyApiKey: []
parameters:
- name: map_id
in: path
required: true
schema:
type: string
title: Map Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: object
additionalProperties: true
title: Response Get Deep Analysis V1 Map Map Id Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
servers:
- url: https://api.algenta.ai
/v1/map:
post:
tags:
- Data Mapping
summary: Instantly map any dataset — no schema, no ETL
description: '**Connect and understand any dataset instantly.**
Drop in CSV files, JSON records, or table names from multiple sources. Get back a unified schema with every field mapped, explained, and ready to run decisions on.
**What it detects:**
- Matching fields across sources (revenue ↔ sales, qty ↔ quantity)
- Value distributions (lognormal for prices, triangular for ranges)
- Polarity (cost → negative, revenue → positive)
- Join keys between tables (background if slow)
- Derived formulas A×B≈C (background if slow)
- Confidence and plain-English reasoning for every mapping
**Two-speed pipeline:** Phase 1 (schema + column matches) returns in <300ms. Phase 2 (join detection + relation detection) is embedded in the response if it finishes within 200ms, otherwise `deep_analysis_pending: true` is set and results can be retrieved via `GET /v1/map/{map_id}`.
**The data funnel:** Upload → Map → Query → Decide → Optimize'
operationId: map_sources_v1_map_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/MapRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/MapResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- BearerAuth: []
- LegacyApiKey: []
servers:
- url: https://api.algenta.ai
components:
schemas:
SchemaField:
properties:
name:
type: string
title: Name
sources:
items:
type: string
type: array
title: Sources
distribution:
anyOf:
- type: string
- type: 'null'
title: Distribution
unit:
anyOf:
- type: string
- type: 'null'
title: Unit
polarity:
anyOf:
- type: integer
- type: 'null'
title: Polarity
sample_values:
items: {}
type: array
title: Sample Values
default: []
type: object
required:
- name
- sources
title: SchemaField
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
MapRequest:
properties:
sources:
items:
$ref: '#/components/schemas/DataSource'
type: array
minItems: 1
title: Sources
description: Data sources to map (CSV, JSON records, or table name)
min_confidence:
type: number
maximum: 1.0
minimum: 0.0
title: Min Confidence
description: 'Minimum confidence threshold for mappings (default: 0.5)'
default: 0.5
include_statistics:
type: boolean
title: Include Statistics
description: Include value distribution statistics in response
default: true
type: object
required:
- sources
title: MapRequest
description: 'Drop in any data sources. Get back semantic field mappings and a unified schema.
No configuration required. The engine auto-detects:
- Which fields represent the same concept across sources
- Distribution shapes for numeric fields
- Polarity (revenue → positive, cost → negative)
- Primary/foreign keys for joins
- Confidence and reasoning for every mapping'
MapResponse:
properties:
map_id:
type: string
title: Map Id
sources_analyzed:
type: integer
title: Sources Analyzed
total_fields:
type: integer
title: Total Fields
mappings:
items:
$ref: '#/components/schemas/FieldMapping'
type: array
title: Mappings
unified_schema:
items:
$ref: '#/components/schemas/SchemaField'
type: array
title: Unified Schema
join_keys:
items:
additionalProperties: true
type: object
type: array
title: Join Keys
derived_relationships:
items:
additionalProperties: true
type: object
type: array
title: Derived Relationships
simulation_ready:
type: boolean
title: Simulation Ready
simulation_payload:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Simulation Payload
deep_analysis_pending:
type: boolean
title: Deep Analysis Pending
default: false
latency_ms:
type: number
title: Latency Ms
type: object
required:
- map_id
- sources_analyzed
- total_fields
- mappings
- unified_schema
- join_keys
- derived_relationships
- simulation_ready
- simulation_payload
- latency_ms
title: MapResponse
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
FieldMapping:
properties:
source_field:
type: string
title: Source Field
source:
type: string
title: Source
target_field:
type: string
title: Target Field
target:
type: string
title: Target
confidence:
type: number
maximum: 1.0
minimum: 0.0
title: Confidence
reason:
items:
type: string
type: array
title: Reason
match_type:
type: string
title: Match Type
type: object
required:
- source_field
- source
- target_field
- target
- confidence
- reason
- match_type
title: FieldMapping
DataSource:
properties:
name:
type: string
title: Name
description: Label for this source (e.g., 'sales', 'orders')
dataset_id:
anyOf:
- type: string
- type: 'null'
title: Dataset Id
description: Public dataset ID alias for a registered source.
source_id:
anyOf:
- type: string
- type: 'null'
title: Source Id
description: Registered source ID; fastest path and avoids re-uploading data.
records:
anyOf:
- items:
additionalProperties: true
type: object
type: array
- type: 'null'
title: Records
description: Inline JSON records
csv:
anyOf:
- type: string
- type: 'null'
title: Csv
description: Raw CSV text
json_str:
anyOf:
- type: string
- type: 'null'
title: Json Str
description: Raw JSON array/object text (nested auto-flattened)
url:
anyOf:
- type: string
- type: 'null'
title: Url
description: HTTP URL — format auto-detected
excel_b64:
anyOf:
- type: string
- type: 'null'
title: Excel B64
description: Excel .xlsx file, base64-encoded
parquet_b64:
anyOf:
- type: string
- type: 'null'
title: Parquet B64
description: Parquet file, base64-encoded
connection:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Connection
description: Connector config dict — see DataSource docstring for all types
table:
anyOf:
- type: string
- type: 'null'
title: Table
description: Legacy field — use connection instead
type: object
required:
- name
title: DataSource
description: "A data source to map. Every format normalizes to list[dict] internally.\n\nInline (no external dependency):\n `records` — JSON array of objects (fastest)\n `csv` — raw CSV text\n `json_str` — raw JSON array/object text (nested JSON is auto-flattened)\n `url` — HTTP(S) URL; format auto-detected from Content-Type / extension\n\nBinary files (base64-encoded for API transport):\n `excel_b64` — Excel .xlsx file, base64-encoded\n `parquet_b64`— Parquet file, base64-encoded\n\nConnector config (routes through ConnectorRegistry):\n `connection` — dict with `type` + connector-specific keys:\n {\"type\": \"sql\", \"connection_string\": \"postgresql+asyncpg://...\",\n \"query\": \"SELECT ...\"}\n {\"type\": \"sql\", \"connection_string\": \"sqlite+aiosqlite:///db.sqlite\", \"query\": \"...\"}\n {\"type\": \"rest_api\", \"url\": \"https://...\", \"data_path\": \"data.items\"}\n {\"type\": \"s3\", \"bucket\": \"my-bucket\", \"key\": \"data/sales.parquet\"}\n {\"type\": \"gcs\", \"bucket\": \"my-bucket\", \"blob\": \"data/orders.csv\"}\n {\"type\": \"azure_blob\", \"connection_string\": \"DefaultEndpointsProtocol=...\",\n \"container\": \"data\", \"blob\": \"sales.parquet\"}"
securitySchemes:
BearerAuth:
type: http
scheme: bearer
bearerFormat: APIKey
description: 'Canonical v1 authentication. Use Authorization: Bearer <api_key>.'
LegacyApiKey:
type: apiKey
in: header
name: X-API-Key
description: Legacy compatibility header for existing v1 clients.
x-refined-from:
- api.algenta.ai-openapi.json
- gateway.algenta.ai-openapi.json
x-canonical-mcp-endpoint: https://api.algenta.ai/mcp
x-primary-data-query-contract:
api:
contract_endpoint: /v1/meta/contract
discovery_endpoint: /v1/data
summary_endpoint: /v1/data/{dataset_id}/summary
resolve_endpoint: /v1/resolve
verify_endpoint: /v1/verify
query_endpoint: /v1/query
query_batch_endpoint: /v1/query/batch
query_sql_report_endpoint: /v1/query/sql-report
governed_filter_contract:
kind: record_predicates
time_filter_field: time_filter
conditions_field: conditions
selector_fields:
- column
- dimension_hint
operators:
scalar:
- eq
- gt
- gte
- lt
- lte
list:
- in
nullary:
- is_null
- is_not_null
type_behavior:
boolean:
- eq
string:
- eq
- in
numeric:
- eq
- in
- gt
- gte
- lt
- lte
null_checks:
- is_null
- is_not_null
validation:
requires_selector: true
scalar_ops_require_value:
- eq
- gt
- gte
- lt
- lte
list_ops_require_non_empty_values:
- in
nullary_ops_forbid_value_and_values:
- is_null
- is_not_null
applies_before_aggregation: true
supports_non_sql_backends: true
notes:
- Filters apply to normalized source rows before aggregation and grouping.
- Boolean equality uses eq.
- This contract is database-agnostic and valid for Redis and other non-SQL backends after record normalization.
- Nested OR groups, regex, text search, and arbitrary expressions are not part of this contract.
direct_sdk:
python:
import_root: decision_engine
preferred_client_class: AlgentaClient
preferred_async_client_class: AsyncAlgentaClient
compatibility_client_class: DecisionEngineClient
compatibility_async_client_class: AsyncDecisionEngineClient
contract_method: get_contract
discovery_method: list_datasets
summary_method: get_dataset_summary
query_with_metadata_method: query_with_metadata
query_batch_method: query_batch
query_sql_report_method: query_sql_report
typescript:
import_package: algenta-sdk
preferred_client_class: AlgentaClient
compatibility_client_class: DecisionEngineClient
contract_method: getContract
discovery_method: listDatasets
summary_method: getDatasetSummary
query_with_metadata_method: queryWithMetadata
query_batch_method: queryBatch
query_sql_report_method: querySqlReport
runtime_sdk:
python:
import_root: algenta
runtime_class: Runtime
libraries_entrypoint: libraries
contract_method: get_contract
discovery_method: list_datasets
summary_method: get_dataset_summary
query_with_metadata_method: query_with_metadata
query_batch_method: query_batch
query_sql_report_method: query_sql_report
typescript:
import_package: algenta-sdk
runtime_class: Runtime
libraries_entrypoint: libraries
contract_method: getContract
discovery_method: listDatasets
summary_method: getDatasetSummary
query_with_metadata_method: queryWithMetadata
query_batch_method: queryBatch
query_sql_report_method: querySqlReport
cli:
contract_command: de contract
discovery_command: de data list --search <hint> --compact --limit <n>
summary_command: de data summary <dataset_id>
query_batch_command: de data query-batch <request.json>
query_sql_report_command: de data sql-report <request.json>
runtime_modules_command: de runtime modules
runtime_functions_command: de runtime functions <module>
runtime_execute_command: de runtime execute <module> <function> --args-json '<json>'
mcp:
contract_tool: get_contract
discovery_tool: list_data
summary_tool: get_data_summary
query_tool: query_data
query_batch_tool: query_batch
query_sql_report_tool: query_sql_report
runtime_library_list_tool: list_runtime_libraries
runtime_library_execute_tool: execute_runtime_library
recommended_flows:
machine_readable_contract:
- GET /v1/meta/contract
governed_query:
- GET /v1/data?search=...&compact=1
- GET /v1/data/{dataset_id}/summary
- POST /v1/resolve
- POST /v1/verify
- POST /v1/query
multi_metric_query:
- GET /v1/data?search=...&compact=1
- GET /v1/data/{dataset_id}/summary
- POST /v1/query/batch
wide_sql_report:
- GET /v1/data?search=...&compact=1
- GET /v1/data/{dataset_id}/summary
- POST /v1/query/sql-report
decision_simulation_tools:
- simulate — one scenario, full DecisionEnvelope (action, expected value, loss probability, percentiles); the run is recorded for list_runs.
- plan_decision — same request as simulate but only the compact DecisionPlan summary; use when you do not need the full envelope.
- score — one simulation plus a single weighted composite (expected_value/downside_risk weights) with score_breakdown; use to rank by one number.
- compare — 2-10 named scenarios side by side; the winner is the highest expected value, with per-scenario deltas.
- recommend — 2+ named actions ranked with a picked recommended_action, confidence, and rationale; use for 'which option should I pick'.
- product_decision — plain business inputs (value with optional low/high) mapped for you; returns proceed/pause/reject with plain-English reasons; no simulation knowledge needed.
dataset_onboarding_tools:
- connect_data — the normal path for live sources (database/API/object storage) or uploads; returns a reusable dataset_id and supports refresh_data.
- onboard_dataset — inline columns/records/CSV for semantic querying with background model training (track model_tier with list_datasets); no live connection.
- 'register_source — the advanced path: full column profiling, formula detection, and join-key detection across registered sources (browse with list_data).'
- list_data — browse datasets from the connect_data and register_source flows (connection_type, provider, refreshable).
- list_datasets — browse semantically trained datasets with training status and model_tier.
x-capability-plane-contract:
api:
list_providers_endpoint: /v1/capability-providers
get_provider_endpoint: /v1/capability-providers/{provider_id}
list_bindings_endpoint: /v1/capability-bindings
create_binding_endpoint: /v1/capability-bindings
get_binding_endpoint: /v1/capability-bindings/{binding_id}
update_binding_endpoint: /v1/capability-bindings/{binding_id}
delete_binding_endpoint: /v1/capability-bindings/{binding_id}
preview_test_binding_endpoint: /v1/capability-bindings/test
test_binding_endpoint: /v1/capability-bindings/{binding_id}/test
preview_discover_binding_endpoint: /v1/capability-bindings/discover
discover_binding_endpoint: /v1/capability-bindings/{binding_id}/discover
start_authorization_endpoint: /v1/capability-bindings/{binding_id}/authorize/start
complete_authorization_endpoint: /v1/capability-bindings/{binding_id}/authorize/complete
list_capabilities_endpoint: /v1/capabilities
get_capability_endpoint: /v1/capabilities/{capability_id}
route_capabilities_endpoint: /v1/capabilities/route
execute_capability_endpoint: /v1/capabilities/execute
record_outcome_endpoint: /v1/capabilities/outcomes
enums:
provider_types:
- data_connector
- mcp_provider
- skill_pack
- native_tool_pack
- runtime_library_pack
capability_kinds:
- dataset
- mcp_tool
- mcp_resource
- mcp_prompt
- skill
- native_tool
- runtime_library
implementation_kinds:
- callable
- instruction_only
- hybrid
execution_owners:
- algenta_managed
- client_managed
binding_scopes:
- user
- workspace
- organization
binding_statuses:
- unconfigured
- authorizing
- ready
- degraded
- quarantined
direct_sdk:
typescript:
import_package: algenta-sdk
preferred_client_class: AlgentaClient
compatibility_client_class: DecisionEngineClient
list_providers_method: listCapabilityProviders
get_provider_method: getCapabilityProvider
list_bindings_method: listCapabilityBindings
create_binding_method: createCapabilityBinding
get_binding_method: getCapabilityBinding
update_binding_method: updateCapabilityBinding
delete_binding_method: deleteCapabilityBinding
preview_test_binding_method: previewTestCapabilityBinding
test_binding_method: testCapabilityBinding
preview_discover_binding_method: previewDiscoverCapabilityBinding
discover_binding_method: discoverCapabilityBinding
start_authorization_method: startCapabilityAuthorization
complete_authorization_method: completeCapabilityAuthorization
list_capabilities_method: listCapabilities
get_capability_method: getCapability
route_capabilities_method: routeCapabilities
execute_capability_method: executeCapability
record_outcome_method: recordCapabilityOutcome
list_skills_method: listSkills
enable_skill_method: enableSkill
disable_skill_method: disableSkill
list_mcp_providers_method: listMcpProviders
runtime_sdk:
typescript:
import_package: algenta-sdk
runtime_class: Runtime
list_providers_method: listCapabilityProviders
list_bindings_method: listCapabilityBindings
list_capabilities_method: listCapabilities
route_capabilities_method: routeCapabilities
execute_capability_method: executeCapability
register_adapter_method: registerCapabilityAdapter
mcp:
list_providers_tool: list_capability_providers
list_bindings_tool: list_capability_bindings
create_binding_tool: create_capability_binding
test_binding_tool: test_capability_binding
discover_binding_tool: discover_capability_binding
list_capabilities_tool: list_capabilities
get_capability_tool: get_capability
route_capabilities_tool: route_capabilities
execute_capability_tool: execute_capability
list_skills_tool: list_skills
enable_skill_tool: enable_skill
disable_skill_tool: disable_skill
compatibility_aliases:
- list_data
- get_data_summary
- query_data
- query_batch
- query_sql_report
- list_connectors
- create_connector
- test_connector
- browse_connector
- preview_test_connector
- preview_browse_connector