A method for providing data services through an application programming interface, API, comprising: receiving, at the API service, a request from a client device, the request comprising a data operation; determining context data associated with the request, the context data comprising information associated with a user submitting the request, wherein the information associated with the user comprises at least one of a user identifier, ID, user authentication credentials, a business department and user permissions, and information about a client entity; providing, by the API service, the context data to a variability configuration repository; identifying, by the variability configuration repository, an entity schema required by the request by matching the context data to a set of variability dimensions that distinctly identifies the entity schema from other entity schemas; wherein the entity schema includes user independent data fields; inserting, by the variability configuration repository, a user specific metamodel into the entity schema that is used to represent user specific constraints, wherein the metamodel extends the entity schema to include rules about the data fields in the entity schema for the user; wherein the rules comprise at least one of: an indication of whether a data field in the entity schema is applicable to the user; additional rules about data fields in the entity schema; additional rules about permissible actions; an indication of whether a data field is required; validation constraints for each data field; rules relating to the rendering of information to the user through a user interface; and a constraint limiting the operations that can be performed on the entity schema; receiving, by the API service, the entity schema, wherein the entity schema includes the user independent data fields and the metamodel; processing the request using the entity schema by presenting the entity schema to a service server and receiving a service response, wherein the service server is selected from a plurality of service servers based on the entity schema; generating a response including the entity schema; returning the response to the client device. receiving, at the API service, a request from a client device, the request comprising a data operation; determining context data associated with the request, the context data comprising information associated with a user submitting the request, wherein the information associated with the user comprises at least one of a user identifier, ID, user authentication credentials, a business department and user permissions, and information about a client entity; providing, by the API service, the context data to a variability configuration repository; identifying, by the variability configuration repository, an entity schema required by the request by matching the context data to a set of variability dimensions that distinctly identifies the entity schema from other entity schemas; wherein the entity schema includes user independent data fields; inserting, by the variability configuration repository, a user specific metamodel into the entity schema that is used to represent user specific constraints, wherein the metamodel extends the entity schema to include rules about the data fields in the entity schema for the user; wherein the rules comprise at least one of: an indication of whether a data field in the entity schema is applicable to the user; additional rules about data fields in the entity schema; additional rules about permissible actions; an indication of whether a data field is required; validation constraints for each data field; rules relating to the rendering of information to the user through a user interface; and a constraint limiting the operations that can be performed on the entity schema; an indication of whether a data field in the entity schema is applicable to the user; additional rules about data fields in the entity schema; additional rules about permissible actions; an indication of whether a data field is required; validation constraints for each data field; rules relating to the rendering of information to the user through a user interface; and a constraint limiting the operations that can be performed on the entity schema; receiving, by the API service, the entity schema, wherein the entity schema includes the user independent data fields and the metamodel; processing the request using the entity schema by presenting the entity schema to a service server and receiving a service response, wherein the service server is selected from a plurality of service servers based on the entity schema; generating a response including the entity schema; returning the response to the client device.