# Unification Rules

## List unification rules

> List unification rules with optional filtering by data source or active status.

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"PaginatedResponse_UnificationRuleResponse_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UnificationRuleResponse"},"type":"array","title":"Items"},"has_more":{"type":"boolean","title":"Has More"},"continuation_token":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Continuation Token"},"total":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total"}},"type":"object","required":["items","has_more"],"title":"PaginatedResponse[UnificationRuleResponse]"},"UnificationRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rule_type":{"type":"string","title":"Rule Type"},"data_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source Id"},"source_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Event Type"},"target_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Entity Type"},"rule_config":{"additionalProperties":true,"type":"object","title":"Rule Config"},"accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy"},"events_processed":{"type":"integer","title":"Events Processed"},"last_applied_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Applied At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"agent_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Task Id"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","workspace_id","name","description","rule_type","data_source_id","source_event_type","target_entity_type","rule_config","accuracy","events_processed","last_applied_at","created_by","agent_task_id","is_active","created_at","updated_at"],"title":"UnificationRuleResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}},"paths":{"/v1/{workspace_id}/unification-rules":{"get":{"tags":["Unification Rules"],"summary":"List unification rules","description":"List unification rules with optional filtering by data source or active status.","operationId":"list-unification-rules","parameters":[{"name":"data_source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"}},{"name":"is_active","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"exclusiveMinimum":0,"default":10,"title":"Limit"}},{"name":"continuation_token","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Continuation Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponse_UnificationRuleResponse_"}}}},"401":{"description":"Missing or invalid API key."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

## Create a unification rule

> Create a new data mapping rule. Can be scoped to a specific data source.

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"CreateUnificationRuleRequest":{"properties":{"name":{"$ref":"#/components/schemas/NameString"},"description":{"anyOf":[{"$ref":"#/components/schemas/DescriptionString"},{"type":"null"}]},"rule_type":{"type":"string","enum":["field_mapping","entity_resolution","dedup","transform"],"title":"Rule Type"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"source_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Event Type"},"target_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Entity Type"},"rule_config":{"additionalProperties":true,"type":"object","title":"Rule Config"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"}},"type":"object","required":["name","rule_type"],"title":"CreateUnificationRuleRequest"},"NameString":{"type":"string","maxLength":256,"minLength":1},"DescriptionString":{"type":"string","maxLength":2000},"UnificationRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rule_type":{"type":"string","title":"Rule Type"},"data_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source Id"},"source_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Event Type"},"target_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Entity Type"},"rule_config":{"additionalProperties":true,"type":"object","title":"Rule Config"},"accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy"},"events_processed":{"type":"integer","title":"Events Processed"},"last_applied_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Applied At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"agent_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Task Id"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","workspace_id","name","description","rule_type","data_source_id","source_event_type","target_entity_type","rule_config","accuracy","events_processed","last_applied_at","created_by","agent_task_id","is_active","created_at","updated_at"],"title":"UnificationRuleResponse"}}},"paths":{"/v1/{workspace_id}/unification-rules":{"post":{"tags":["Unification Rules"],"summary":"Create a unification rule","description":"Create a new data mapping rule. Can be scoped to a specific data source.","operationId":"create-unification-rule","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUnificationRuleRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnificationRuleResponse"}}}},"401":{"description":"Missing or invalid API key."},"403":{"description":"Insufficient permissions."},"422":{"description":"Invalid data_source_id reference."}}}}}}
```

## Get a unification rule

> Retrieve a unification rule by ID.

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"UnificationRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rule_type":{"type":"string","title":"Rule Type"},"data_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source Id"},"source_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Event Type"},"target_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Entity Type"},"rule_config":{"additionalProperties":true,"type":"object","title":"Rule Config"},"accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy"},"events_processed":{"type":"integer","title":"Events Processed"},"last_applied_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Applied At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"agent_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Task Id"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","workspace_id","name","description","rule_type","data_source_id","source_event_type","target_entity_type","rule_config","accuracy","events_processed","last_applied_at","created_by","agent_task_id","is_active","created_at","updated_at"],"title":"UnificationRuleResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}},"paths":{"/v1/{workspace_id}/unification-rules/{rule_id}":{"get":{"tags":["Unification Rules"],"summary":"Get a unification rule","description":"Retrieve a unification rule by ID.","operationId":"get-unification-rule","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnificationRuleResponse"}}}},"401":{"description":"Missing or invalid API key."},"404":{"description":"Unification rule not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

## Delete a unification rule

> Delete a unification rule.

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}},"paths":{"/v1/{workspace_id}/unification-rules/{rule_id}":{"delete":{"tags":["Unification Rules"],"summary":"Delete a unification rule","description":"Delete a unification rule.","operationId":"delete-unification-rule","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"responses":{"204":{"description":"Successful Response"},"401":{"description":"Missing or invalid API key."},"404":{"description":"Unification rule not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}}}
```

## Update a unification rule

> Update a unification rule's configuration.

```json
{"openapi":"3.1.0","info":{"title":"Platform API","version":"1.0.0"},"servers":[{"url":"https://api.platform.amigo.ai","description":"Production"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"API key issued via `POST /v1/{workspace_id}/api-keys`. Pass the returned `api_key` value as a Bearer token."}},"schemas":{"UpdateUnificationRuleRequest":{"properties":{"name":{"anyOf":[{"$ref":"#/components/schemas/NameString"},{"type":"null"}]},"description":{"anyOf":[{"$ref":"#/components/schemas/DescriptionString"},{"type":"null"}]},"rule_type":{"anyOf":[{"type":"string","enum":["field_mapping","entity_resolution","dedup","transform"]},{"type":"null"}],"title":"Rule Type"},"data_source_id":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Data Source Id"},"source_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Event Type"},"target_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Entity Type"},"rule_config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rule Config"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"UpdateUnificationRuleRequest"},"NameString":{"type":"string","maxLength":256,"minLength":1},"DescriptionString":{"type":"string","maxLength":2000},"UnificationRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"workspace_id":{"type":"string","title":"Workspace Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"rule_type":{"type":"string","title":"Rule Type"},"data_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data Source Id"},"source_event_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Event Type"},"target_entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Entity Type"},"rule_config":{"additionalProperties":true,"type":"object","title":"Rule Config"},"accuracy":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Accuracy"},"events_processed":{"type":"integer","title":"Events Processed"},"last_applied_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Applied At"},"created_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created By"},"agent_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Task Id"},"is_active":{"type":"boolean","title":"Is Active"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","workspace_id","name","description","rule_type","data_source_id","source_event_type","target_entity_type","rule_config","accuracy","events_processed","last_applied_at","created_by","agent_task_id","is_active","created_at","updated_at"],"title":"UnificationRuleResponse"}}},"paths":{"/v1/{workspace_id}/unification-rules/{rule_id}":{"patch":{"tags":["Unification Rules"],"summary":"Update a unification rule","description":"Update a unification rule's configuration.","operationId":"update-unification-rule","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","title":"Rule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUnificationRuleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnificationRuleResponse"}}}},"401":{"description":"Missing or invalid API key."},"404":{"description":"Unification rule not found."},"422":{"description":"Invalid data_source_id reference."}}}}}}
```
