{"openapi":"3.1.0","info":{"title":"FastCLM Integration API","description":"Private, organisation-scoped contract integration API. Contract data is never public.\n\nAll data calls require a bearer token and `X-FastCLM-Organisation`. Selected writes also require `X-FastCLM-Actor` so permissions and audit attribution remain explicit.","contact":{"name":"FastSME","url":"https://fastsme.com/"},"license":{"name":"MIT"},"version":"0.1.0"},"servers":[{"url":"https://clm.fastsme.com/api","description":"Production"}],"paths":{"/":{"get":{"tags":["System"],"summary":"Discovery","operationId":"api_discovery","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Discovery"}}}}}}},"/v1/health":{"get":{"tags":["System"],"summary":"Health","operationId":"api_health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Health"}}}}}}},"/v1/contracts":{"get":{"tags":["Contracts"],"summary":"Contracts","operationId":"list_contracts","security":[{"FastCLM API token":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"","title":"Status"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Contracts"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/contracts/{contract_id}":{"get":{"tags":["Contracts"],"summary":"Contract","operationId":"get_contract","security":[{"FastCLM API token":[]}],"parameters":[{"name":"contract_id","in":"path","required":true,"schema":{"type":"string","title":"Contract Id"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Contract"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/obligations":{"get":{"tags":["Obligations"],"summary":"Obligations","operationId":"list_obligations","security":[{"FastCLM API token":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(|open|complete|waived)$","default":"open","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":250,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Obligations"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Obligations"],"summary":"Create Obligation","operationId":"create_obligation","security":[{"FastCLM API token":[]}],"parameters":[{"name":"X-FastCLM-Actor","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Actor"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ObligationCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Obligation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/obligations/{obligation_id}":{"get":{"tags":["Obligations"],"summary":"Obligation","operationId":"get_obligation","security":[{"FastCLM API token":[]}],"parameters":[{"name":"obligation_id","in":"path","required":true,"schema":{"type":"string","title":"Obligation Id"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Obligation"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/counterparties":{"get":{"tags":["Counterparties"],"summary":"Counterparties","operationId":"list_counterparties","security":[{"FastCLM API token":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":250,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Counterparties"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/counterparties/{counterparty_id}":{"get":{"tags":["Counterparties"],"summary":"Counterparty","operationId":"get_counterparty","security":[{"FastCLM API token":[]}],"parameters":[{"name":"counterparty_id","in":"path","required":true,"schema":{"type":"string","title":"Counterparty Id"}},{"name":"X-FastCLM-Organisation","in":"header","required":false,"schema":{"type":"string","default":"","title":"X-Fastclm-Organisation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Counterparty"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ObligationCreate":{"properties":{"contract_id":{"type":"string","minLength":1,"title":"Contract Id"},"title":{"type":"string","maxLength":240,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":4000,"title":"Description","default":""},"due_date":{"type":"string","maxLength":10,"title":"Due Date","default":""},"recurrence":{"type":"string","pattern":"^(none|monthly|quarterly|annual)$","title":"Recurrence","default":"none"}},"additionalProperties":false,"type":"object","required":["contract_id","title"],"title":"ObligationCreate","description":"Integration-safe obligation creation request."},"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"}},"securitySchemes":{"FastCLM API token":{"type":"http","description":"All contract data requires `Authorization: Bearer <token>` and an `X-FastCLM-Organisation` workspace identifier.","scheme":"bearer"}}}}