---
name: custom-api-operations
description: >-
  A template for reaching any approved provider API through the governed access layer when no purpose-built workflow exists: preflight, safe read, bounded write, read-back, and a denial-handling contract. Use when the user needs an API that no existing workflow covers, or asks how to reach a provider not in the catalog.
metadata:
  version: "1.1.1"
---

# custom-api-operations

> **Client-neutral reusable package.** No client names, tenant or workspace identifiers, account or
> resource IDs, customer records, credentials, or internal paths. All examples are synthetic.

| | |
|---|---|
| Live catalog name | Custom API Operations |
| Live category | Agency Operations |
| Catalog entry | 20 |
| Internal capability ID | `CAP-AO-03` |
| Provider | Any approved provider |
| Availability | Candidate; validate in the active Workspace |
| Deliverable type | `custom_workflow_template` |
| Validation status | Candidate; local package validation only |
| Version | 1.1.0 |


## OLLIE Runtime integration

Use this capability under the active OLLIE Operator. Read live Workspace Context and tenant
bindings for the required inputs below; this public package supplies no client facts or authority.
Consume `ask-ollie-authority-core` for authority, `outloop-access-fallback` for recovery and
resource verification, `email-lifecycle-core` for recipients, approvals and stored-copy delivery
verification, and the bootstrapper Runtime Contract for ownership, scheduling and completion.
These owners govern execution; this Skill does not implement a competing runtime.

Select the relevant expertise below for the requested outcome. Runtime governs combining Skills,
partial use and completing missing steps with other authorized capabilities. This Skill's domain
scope does not limit the Operator's wider authorized task. Preserve domain safety restrictions.
Verify findings against source evidence and read back any resulting artifact or authorized change.

## Business outcome

A provider with no dedicated workflow is still reachable safely, without anyone ever handling a credential.

## Operating modes

Read · Analyze · Write with approval

## Prerequisites — what must be true before this runs

- Workspace Context
- An approved grant for the target provider
- The provider's official API documentation

## Required inputs

| Input | Source |
|---|---|
| Target provider and the exact operation | Required |
| Provider API documentation reference | Required — the request shape comes from the docs, never from memory |
| Whether the operation reads or writes | Required |
| Named approver where the operation writes | Configuration |

## Read the docs, do not guess the shape

A request shape assembled from memory is the most common failure in this template. Read the provider's official
documentation for the endpoint, then build the envelope. Pass authentication, host and other access
failures to the Runtime access owner for classification and authorized recovery.

## Action classification

| Action class | This workflow |
|---|---|
| Read | Any approved GET on the approved host |
| Analyze | Response shape discovery, capability boundary mapping, denial-code interpretation |
| Draft | The exact request envelope, with the documentation reference behind each field |
| Write with approval | Approved mutating methods, dry-run first where the provider supports one |
| Destructive | Outside this capability's scope; it supplies no destructive operation pattern or authorization |

## Approval and delivery

The Operator applies Authority Core and the active Workspace approval policy to any requested
mutation. Email Lifecycle owns recipient classification, sending and stored-copy verification.
The action table defines this capability's domain scope; it grants no permission by itself.

## Expected output

A working request pattern for the operation, the redacted result, and a short capability note recording what the provider allowed and what it denied.

## Synthetic placeholders used in this package

These are illustrative only. Real values come from the client's own workspace configuration and are
never written back into this package.

| Placeholder | Meaning |
|---|---|
| `PROVIDER_PLACEHOLDER` | Target provider |
| `ENDPOINT_PLACEHOLDER` | Documented endpoint |
| `APPROVER_PLACEHOLDER` | Named approver |
