CatchAll Java SDK v1.3.1
Highlights
This release upgrades the Fern Java SDK generator to a new major version (4.x), adds a getPlanLimits() endpoint, job processing mode selection (lite / base), and a custom DoubleSerializer for cleaner JSON output. It includes breaking changes to response field types in PullJobResponseDto.
Breaking changes
PullJobResponseDto.validators type changed
Changed from Optional<List<String>> to Optional<List<Map<String, Object>>>. If your code reads this field as a list of strings, you'll need to update it to handle maps.
PullJobResponseDto.enrichments type changed
Changed from Optional<List<String>> to Optional<List<Map<String, Object>>>. Same as above — each entry is now a key-value map instead of a plain string.
Raw response wrapper renamed
The raw response type referenced in documentation changed from CreateJobHttpResponse to CatchAllApiHttpResponse. If you use the .withRawResponse() API, update your type references accordingly.
New features
getPlanLimits() endpoint
A new meta().getPlanLimits() method returns plan features and current usage for the authenticated organization.
GetPlanLimitsResponseDto limits = client.meta().getPlanLimits();
// limits.getFeatures() -> List<PlanFeature>Each PlanFeature includes name, code, valueType, value, and currentUsage. Also available on the async client.
Job processing mode
Job submission now accepts an optional mode parameter via the builder:
SubmitRequestDtoMode.BASE— full pipeline with validation and enrichment (default behavior).SubmitRequestDtoMode.LITE— lightweight extraction with faster processing; returns titles and citations only.
client.jobs().createJob(SubmitRequestDto.builder()
.query("Series B funding rounds for SaaS startups")
.mode(SubmitRequestDtoMode.BASE) // or LITE
// ...
.build()
);The mode field is also returned in PullJobResponseDto (as PullJobResponseDtoMode) and UserJob (as UserJobMode) responses. All mode enums support a visitor pattern and handle unknown values gracefully.
New response fields
UserJob.getMode()— processing mode used for the job.UserJob.getUserKey()— masked API key that created the job.MonitorListItemDto.getUserKey()— masked API key associated with the monitor.MonitorListItemDto.getWebhook()— now explicitly nullable (supportsNullable<WebhookDto>).
Custom DoubleSerializer
A new DoubleSerializer ensures integer-valued doubles are serialized without a decimal point (e.g., 24000 instead of 24000.0), producing cleaner JSON output.
Infrastructure
- Fern CLI upgraded from 4.16.0 to 4.37.2.
- Fern Java SDK generator upgraded from 3.42.4 to 4.0.0 (major version bump).
- CI workflow now uses concurrency groups to prevent overlapping runs.