Public API and Java client
What you will learn
Connect an authorised consumer to the installed public contract.
Worked example
With a test web-service user, list assigned companies and read with companyCode. In Eclipse add the JAR to Build Path and select Java 17.
From data to result
- 1Licence
- 2Web service
- 3Token
- 4Request
The technical reference is at `/api-docs` and the contract at `/openapi/v1.json`. Use the installed version’s contract for fields and operations.
- 1APL Integration and a web-service user with companies and roles are required. Request a token through `/api/v1/auth/service-token`; send it in the Authorization Bearer header.
- 2Select company with `companyCode` as specified. The server validates companies and permissions; never share tokens across customers or attempt to choose a tenant by an ID.
- 3Use a generated Java client compatible with the server contract. In Eclipse create a Java project with `java-client/src`, or add the JAR to your Build Path. Configure Java 17; the client uses standard Java libraries without external dependencies.
- 4The public API excludes APL Assistant, Factory View, help/support and the APL panel. Do not automate internal endpoints or publish credentials or customer examples.
Technical reference
Illustrative example: adapt values to the installed contract and use a secret store.
GET /api/v1/companies
Authorization: Bearer <accessToken>
GET /api/v1/materials?companyCode=DEMO§ion=articles&page=1&pageSize=25
Authorization: Bearer <accessToken>
// Java 17 · Eclipse: Java Build Path > Libraries
var client = new AplSchedulerClient(baseUrl);
client.authenticate(new ServiceCredentials(
configuration, serviceUser, passwordFromSecretStore));
ApiResponse response = client.companies();Before you finish
OpenAPI matches the server; the user has APL Integration, company and role. Handle 401, 403, 409 and 429 without blindly retrying writes.
Common questions
An option is missing or I cannot edit
Check active company, licence, permissions and integration-managed fields. Do not use a direct URL to bypass restrictions.
I cannot find records
Clear filters and check page, dates and company. There may be no accessible data; do not create duplicates to test.
I saved but cannot see the expected effect
Reopen the record and verify. Saving data does not publish a required simulation. Check whether the first write succeeded before repeating it.
