### Design API packages & license

There are two JReport Design API packages: the workstation version and the server version. The workstation package is the Design API, and the server package is the Server Design API. The main differences between these two packages are:

- There are some special methods used for editing catalogs, queries, reports, and parameters. These methods are included in the Design API and Server Design API. When invoking these methods in the Server Design API, you also have to provide an additional parameter: UID (used to distinguish between different users, and can be a Number or a String). However, when invoking them in the Design API, you do not need to provide this parameter.
- The Design API can only edit one report at a time, while the Server Design API allows concurrent users to modify their reports.
- The Multi-User Design API included with Server Design API only supports V7 and earlier style report templates and not multi-tab page reports supported by Design API.

JReport Design API and JReport Server Design API use an independent license from other JReport products. You need to contact Jinfonet sales to obtain this special license key if you want to use either JReport Design API or JReport Server Design API on your machine with JReport Designer or JReport Server. The license will be applied to your program instead of being applied to the installation of JReport Design API or JReport Server Design API.

The keys for JReport Design API and JReport Server Design API are different. For example, you cannot use the JReport Design API key on JReport Server Design API, and vice versa. Which key is required is based on where you set your class path at runtime. If the classes are obtained from Server\lib you need to use the Server Design API key. If the classes are obtained from Designer\lib you need to use the Design API key.

To use the key you need to create a DesignerUserInfo instance. To create the DesignerUserInfo instance, use the following constructor providing the user ID and the Server Designer License Key or Designer License Key you received when you purchased JReport.

`DesignerUserInfo userInfo=new DesignerUserInfo(Uid, key);
Designer desg = new Designer(catalogPath, catalogName, userInfo);`

If you want to use JReport Design API or JReport Server Design API package for workstations without using JReport Designer and JReport Server, you will need to obtain a valid license for each work station.