openapi: 3.2.0 info: title: Ad Seller System Approvals API description: IAB OpenDirect 2.1 compliant seller agent for programmatic advertising. Supports product discovery, tiered pricing, proposal evaluation, multi-round negotiation, deal execution, order management, and change requests. contact: name: IAB Tech Lab url: https://iabtechlab.com/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: 1.0.0 tags: - name: Approvals description: Human-in-the-loop approval workflow paths: /approvals: get: tags: - Approvals summary: List Pending Approvals description: List all pending approval requests. Requires authentication. operationId: list_pending_approvals_approvals_get parameters: - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization - name: X-Api-Key in: header required: false schema: anyOf: - type: string - type: 'null' title: X-Api-Key responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /approvals/{approval_id}: get: tags: - Approvals summary: Get Approval description: 'Get a specific approval request and its response (if any). Requires authentication.' operationId: get_approval_approvals__approval_id__get parameters: - name: approval_id in: path required: true schema: type: string title: Approval Id - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization - name: X-Api-Key in: header required: false schema: anyOf: - type: string - type: 'null' title: X-Api-Key responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /approvals/{approval_id}/decide: post: tags: - Approvals summary: Decide Approval description: 'Submit a human decision for a pending approval. Requires authentication. The verified principal from the authenticated API key is stamped into the audit record; ``body.decided_by`` is kept as a display label only.' operationId: decide_approval_approvals__approval_id__decide_post parameters: - name: approval_id in: path required: true schema: type: string title: Approval Id - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization - name: X-Api-Key in: header required: false schema: anyOf: - type: string - type: 'null' title: X-Api-Key requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ApprovalDecisionRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /approvals/{approval_id}/resume: post: tags: - Approvals summary: Resume Flow description: 'Resume a flow after an approval decision has been submitted. Requires authentication. Loads the flow state snapshot, applies the decision, and returns the final result without re-running expensive crew evaluations.' operationId: resume_flow_approvals__approval_id__resume_post parameters: - name: approval_id in: path required: true schema: type: string title: Approval Id - name: authorization in: header required: false schema: anyOf: - type: string - type: 'null' title: Authorization - name: X-Api-Key in: header required: false schema: anyOf: - type: string - type: 'null' title: X-Api-Key responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: 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 HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ApprovalDecisionRequest: properties: decision: type: string title: Decision decided_by: type: string title: Decided By default: anonymous reason: type: string title: Reason default: '' modifications: additionalProperties: true type: object title: Modifications default: {} type: object required: - decision title: ApprovalDecisionRequest description: Request to submit an approval decision.