openapi: 3.2.0 info: title: Fast Utilities API version: 0.1.0 security: - bearer: [] - oauth2: - forms:read - forms:write tags: - name: Utilities paths: /utilities/{skill}: post: summary: Run a free PDF utility description: 'POST /utilities/{skill}: run one of the free PDF utilities (compose_pdf, merge_pdf, extract_pages, delete_pages, reorder_pages, rotate_pages, inspect_pdf) synchronously against prior artifacts, returning the result inline. Account callers authenticate with a Bearer key; anonymous callers send no credential and a valid artifact_token on every source.' operationId: run_utility_utilities__skill__post parameters: - name: skill in: path required: true schema: type: string title: Skill responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' requestBody: required: true content: application/json: schema: type: object description: compose_pdf and merge_pdf take sources; extract_pages, delete_pages, rotate_pages, reorder_pages, and inspect_pdf take a single artifact_id (plus pages for extract_pages/delete_pages, order for reorder_pages, or rotations for rotate_pages). properties: sources: type: array maxItems: 20 description: 'For compose_pdf and merge_pdf: a list of prior artifacts, combined into one PDF (merge_pdf takes whole files: no pages or rotate).' items: type: object properties: artifact_id: type: string description: A prior artifact's id. artifact_token: type: string description: The capability token for an anonymous artifact_id. pages: type: string description: An optional page range, such as 1-3,7. rotate: type: integer enum: - 90 - 180 - 270 description: An optional rotation, in degrees. required: - artifact_id artifact_id: type: string description: 'For the single-source skills (extract_pages, delete_pages, reorder_pages, rotate_pages, inspect_pdf): the artifact to operate on.' artifact_token: type: string description: 'For pay-per-call callers, alongside artifact_id: the capability token for an anonymous artifact_id.' pages: type: string description: A selection like 1-3,7 (1-based); required by extract_pages and delete_pages. order: type: array items: type: integer description: 'reorder_pages: every page number exactly once.' rotations: type: array description: 'rotate_pages: a list of page-range/degree pairs.' items: type: object properties: pages: type: string description: A selection like 1-3,7. degrees: type: integer enum: - 90 - 180 - 270 security: [] tags: - Utilities components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError securitySchemes: bearer: type: http scheme: bearer bearerFormat: Emboss API key (sk_...) description: An Emboss API key. See https://getemboss.ai/docs/authentication. oauth2: type: oauth2 description: Sign in with your Emboss account. See https://getemboss.ai/docs/authentication. flows: authorizationCode: authorizationUrl: https://api.getemboss.ai/oauth/authorize tokenUrl: https://api.getemboss.ai/oauth/token scopes: forms:read: Read your forms forms:write: Create and fill forms