client.jobs.getUserJobs() -> ListUserJobsResponseDto
-
-
-
Returns all jobs created by the authenticated user.
-
-
-
client.jobs().getUserJobs( GetUserJobsRequest .builder() .projectId("60a85db4-78ec-4b78-876a-bc7d9cdadd04") .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of records per page.
-
search:
Optional<String>— Filter results by text (case-insensitive substring match).
-
ownership:
Optional<OwnershipFilter>
-
projectId:
Optional<String>— Filter results to resources belonging to this project.
-
mode:
Optional<GetUserJobsRequestMode>— Filter results by processing mode. Returns only jobs that ran in the specified mode.
-
-
client.jobs.validateQuery(request) -> ValidateQueryResponseDto
-
-
-
Checks whether a query is well-formed and likely to produce good results before submitting a job.
Returns a quality assessment with a status level, identified issues, and actionable suggestions.
-
-
-
client.jobs().validateQuery( ValidateQueryRequestDto .builder() .query("Series B funding rounds for SaaS startups") .build() );
-
-
-
query:
String— Plain text query to validate.
-
-
client.jobs.initialize(request) -> InitializeResponseDto
-
-
-
Get suggested validators, enrichments, and date ranges for a query.
-
-
-
client.jobs().initialize( InitializeRequestDto .builder() .query("Series B funding rounds for SaaS startups") .context("Focus on funding amount and company name") .build() );
-
-
-
query:
String
-
context:
Optional<String>
-
connectedDatasetIds:
Optional<List<String>>— Optional list of watchlist dataset IDs connected to this job.
-
fetchAllWatchlistNews:
Optional<Boolean>When true, returns generic news validators and enrichments suitable for watchlist-based article collection instead of query-specific fields.
-
-
client.jobs.createJob(request) -> SubmitResponseDto
-
-
-
Submit a query to create a new processing job.
-
-
-
client.jobs().createJob( SubmitRequestDto .builder() .query("Series B funding rounds for SaaS startups") .context("Focus on funding amount and company name") .limit(10) .startDate(OffsetDateTime.parse("2026-02-18T00:00:00Z")) .endDate(OffsetDateTime.parse("2026-02-23T00:00:00Z")) .mode(SubmitRequestDtoMode.BASE) .build() );
-
-
-
query:
String
-
context:
Optional<String>
-
limit:
Optional<Integer>
-
startDate:
Optional<OffsetDateTime>
-
endDate:
Optional<OffsetDateTime>
-
validators:
Optional<List<ValidatorSchema>>Custom validators for filtering web page clusters.
If not provided, validators are generated automatically based on the query. The system may also inject validators during the
analyzingstage — for example, converting a relative time qualifier into an explicit event-date gate. The returnedvalidators[]in the job status shows the complete applied set, including any system-added ones.
-
enrichments:
Optional<List<EnrichmentSchema>>Custom enrichment fields for data extraction.
If not provided, enrichments are generated automatically based on the query.
-
mode:
Optional<SubmitRequestDtoMode>Job processing mode.
base: Full pipeline with validation and enrichment.lite: Lightweight extraction with faster processing. Returns titles and citations only.
-
connectedDatasetIds:
Optional<List<String>>Dataset IDs to connect to the job. When provided, this enables Company Monitors mode — the job returns only events relevant to companies in the connected datasets. To set the minimum relevance threshold, use
ed_score_min.The dataset must have
latest_status: readybefore the job is submitted. Submitting with a non-existent or inaccessible dataset ID returns400.
-
edScoreMin:
Optional<Integer>The minimum relevance score a connected entity must reach for its record to be included in results.
Only valid when
connected_dataset_idsis set; otherwise ignored. Records where no connected entity meets the threshold are excluded entirely.
-
projectId:
Optional<String>— Project to assign this job to. The job appears in the project's resource list immediately after submission.
-
webhookIds:
Optional<List<String>>— IDs of webhooks to notify when the job completes. Maximum 5 per job.
-
fetchAllWatchlistNews:
Optional<Boolean>When true, retrieves all news for connected Company Monitors entities without topic filtering. Requires connected_dataset_ids to be set.
-
edAssociationType:
Optional<EntityAssociationType>Filter events by entity association type.
event_associatedkeeps only events where the entity is a direct actor.mentionkeeps only events where the entity is merely referenced. Only relevant when connected_dataset_ids is set.
-
sourceGroups:
Optional<List<String>>Slugs of source groups to scope fetching to their curated domain allowlists.
Source groups are named domain lists maintained by NewsCatcher (for example "Top 100 US Finance"). Retrieve the groups available to your organization with List source groups.
Domains are resolved when the job runs, so a group's current membership always applies. Maximum 20 groups per job. An unknown or inaccessible slug is rejected at submit time.
-
-
client.jobs.getJobStatus(jobId) -> StatusResponseDto
-
-
-
Retrieve the current processing status of a job.
-
-
-
client.jobs().getJobStatus( "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c", GetJobStatusRequest .builder() .build() );
-
-
-
jobId:
String— Unique job identifier returned fromPOST /catchAll/submit.
-
-
client.jobs.getJobResults(jobId) -> PullJobResponseDto
-
-
-
Retrieve the final results for a completed job.
-
-
-
client.jobs().getJobResults( "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c", GetJobResultsRequest .builder() .build() );
-
-
-
jobId:
String— Unique job identifier returned fromPOST /catchAll/submit.
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of records per page.
-
-
client.jobs.getJobResultsCsv(jobId) -> String
-
-
-
Returns a completed job's result records as a CSV download. One row per record, with enrichment fields as columns and citations as a JSON column.
If the job used connected entity datasets, connected entities are split into
event_associated_entitiesandmention_entitiesJSON columns. When no entity dataset was used, those two columns are omitted from the export entirely.
-
-
-
client.jobs().getJobResultsCsv( "job_id", GetJobResultsCsvRequest .builder() .build() );
-
-
-
jobId:
String— Unique job identifier returned fromPOST /catchAll/submit.
-
-
client.jobs.continueJob(request) -> ContinueResponseDto
-
-
-
Continue an existing job to process more records beyond the initial limit.
-
-
-
client.jobs().continueJob( ContinueRequestDto .builder() .jobId("5f0c9087-85cb-4917-b3c7-e5a5eff73a0c") .newLimit(100) .build() );
-
-
-
jobId:
String— Job identifier of the completed job to continue.
-
newLimit:
Optional<Integer>— New record limit for continued processing. Must be greater than the previous limit. If not provided, defaults to the plan maximum.
-
-
client.jobs.deleteJob(jobId) -> DeleteJobResponseDto
-
-
-
Soft-deletes a job. The job is flagged as deleted and no longer appears in list results. The underlying data is retained.
Only the job owner can delete a job. Returns
404if the job is not found or does not belong to the authenticated user.Deleting an already-deleted job returns
200.
-
-
-
client.jobs().deleteJob( "5f0c9087-85cb-4917-b3c7-e5a5eff73a0c", DeleteJobRequest .builder() .build() );
-
-
-
jobId:
String— Unique job identifier returned fromPOST /catchAll/submit.
-
-
client.jobs.listSourceGroups() -> ListSourceGroupsResponseDto
-
-
-
Returns a paginated list of source groups visible to your organization.
A source group is a named, curated domain allowlist maintained by NewsCatcher — for example "Top 100 US Finance". Pass a group's
sluginsource_groupswhen creating a job to scope article fetching to that group's domains, instead of maintaining a long domain list yourself.The response covers public groups plus any restricted groups your organization has been granted access to. Each entry returns
slug,name, anddescription.
-
-
-
client.jobs().listSourceGroups( ListSourceGroupsRequest .builder() .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of source groups per page.
-
-
client.eventMonitors.listMonitors() -> ListMonitorsResponseDto
-
-
-
Returns all event monitors created by the authenticated user.
-
-
-
client.eventMonitors().listMonitors( ListMonitorsRequest .builder() .projectId("60a85db4-78ec-4b78-876a-bc7d9cdadd04") .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of records per page.
-
search:
Optional<String>— Filter results by text (case-insensitive substring match).
-
ownership:
Optional<OwnershipFilter>
-
projectId:
Optional<String>— Filter results to resources belonging to this project.
-
-
client.eventMonitors.createMonitor(request) -> CreateMonitorResponseDto
-
-
-
Create a scheduled event monitor based on a reference job.
-
-
-
client.eventMonitors().createMonitor( CreateMonitorRequestDto .builder() .referenceJobId("5f0c9087-85cb-4917-b3c7-e5a5eff73a0c") .schedule("every day at 12 PM") .timezone("UTC") .webhookIds( Optional.of( Arrays.asList("a1b2c3d4-e5f6-7890-abcd-ef1234567890") ) ) .limit(10) .backfill(true) .build() );
-
-
-
referenceJobId:
StringJob ID to use as template for scheduled runs. Defines the query, validators, and enrichments used for each scheduled run.
If
backfillis true, the job'send_datemust be within the last 7 days.
-
schedule:
String— Event monitor schedule in plain text format. Minimum frequency depends on your plan.
-
timezone:
Optional<String>The IANA timezone identifier used as the fallback when the
schedulestring does not include an explicit timezone.If the schedule includes a timezone abbreviation (for example,
"every day at 9am EST"), the parsed timezone takes priority and this value is ignored.
-
webhookIds:
Optional<List<String>>IDs of centralized webhooks to notify on each run completion. Passing IDs here is equivalent to calling
POST /catchAll/webhooks/{webhook_id}/resourcesfor each ID after creation. Maximum 5 per event monitor.
-
limit:
Optional<Integer>— Maximum number of records per event monitor run. If not provided, defaults to the plan limit.
-
backfill:
Optional<Boolean>If true, fills the data gap between the reference job's
end_dateand the first scheduled run. The reference job'send_datemust be within the last 7 days.If false, no gap filling occurs and the first run uses the current cron window only — the reference job's age does not matter.
-
projectId:
Optional<String>— Project to assign this event monitor to. The event monitor appears in the project's resource list after creation.
-
-
client.eventMonitors.pullMonitorResults(monitorId) -> PullMonitorResponseDto
-
-
-
Retrieve aggregated results from all jobs executed by an event monitor.
-
-
-
client.eventMonitors().pullMonitorResults( "monitor_id", PullMonitorResultsRequest .builder() .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
-
client.eventMonitors.pullMonitorResultsCsv(monitorId) -> String
-
-
-
Returns the most recent run's records as a CSV download. One row per record, with enrichment fields as columns and citations as a JSON column.
If the event monitor's reference job used connected entity datasets, connected entities are split into
event_associated_entitiesandmention_entitiesJSON columns. When no entity dataset was used, those two columns are omitted from the export entirely.
-
-
-
client.eventMonitors().pullMonitorResultsCsv( "monitor_id", PullMonitorResultsCsvRequest .builder() .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
-
client.eventMonitors.listMonitorJobs(monitorId) -> ListMonitorJobsResponse
-
-
-
Return all jobs executed by an event monitor.
-
-
-
client.eventMonitors().listMonitorJobs( "monitor_id", ListMonitorJobsRequest .builder() .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
sort:
Optional<ListMonitorJobsRequestSort>— Sort by start_date (asc or desc).
-
-
client.eventMonitors.getMonitorStatusHistory(monitorId) -> MonitorStatusHistoryResponseDto
-
-
-
Returns the full execution history of an event monitor as a list of status entries, ordered from newest to oldest.
-
-
-
client.eventMonitors().getMonitorStatusHistory( "monitor_id", GetMonitorStatusHistoryRequest .builder() .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
-
client.eventMonitors.enableMonitor(monitorId, request) -> EnableMonitorResponse
-
-
-
Resume scheduled job execution for an event monitor.
-
-
-
client.eventMonitors().enableMonitor( "monitor_id", EnableMonitorRequestDto .builder() .backfill(true) .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
backfill:
Optional<Boolean>If true, fills the data gap between the last job's
end_dateand the first scheduled run after enabling. The last job'send_datemust be within the last 7 days.If false, no gap filling occurs and the first run uses the current cron window only — the last job's age does not matter.
-
-
client.eventMonitors.disableMonitor(monitorId) -> DisableMonitorResponse
-
-
-
Stop scheduled job execution for an event monitor.
-
-
-
client.eventMonitors().disableMonitor( "monitor_id", DisableMonitorRequest .builder() .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
-
client.eventMonitors.deleteMonitor(monitorId) -> DeleteMonitorResponseDto
-
-
-
Soft-deletes an event monitor. The event monitor is flagged as deleted, stops executing scheduled jobs immediately, and no longer appears in list results.
Only the event monitor owner can delete an event monitor. Returns
404if the event monitor is not found or does not belong to the authenticated user.Deleting an already-deleted event monitor returns
200.
-
-
-
client.eventMonitors().deleteMonitor( "monitor_id", DeleteMonitorRequest .builder() .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
-
client.eventMonitors.updateMonitor(monitorId, request) -> UpdateMonitorResponseDto
-
-
-
Update the webhook assignments, record limit, or schedule of an existing event monitor. Omitted fields are left unchanged.
Passing
schedulereplaces the event monitor's current schedule. The new schedule takes effect from the next scheduler reload, and the old schedule stops firing. The reference job cannot be changed.
-
-
-
client.eventMonitors().updateMonitor( "monitor_id", UpdateMonitorRequestDto .builder() .webhookIds( Optional.of( Arrays.asList("a1b2c3d4-e5f6-7890-abcd-ef1234567890") ) ) .build() );
-
-
-
monitorId:
String— Event monitor identifier.
-
webhookIds:
Optional<List<String>>Updated list of centralized webhook IDs for this event monitor.
Replaces all existing webhook assignments. Pass an empty array
[]to clear all assignments. Omit to leave existing assignments unchanged.
-
limit:
Optional<Integer>— Updated maximum number of records per event monitor run.
-
schedule:
Optional<String>New natural-language schedule that replaces the event monitor's current schedule. Examples:
every day at 9 AM,every Monday at 6 PM EST.Omit to keep the current schedule. The new schedule takes effect from the next scheduler reload, and the old schedule stops firing. Returns
422if the text can't be parsed or runs would be spaced too closely.
-
timezone:
Optional<String>IANA timezone for the new schedule (for example,
America/New_York). A timezone included in thescheduletext takes precedence. Ignored ifscheduleis not set.
-
-
client.webhooks.listWebhooks() -> ListWebhooksResponseDto
-
-
-
Returns a paginated list of webhooks belonging to the organization.
-
-
-
client.webhooks().listWebhooks( ListWebhooksRequest .builder() .projectId("60a85db4-78ec-4b78-876a-bc7d9cdadd04") .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of webhooks per page.
-
search:
Optional<String>— Filter results by text (case-insensitive substring match).
-
projectId:
Optional<String>— Filter results to resources belonging to this project.
-
-
client.webhooks.createWebhook(request) -> CreateWebhookResponseDto
-
-
-
Creates a new webhook endpoint for the organization.
Optionally pass
project_idto attach the webhook to a project in the same request.
-
-
-
client.webhooks().createWebhook( CreateWebhookRequestDto .builder() .name("Layoffs Alert") .url("https://hooks.slack.com/services/T000/B000/xxx") .type(WebhookType.SLACK) .deliveryMode(DeliveryMode.FULL) .projectId("60a85db4-78ec-4b78-876a-bc7d9cdadd04") .build() );
-
-
-
name:
String— Human-readable label for this webhook.
-
url:
StringDestination URL that receives the payload. Must use HTTPS. IP addresses are not accepted.
Type-specific URL requirements:
slack: Must start withhttps://hooks.slack.com/.teams: Hostname must match*.webhook.office.comor*.webhook.office365.com.generic: Any valid HTTPS domain.custom: Any valid HTTPS domain.
When
typeis omitted, it is auto-detected from the URL.
-
type:
Optional<WebhookType>
-
deliveryMode:
Optional<DeliveryMode>
-
method:
Optional<HttpMethod>
-
headers:
Optional<Map<String, String>>— Custom HTTP headers forwarded with each delivery.
-
params:
Optional<Map<String, String>>— Query parameters appended to the webhook URL.
-
auth:
Optional<CreateWebhookRequestDtoAuth>Authentication forwarded with each delivery. Supported types:
bearer: Adds anAuthorization: Bearer <token>header.api_key: Adds a custom header with the specified name and value.basic: Adds anAuthorization: Basic <credentials>header.
-
formatterConfig:
Optional<FormatterConfigDto>— Custom payload formatter. Required whentypeiscustom.
-
projectId:
Optional<String>Optional project to attach this webhook to at creation time. Equivalent to creating the webhook and then calling
POST /catchAll/projects/{project_id}/resourceswithresource_type: webhook.The project must belong to your organization.
-
-
client.webhooks.getWebhook(webhookId) -> GetWebhookResponseDto
-
-
-
Returns the full configuration of a single webhook by ID.
-
-
-
client.webhooks().getWebhook( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", GetWebhookRequest .builder() .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
-
client.webhooks.deleteWebhook(webhookId)
-
-
-
Permanently deletes a webhook and removes all resource assignments.
Assigned jobs and event monitors no longer trigger delivery to this webhook. This operation cannot be undone.
-
-
-
client.webhooks().deleteWebhook( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", DeleteWebhookRequest .builder() .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
-
client.webhooks.updateWebhook(webhookId, request) -> UpdateWebhookResponseDto
-
-
-
Updates one or more fields of an existing webhook.
-
-
-
client.webhooks().updateWebhook( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", UpdateWebhookRequestDto .builder() .name("Layoffs Alert (EU)") .isActive(false) .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
name:
Optional<String>— Updated webhook name.
-
url:
Optional<String>— Updated destination URL. Must use HTTPS. Type-specific URL rules apply.
-
type:
Optional<WebhookType>
-
deliveryMode:
Optional<DeliveryMode>
-
method:
Optional<HttpMethod>
-
headers:
Optional<Map<String, String>>— Updated HTTP headers. Replaces existing headers entirely.
-
params:
Optional<Map<String, String>>— Updated query parameters. Replaces existing params entirely.
-
auth:
Optional<UpdateWebhookRequestDtoAuth>— Updated authentication configuration. Replaces existing auth entirely.
-
formatterConfig:
Optional<FormatterConfigDto>— Updated custom payload formatter. Set only whentypeiscustom.
-
isActive:
Optional<Boolean>— Set tofalseto disable delivery without deleting the webhook.
-
-
client.webhooks.testWebhook(webhookId, request) -> TestWebhookResponseDto
-
-
-
Sends a test HTTP request to the webhook URL using the webhook's configured method, headers, and auth. Returns the response from the target endpoint.
Use this to verify URL reachability and authentication before attaching the webhook to a live job or event monitor.
-
-
-
client.webhooks().testWebhook( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", TestWebhookRequestDto .builder() .payload( new HashMap<String, Object>() {{ put("test", true); put("message", "CatchAll webhook test"); }} ) .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
payload:
Optional<Map<String, Object>>Custom payload to send in the test request. If omitted, a synthetic test payload is sent.
-
-
client.webhooks.listWebhookResources(webhookId) -> ListWebhookResourcesResponseDto
-
-
-
Returns a paginated list of resources currently assigned to this webhook.
-
-
-
client.webhooks().listWebhookResources( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", ListWebhookResourcesRequest .builder() .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
resourceType:
Optional<MappableResourceType>
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of assignments per page.
-
-
client.webhooks.assignWebhookResource(webhookId, request) -> AssignWebhookResourceResponseDto
-
-
-
Attaches a job, event monitor, or event monitor group to the webhook. When the resource completes, the webhook receives a delivery.
A single webhook can be assigned to multiple resources. Each resource can have up to 5 webhooks assigned.
-
-
-
client.webhooks().assignWebhookResource( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", AssignWebhookResourceRequestDto .builder() .resourceType(MappableResourceType.MONITOR) .resourceId("3fec5b07-8786-46d7-9486-d43ff67eccd4") .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
resourceType:
MappableResourceType— Type of resource to assign.
-
resourceId:
String— ID of the resource to assign.
-
-
client.webhooks.removeWebhookResource(webhookId, resourceType, resourceId)
-
-
-
Detaches a resource from this webhook. Completions of the resource no longer trigger delivery to this webhook.
The webhook and the resource itself are not deleted.
-
-
-
client.webhooks().removeWebhookResource( "a1b2c3d4-e5f6-7890-abcd-ef1234567890", MappableResourceType.JOB, "3fec5b07-8786-46d7-9486-d43ff67eccd4", RemoveWebhookResourceRequest .builder() .build() );
-
-
-
webhookId:
String— Unique webhook identifier.
-
resourceType:
MappableResourceType
-
resourceId:
String— Unique resource identifier.
-
-
client.webhooks.listWebhooksForResource(resourceType, resourceId) -> ListWebhooksResponseDto
-
-
-
Returns all webhooks currently assigned to the given resource.
-
-
-
client.webhooks().listWebhooksForResource( MappableResourceType.JOB, "3fec5b07-8786-46d7-9486-d43ff67eccd4", ListWebhooksForResourceRequest .builder() .build() );
-
-
-
resourceType:
MappableResourceType
-
resourceId:
String— Unique resource identifier.
-
isActive:
Optional<Boolean>— Filter by active status. Omit to return webhooks regardless of status.
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of webhooks per page.
-
-
client.webhooks.triggerWebhook(resourceType, resourceId)
-
-
-
Manually dispatches a webhook delivery for a resource on demand, without waiting for the next job or event monitor cycle.
Use this to re-deliver results after a failed delivery, replay a specific job's results, or validate a webhook against live data. The webhook must already be assigned to the resource.
-
-
-
client.webhooks().triggerWebhook( MappableResourceType.JOB, "3fec5b07-8786-46d7-9486-d43ff67eccd4", TriggerWebhookRequest .builder() .webhookId("a1b2c3d4-e5f6-7890-abcd-ef1234567890") .jobId("3fec5b07-8786-46d7-9486-d43ff67eccd4") .build() );
-
-
-
resourceType:
MappableResourceType
-
resourceId:
String— Unique resource identifier.
-
webhookId:
String— Identifier of the webhook to trigger. Must be assigned to the resource.
-
jobId:
Optional<String>Specific job run to deliver. Optional for
jobresources; formonitorandmonitor_groupresources, selects a past run to replay. When omitted, the latest available results are delivered.
-
-
client.webhooks.getWebhookDeliveryHistory() -> DeliveryHistoryResponseDto
-
-
-
Returns a paginated delivery log for a given resource, ordered by timestamp descending.
Each record shows the webhook dispatched, the HTTP status code returned, delivery outcome, and any error or warning messages. Use this to debug failed deliveries or audit dispatch activity.
-
-
-
client.webhooks().getWebhookDeliveryHistory( GetWebhookDeliveryHistoryRequest .builder() .resourceType(MappableResourceType.JOB) .resourceId("3fec5b07-8786-46d7-9486-d43ff67eccd4") .build() );
-
-
-
resourceType:
MappableResourceType— Type of the resource to retrieve delivery history for.
-
resourceId:
String— Identifier of the resource to retrieve delivery history for.
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of records per page.
-
-
client.entities.listEntities() -> EntityListResponse
-
-
-
Returns a paginated list of entities belonging to the authenticated organization. Supports filtering by status and entity type, and sorting by name, status, or creation date.
-
-
-
client.entities().listEntities( ListEntitiesRequest .builder() .search("NewsCatcher") .projectId("60a85db4-78ec-4b78-876a-bc7d9cdadd04") .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of entities per page.
-
search:
Optional<String>— Filter entities by name (case-insensitive substring match).
-
status:
Optional<EntityStatus>
-
entityType:
Optional<EntityType>
-
sortBy:
Optional<EntitySortBy>
-
sortOrder:
Optional<SortOrder>
-
projectId:
Optional<String>— Filter results to resources belonging to this project.
-
-
client.entities.createEntity(request) -> CreateEntityResponse
-
-
-
Creates a new company entity and begins background enrichment.
Each entity requires a
nameplus at least one of: adescriptionor adomain. Providing both is recommended —domainis the highest-signal identifier because it is unambiguous; a well-writtendescriptionis the best alternative when no domain is available.The entity status starts as
pendingand transitions toreadyonce enrichment completes.
-
-
-
client.entities().createEntity( CreateEntityRequest .builder() .name("NewsCatcher") .entityType(EntityType.COMPANY) .description("NewsCatcher is a data-as-a-service company providing news intelligence APIs including the CatchAll Web Search API (2B+ web pages indexed) and News API (140,000+ sources, 100+ countries).") .additionalAttributes( AdditionalAttributes .builder() .companyAttributes( CompanyAttributes .builder() .domain("newscatcherapi.com") .keyPersons( Optional.of( Arrays.asList("Artem Bugara", "Maksym Sugonyaka") ) ) .alternativeNames( Optional.of( Arrays.asList("NewsCatcher CatchAll", "NewsCatcher API") ) ) .build() ) .build() ) .build() );
-
-
-
request:
CreateEntityRequest
-
-
client.entities.createEntitiesBatch(request) -> CreateEntitiesBatchResponse
-
-
-
Creates multiple entities in a single request. Each entity is processed independently — a failure in one does not affect others.
Each entity requires a
nameplus at least one of: adescriptionor adomain. See Create entity for the full field reference.Returns an array of
{id, status}objects in the same order as the input array.
-
-
-
client.entities().createEntitiesBatch( CreateEntitiesBatchRequest .builder() .entities( Arrays.asList( CreateEntityRequest .builder() .name("OpenAI") .entityType(EntityType.COMPANY) .description("Artificial intelligence research company") .additionalAttributes( AdditionalAttributes .builder() .companyAttributes( CompanyAttributes .builder() .domain("openai.com") .keyPersons( Optional.of( Arrays.asList("Sam Altman") ) ) .alternativeNames( Optional.of( Arrays.asList("Open AI") ) ) .build() ) .build() ) .build(), CreateEntityRequest .builder() .name("Stripe") .entityType(EntityType.COMPANY) .description("Online payment processing platform") .additionalAttributes( AdditionalAttributes .builder() .companyAttributes( CompanyAttributes .builder() .domain("stripe.com") .keyPersons( Optional.of( Arrays.asList("Patrick Collison", "John Collison") ) ) .build() ) .build() ) .build() ) ) .build() );
-
-
-
entities:
List<CreateEntityRequest>Array of entities to create. Each item follows the same schema as single entity creation.
-
-
client.entities.getEntity(entityId) -> EntityResponse
-
-
-
Returns a single entity by ID with all attributes and current status.
-
-
-
client.entities().getEntity( "854198fa-f702-49db-a381-0427fa87f173", GetEntityRequest .builder() .build() );
-
-
-
entityId:
String— Unique entity identifier.
-
-
client.entities.deleteEntity(entityId)
-
-
-
Permanently deletes an entity. The entity is removed from all datasets and the search index. This operation cannot be undone.
-
-
-
client.entities().deleteEntity( "854198fa-f702-49db-a381-0427fa87f173", DeleteEntityRequest .builder() .build() );
-
-
-
entityId:
String— Unique entity identifier.
-
-
client.entities.updateEntity(entityId, request) -> EntityResponse
-
-
-
Updates one or more fields of an existing entity.
-
-
-
client.entities().updateEntity( "854198fa-f702-49db-a381-0427fa87f173", UpdateEntityRequest .builder() .description("Updated description") .additionalAttributes( AdditionalAttributes .builder() .companyAttributes( CompanyAttributes .builder() .alternativeNames( Optional.of( Arrays.asList("NewsCatcher CatchAll", "NewsCatcher API", "NCA") ) ) .build() ) .build() ) .build() );
-
-
-
entityId:
String— Unique entity identifier.
-
name:
Optional<String>— Updated entity name.
-
description:
Optional<String>— Updated description.
-
externalEntityId:
Optional<String>— Updated external identifier for this entity.
-
additionalAttributes:
Optional<AdditionalAttributes>
-
-
client.datasets.listDatasets() -> DatasetListResponse
-
-
-
Returns a paginated list of datasets belonging to the authenticated organization. Supports filtering by status and sorting by name, status, or creation date.
-
-
-
client.datasets().listDatasets( ListDatasetsRequest .builder() .search("Portfolio") .projectId("60a85db4-78ec-4b78-876a-bc7d9cdadd04") .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of datasets per page.
-
search:
Optional<String>— Filter datasets by name (case-insensitive substring match).
-
latestStatus:
Optional<DatasetStatus>— Filter by dataset status.
-
sortBy:
Optional<DatasetSortBy>
-
sortOrder:
Optional<SortOrder>
-
ownership:
Optional<OwnershipFilter>
-
projectId:
Optional<String>— Filter results to resources belonging to this project.
-
-
client.datasets.createDataset(request) -> DatasetResponse
-
-
-
Creates a new dataset from a list of existing entity IDs. The optional
descriptionfield here describes the dataset itself — it is separate from the entity-leveldescriptionused for matching.Entities must be created before adding them to a dataset. Each entity requires a
nameplus at least one of: adescriptionor adomain. Use Create entity or Create entities batch to create entities first.If any of the provided entity IDs do not exist or do not belong to your organization, the request fails with
400. All entity IDs must be valid before the dataset is created.To create a dataset and entities in one step, use the
Create dataset from CSVendpoint instead.
-
-
-
client.datasets().createDataset( CreateDatasetRequest .builder() .name("My Portfolio") .description("Companies in our investment portfolio") .entityIds( Optional.of( Arrays.asList("854198fa-f702-49db-a381-0427fa87f173", "a1b2c3d4-e5f6-7890-abcd-ef1234567890") ) ) .build() );
-
-
-
name:
String— Name for the dataset.
-
description:
Optional<String>— Optional description.
-
entityIds:
Optional<List<String>>— IDs of existing entities to include in the dataset. All IDs must belong to the authenticated organization. If any ID is invalid or not found, the request fails with400.
-
-
client.datasets.createDatasetFromCsv(request) -> CreateDatasetCsvResponse
-
-
-
Creates a new dataset by uploading a CSV file. Each row in the CSV becomes an entity. Each row requires a
nameplus at least one of: adescriptionor adomain; all other columns are optional. Note:descriptionin the CSV is the entity's matching description — it is separate from the dataset-leveldescriptionfield in the form data.CSV format:
name,description,domain,alternative_names,key_persons NewsCatcher,"NewsCatcher is a data-as-a-service company providing news intelligence APIs including the CatchAll Web Search API (2B+ web pages indexed) and News API (140,000+ sources, 100+ countries).",newscatcherapi.com,"NewsCatcher CatchAll;NewsCatcher API","Artem Bugara;Maksym Sugonyaka" OpenAI,"Artificial intelligence research company",openai.com,"Open AI","Sam Altman"
Use semicolons (
;) to separate multiple values inalternative_namesandkey_persons. Rows with emptynameare skipped and reported invalidation_report.Note: The response shape differs from the JSON dataset creation endpoint: it returns
dataset_id(notid) and includes avalidation_reportwith details on skipped rows.
-
-
-
client.datasets().createDatasetFromCsv( null, CreateDatasetFromCsvRequest .builder() .name("name") .build() );
-
-
client.datasets.getDataset(datasetId) -> DatasetResponse
-
-
-
Returns a single dataset by ID including entity count and current status.
-
-
-
client.datasets().getDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", GetDatasetRequest .builder() .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
-
client.datasets.deleteDataset(datasetId)
-
-
-
Permanently deletes a dataset. The entities within the dataset are not deleted — only the dataset itself. This operation cannot be undone.
-
-
-
client.datasets().deleteDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", DeleteDatasetRequest .builder() .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
-
client.datasets.updateDataset(datasetId, request) -> DatasetResponse
-
-
-
Updates the name or description of a dataset.
-
-
-
client.datasets().updateDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", UpdateDatasetRequest .builder() .name("My Portfolio (updated)") .description("Updated Q1 2026 watchlist") .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
name:
Optional<String>— Updated dataset name.
-
description:
Optional<String>— Updated description.
-
-
client.datasets.addEntitiesToDataset(datasetId, request) -> ManageEntitiesResponse
-
-
-
Adds one or more existing entities to a dataset. Returns the number of entities added.
-
-
-
client.datasets().addEntitiesToDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", AddEntitiesToDatasetRequest .builder() .body( DatasetEntityIdsRequest .builder() .entityIds( Arrays.asList("854198fa-f702-49db-a381-0427fa87f173") ) .build() ) .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
request:
DatasetEntityIdsRequest
-
-
client.datasets.removeEntitiesFromDataset(datasetId, request) -> ManageEntitiesResponse
-
-
-
Removes one or more entities from a dataset. The entities themselves are not deleted — they are only removed from this dataset. Returns the number of entities removed.
-
-
-
client.datasets().removeEntitiesFromDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", RemoveEntitiesFromDatasetRequest .builder() .body( DatasetEntityIdsRequest .builder() .entityIds( Arrays.asList("854198fa-f702-49db-a381-0427fa87f173") ) .build() ) .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
request:
DatasetEntityIdsRequest
-
-
client.datasets.listEntitiesInDataset(datasetId, request) -> DatasetEntityListResponse
-
-
-
Returns a paginated list of entities in a dataset. Supports filtering by status, entity type, and name search.
-
-
-
client.datasets().listEntitiesInDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", ListDatasetEntitiesRequest .builder() .page(1) .pageSize(100) .search("OpenAI") .status(EntityStatus.READY) .entityType(EntityType.COMPANY) .sortBy(EntitySortBy.CREATED_AT) .sortOrder(SortOrder.DESC) .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
page:
Optional<Integer>— The page number to retrieve.
-
pageSize:
Optional<Integer>— The number of entities per page.
-
search:
Optional<String>— Filters entities by name using a case-insensitive substring match.
-
status:
Optional<EntityStatus>
-
entityType:
Optional<EntityType>
-
sortBy:
Optional<EntitySortBy>
-
sortOrder:
Optional<SortOrder>
-
-
client.datasets.getDatasetStatusHistory(datasetId) -> DatasetStatusHistoryResponse
-
-
-
Returns the full status change history for a dataset, ordered chronologically from oldest to newest.
-
-
-
client.datasets().getDatasetStatusHistory( "ccabb755-afc2-4047-b84c-78d1f23d49b2", GetDatasetStatusHistoryRequest .builder() .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
-
client.datasets.uploadCsvToDataset(datasetId, request) -> UploadCsvToDatasetResponse
-
-
-
Appends new companies to an existing dataset by uploading a CSV file. Uses the same CSV format as the dataset creation endpoint.
The response omits
dataset_namecompared to the create-from-CSV endpoint since the dataset already exists.
-
-
-
client.datasets().uploadCsvToDataset( "ccabb755-afc2-4047-b84c-78d1f23d49b2", null, UploadCsvToDatasetRequest .builder() .build() );
-
-
-
datasetId:
String— Unique dataset identifier.
-
-
client.projects.listProjects() -> ProjectListResponseDto
-
-
-
Returns all projects visible to the authenticated user.
-
-
-
client.projects().listProjects( ListProjectsRequest .builder() .search("M&A") .build() );
-
-
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of records per page.
-
search:
Optional<String>— Filter by project name (case-insensitive substring match).
-
ownership:
Optional<OwnershipFilter>
-
-
client.projects.createProject(request) -> CreateProjectResponseDto
-
-
-
Creates a new project.
-
-
-
client.projects().createProject( CreateProjectRequestDto .builder() .name("AI M&A Tracking") .description("Tracks AI-related M&A activity for our investment team.") .build() );
-
-
-
name:
String— Name for the project.
-
description:
Optional<String>— Optional description.
-
-
client.projects.getProject(projectId) -> ProjectResponseDto
-
-
-
Returns a single project by ID.
-
-
-
client.projects().getProject( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", GetProjectRequest .builder() .build() );
-
-
-
projectId:
String— Unique project identifier.
-
-
client.projects.deleteProject(projectId)
-
-
-
Deletes a project. By default, assigned resources are unassigned but not deleted.
Webhooks are an exception: they are never deleted by this operation, even when
delete_resourcesistrue. Any attached webhook is detached from the project and continues to exist and deliver, because the same webhook may be attached to other projects.
-
-
-
client.projects().deleteProject( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", DeleteProjectRequest .builder() .build() );
-
-
-
projectId:
String— Unique project identifier.
-
deleteResources:
Optional<Boolean>If true, permanently deletes all resources (jobs, event monitors, datasets, event monitor groups) assigned to the project. If false, the project is deleted and its resources are unassigned but not deleted.
Webhooks are never deleted by either setting — they are only detached from the project.
-
-
client.projects.updateProject(projectId, request) -> UpdateProjectResponseDto
-
-
-
Updates the name or description of an existing project.
-
-
-
client.projects().updateProject( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", UpdateProjectRequestDto .builder() .name("AI M&A Tracking (Q2 2026)") .build() );
-
-
-
projectId:
String— Unique project identifier.
-
name:
Optional<String>— New name for the project.
-
description:
Optional<String>— New description for the project.
-
-
client.projects.getProjectOverview(projectId) -> ProjectOverviewResponseDto
-
-
-
Returns resource counts for a project, grouped by type and status.
For
jobsandmonitors, counts are broken down by status (for example,completed,failed). Fordatasets,monitor_groups, andwebhooks, only atotalcount is returned.
-
-
-
client.projects().getProjectOverview( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", GetProjectOverviewRequest .builder() .build() );
-
-
-
projectId:
String— Unique project identifier.
-
-
client.projects.listProjectResources(projectId) -> ProjectResourceListResponseDto
-
-
-
Returns all resources assigned to a project, with optional filtering by type.
-
-
-
client.projects().listProjectResources( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", ListProjectResourcesRequest .builder() .build() );
-
-
-
projectId:
String— Unique project identifier.
-
resourceType:
Optional<ProjectResourceType>
-
page:
Optional<Integer>— Page number to retrieve.
-
pageSize:
Optional<Integer>— Number of records per page.
-
-
client.projects.addResourceToProject(projectId, request) -> AddResourceResponseDto
-
-
-
Assigns one or more existing resources to a project in a single request.
-
-
-
client.projects().addResourceToProject( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", AddResourceRequestDto .builder() .resources( Arrays.asList( ResourceItemDto .builder() .resourceType(ProjectResourceType.JOB) .resourceId("48421e16-1f50-4048-b62c-d3bc0789d30d") .build() ) ) .build() );
-
-
-
projectId:
String— Unique project identifier.
-
resources:
List<ResourceItemDto>— Resources to assign to the project.
-
-
client.projects.removeResourceFromProject(projectId, resourceType, resourceId) -> RemoveResourceResponseDto
-
-
-
Removes a resource from a project. The resource itself is not deleted — it becomes unassigned and continues to exist.
-
-
-
client.projects().removeResourceFromProject( "60a85db4-78ec-4b78-876a-bc7d9cdadd04", ProjectResourceType.JOB, "48421e16-1f50-4048-b62c-d3bc0789d30d", RemoveResourceFromProjectRequest .builder() .build() );
-
-
-
projectId:
String— Unique project identifier.
-
resourceType:
ProjectResourceType
-
resourceId:
String— ID of the resource to remove.
-
-
client.meta.healthCheck() -> HealthCheckResponse
-
-
-
Check API availability.
-
-
-
client.meta().healthCheck();
-
-
client.meta.getVersion() -> GetVersionResponse
-
-
-
Returns current API version.
-
-
-
client.meta().getVersion();
-
-