project_get_many
Fetch multiple OmniFocus projects by their IDs in a single call, returning up to 100 full project objects at once. Ideal for batch retrieval when you already have a list of project IDs.
Instructions
Fetch up to 100 projects by persistent ID in a single OmniFocus round-trip. Use when you have a set of project IDs and need full project objects for all of them. Do NOT use for a single ID — use project_get instead. Returns Project[] in input order. Missing IDs are omitted and appear in meta.warnings. Read-only; safe to retry. Example: project_get_many({ ids: ["prj123", "prj456"] })
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Array of project IDs to fetch (0..100). Get IDs from project_list. Missing IDs are omitted (not errors) and appear in meta.warnings. | |
| fields | No | Restrict each returned project to this list of top-level fields (id is always returned). Omit for the full project shape. Empty array returns just id. Unknown names are dropped silently and surface in meta.warnings.WARN_UNKNOWN_FIELDS. Allowed: name, note, noteHtml, folderId, tagIds, status, completionCriterion, deferDate, deferDateFloating, dueDate, dueDateFloating, estimatedMinutes, flagged, reviewIntervalDays, nextReviewDate, lastReviewDate, completed, completedAt, dropped, droppedAt, taskCount, completedTaskCount, createdAt, modifiedAt, _links. | |
| maxOutputBytes | No | Cap the serialized byte size of the returned projects[] array. When the response would exceed this, the server returns as many whole projects as fit (in input order), sets meta.truncatedAtCap=true with meta.bytesReturned and meta.itemsReturned, and lists the trimmed ids in meta.warnings.WARN_RESULT_TRUNCATED details.droppedIds — re-request those in a smaller batch or with a higher cap. Omit for no cap. Values above the server's hard ceiling (~1 MiB) are clamped. A single project larger than the cap is still returned whole so the batch always makes progress. |