> For the complete documentation index, see [llms.txt](https://peoplescourt.ai/llms.txt). This page is also available as Markdown.

# File a party procedural request

Available when canonical API access is enabled. The shared operation rechecks current authority and pinned Rules. Partner writes require procedural:request. This grants neither general hosted-message access nor ruling authority. Only one pending typed extension request per deadline per party is allowed. A second request for the same deadline is refused; withdraw the pending request with POST /api/cases/{id}/procedural-requests/{requestId}/withdraw or Case messages on the website, then refile. MCP has no withdrawal action; use the website or canonical API. Closing the response thread does not end a pending request. In an AI-assisted human case, the active assigned human Arbitrator decides ordinary procedural requests. Without an active Arbitrator the request waits for appointment and is never decided by the AI. Administrators retain their limited routine or unopposed authority under Rule 2.6. For cases pinned to Rules 1.1, valid unopened-phase extension requests are accepted and remain pending until the target phase opens and the opposing response process is ready. Intake does not change future forecasts or hold the current phase. Closed phases are refused. Only one pending request per deadline per party is allowed. Stale requested dates must be revised before grant by withdrawing and refiling. A skipped phase resolves without a grant or schedule change. Cases pinned to other Rules retain their existing decision timing.

Reference

Party procedure

POST

partial

`/api/cases/{id}/procedural-requests`

`fileProceduralRequestPreview`

## Authentication and authority

Use one listed account-session, scoped OAuth, or partner credential alternative. Account tokens retain the approving account’s authority. Cookie-authenticated writes require same-origin authorization. Alternatives are OR; schemes in one alternative are AND.

`CanonicalSession`

The signed-in account’s session. Access is limited to that account’s authority; writes require same-origin authorization.

`CanonicalPartnerBearer`

Partner key issued after partner access is approved. The key’s role and current case membership determine which actions it authorizes.

`AccountOAuth`

Account tokens authorize only their approving account and approved scopes. S256 PKCE is mandatory on the code flow. Client credentials require a registered autonomous-agent account and cannot request offline_access; on the MCP resource they permit only cases:read for the registered existing case. Connector clients use authorization code on the MCP resource with its supported connector permissions. Explicit reacceptance is required after Rules or disclosure changes.

## Parameters

Name

Location

Requirement

Schema

`id`

path

Required

{"type":"string"}

`Idempotency-Key`

Reuse for an identical retry to recover the same result. Changed input conflicts.

header

Optional

{"type":"string"}

## Request body

Required request body.

application/json

```json
{
  "$ref": "#/components/schemas/ProceduralRequestPreview",
  "type": "object",
  "required": [
    "body",
    "procedural"
  ],
  "properties": {
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "procedural": {
      "type": "object",
      "required": [
        "kind",
        "requestedRelief"
      ],
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "deadline_extension",
            "filing_correction",
            "translation",
            "challenge",
            "other"
          ]
        },
        "requestedRelief": {
          "type": "string",
          "minLength": 10,
          "maxLength": 1500
        },
        "urgency": {
          "type": "string",
          "enum": [
            "routine",
            "urgent"
          ]
        },
        "urgencyBasis": {
          "type": "string"
        },
        "urgencyNeededBy": {
          "type": "string",
          "format": "date-time",
          "maxLength": 64,
          "description": "RFC 3339 date-time without a leap second, stored exactly as submitted."
        },
        "requestedEffect": {
          "$ref": "#/components/schemas/ProceduralRequestedEffect",
          "description": "The typed scheduling or filing effect a party asks the assigned procedural authority to grant. Under the Rule 4.13 amendment, AI-only deadline extensions go to a Procedural Arbiter; other AI-only requests await limited Rule 2.6 administration or remain reserved for the Tribunal. The assigned human Arbitrator decides in AI-assisted human cases. Earlier cases retain their pinned procedure. Only the listed fields are accepted; deadlineAt is an RFC 3339 date-time of at most 64 characters without a leap second, and submissionId names the filing party's own disclosed filing. Accepted values are stored and shown exactly as submitted.",
          "oneOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "const": "none"
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type",
                "deadline",
                "deadlineAt"
              ],
              "properties": {
                "type": {
                  "const": "extend_deadline"
                },
                "deadline": {
                  "type": "string",
                  "enum": [
                    "answer",
                    "evidence",
                    "rebuttal",
                    "close"
                  ]
                },
                "deadlineAt": {
                  "type": "string",
                  "format": "date-time",
                  "maxLength": 64
                }
              }
            },
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type",
                "submissionId"
              ],
              "properties": {
                "type": {
                  "const": "open_filing_replacement"
                },
                "submissionId": {
                  "type": "string",
                  "pattern": "^sub_[a-z0-9-]{1,64}$"
                }
              }
            }
          ]
        }
      }
    }
  }
}
```

## Responses

### 201

Authorized operation result.

application/json

```json
{
  "$ref": "#/components/schemas/CanonicalFileProceduralRequestPreviewResponse",
  "type": "object",
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CanonicalHostedThreadResult",
      "type": "object",
      "properties": {
        "thread": {
          "$ref": "#/components/schemas/CanonicalHostedThread",
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "category": {
              "type": "string"
            },
            "visibility": {
              "type": "string"
            },
            "status": {
              "type": "string"
            },
            "createdAt": {
              "type": "string"
            },
            "updatedAt": {
              "type": "string"
            },
            "closedAt": {
              "type": "string"
            },
            "canReply": {
              "type": "boolean"
            },
            "proceduralRequest": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "requestedRelief": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "awaiting_response",
                    "ready_for_decision",
                    "deciding",
                    "decided",
                    "referred",
                    "recovery_hold",
                    "human_attention",
                    "administrator_queue",
                    "reserved_for_tribunal"
                  ],
                  "description": "administrator_queue is pending limited Rule 2.6 administration. reserved_for_tribunal acknowledges a request kept for the Tribunal without a ruling or effect. Neither is an adjudicated referral."
                },
                "responseDueAt": {
                  "type": "string"
                },
                "canRule": {
                  "type": "boolean"
                },
                "canWithdraw": {
                  "type": "boolean"
                },
                "withdrawnAt": {
                  "type": "string"
                },
                "deadlineTarget": {
                  "$ref": "#/components/schemas/ProceduralDeadlineTarget",
                  "type": "object",
                  "properties": {
                    "phase": {
                      "type": "string",
                      "enum": [
                        "answer",
                        "evidence",
                        "rebuttal"
                      ]
                    },
                    "procedureStageId": {
                      "type": "string",
                      "description": "The exact configured round bound at filing, when applicable."
                    }
                  },
                  "required": [
                    "phase"
                  ]
                },
                "deadlineDeferral": {
                  "$ref": "#/components/schemas/ProceduralDeadlineDeferral",
                  "type": "object",
                  "properties": {
                    "state": {
                      "type": "string",
                      "enum": [
                        "awaiting_phase",
                        "needs_revised_date",
                        "open",
                        "resolved"
                      ]
                    },
                    "openedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "currentDueAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "resolvedAt": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "dateRevisionRequiredAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "state"
                  ]
                },
                "assignedAuthority": {
                  "$ref": "#/components/schemas/ProceduralAuthority",
                  "type": "string",
                  "enum": [
                    "administrator",
                    "tribunal",
                    "arbitrator",
                    "procedural_arbiter"
                  ]
                },
                "ruling": {
                  "$ref": "#/components/schemas/ProceduralPublicRuling",
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "authority": {
                      "$ref": "#/components/schemas/ProceduralAuthority"
                    },
                    "disposition": {
                      "type": "string",
                      "enum": [
                        "granted",
                        "denied",
                        "granted_in_part",
                        "referred",
                        "withdrawn"
                      ]
                    },
                    "reasons": {
                      "type": "string"
                    },
                    "effect": {
                      "type": "string"
                    },
                    "structuredEffect": {
                      "$ref": "#/components/schemas/ProceduralRequestedEffect"
                    },
                    "actorLabel": {
                      "type": "string",
                      "description": "The recorded public decider designation; no private model or endpoint identity."
                    },
                    "issuedAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "required": [
                    "id",
                    "authority",
                    "disposition",
                    "reasons",
                    "actorLabel",
                    "issuedAt"
                  ]
                }
              }
            },
            "messages": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CanonicalHostedMessage",
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "sender": {
                    "type": "object",
                    "properties": {
                      "label": {
                        "type": "string"
                      },
                      "role": {
                        "type": "string"
                      },
                      "side": {
                        "type": "string",
                        "enum": [
                          "claimant",
                          "respondent"
                        ]
                      },
                      "onBehalfOfParty": {
                        "type": "string",
                        "enum": [
                          "claimant",
                          "respondent"
                        ]
                      },
                      "representative": {
                        "type": "object",
                        "properties": {
                          "displayName": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "displayName"
                        ]
                      }
                    },
                    "required": [
                      "label",
                      "role"
                    ]
                  },
                  "body": {
                    "type": "string"
                  },
                  "createdAt": {
                    "type": "string"
                  }
                },
                "required": [
                  "id",
                  "sender",
                  "body",
                  "createdAt"
                ]
              }
            }
          },
          "required": [
            "id",
            "category",
            "visibility",
            "status",
            "createdAt",
            "updatedAt",
            "canReply",
            "messages"
          ]
        }
      },
      "required": [
        "thread"
      ]
    },
    "requestId": {
      "type": "string"
    }
  },
  "required": [
    "data",
    "requestId"
  ]
}
```

### 404

The resource is unavailable or the caller lacks access.

### default

RFC 9457 style problem response.

application/problem+json

```json
{
  "$ref": "#/components/schemas/Problem",
  "type": "object",
  "required": [
    "type",
    "title",
    "status",
    "code",
    "detail",
    "requestId"
  ],
  "properties": {
    "type": {
      "type": "string",
      "format": "uri"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer"
    },
    "code": {
      "type": "string"
    },
    "detail": {
      "type": "string"
    },
    "requestId": {
      "type": "string"
    },
    "details": {
      "description": "Account-readiness refusals include a value-free checklist and exact account-page link. Other error codes may provide different details.",
      "anyOf": [
        {
          "$ref": "#/components/schemas/AccountReadinessDetails",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "ready",
            "accountSetupUrl",
            "missing"
          ],
          "properties": {
            "ready": {
              "type": "boolean"
            },
            "accountSetupUrl": {
              "type": "string",
              "format": "uri"
            },
            "missing": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountReadinessRequirement",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "label",
                  "section",
                  "accountUrl"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "email",
                      "identity",
                      "legal_documents"
                    ]
                  },
                  "accountUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            }
          }
        },
        {
          "$ref": "#/components/schemas/LegalDocumentsRequiredDetails",
          "type": "object",
          "additionalProperties": false,
          "required": [
            "legalDocumentsUrl"
          ],
          "properties": {
            "legalDocumentsUrl": {
              "type": "string",
              "format": "uri",
              "description": "Absolute account-page URL where the person reviews and accepts the current Terms and Privacy Notice. Uses the configured public application origin. After accepting the documents, retry the original operation."
            },
            "ready": {
              "type": "boolean"
            },
            "accountSetupUrl": {
              "type": "string",
              "format": "uri"
            },
            "missing": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/AccountReadinessRequirement",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "code",
                  "label",
                  "section",
                  "accountUrl"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  },
                  "section": {
                    "type": "string",
                    "enum": [
                      "email",
                      "identity",
                      "legal_documents"
                    ]
                  },
                  "accountUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              }
            }
          }
        },
        {}
      ]
    }
  }
}
```

## Example response

### Successful response

```json
{
  "data": {
    "thread": {
      "id": "id_test",
      "category": "category_test",
      "visibility": "visibility_test",
      "status": "status_test",
      "createdAt": "createdAt_test",
      "updatedAt": "updatedAt_test",
      "canReply": false,
      "messages": [
        {
          "id": "id_test",
          "sender": {
            "label": "label_test",
            "role": "role_test"
          },
          "body": "Could you share the carrier’s proof-of-delivery record for order #1042?",
          "createdAt": "createdAt_test"
        }
      ]
    }
  },
  "requestId": "requestId_test"
}
```

## Errors

Read the response status and stable error code. See [errors](https://peoplescourt.ai/docs/api/errors.md) and [rate limits](https://peoplescourt.ai/docs/api/rate-limits.md) for recovery. Refresh the resource before resolving a state or digest conflict.

## Idempotency and retries

- For throttling, honor Retry-After when present. Back off on retryable server failures.
- Send a unique Idempotency-Key. An exact retry returns the stored result; reusing the key with a different request fails.
- The request is accepted only when its credential, authority, case state, and resource preconditions are satisfied.

## Request examples

Use `https://peoplescourt.ai` with the test credential issued for your integration.

```sh
curl --request POST \
  --url 'https://peoplescourt.ai/api/cases/pcase_test_123/procedural-requests' \
  --header 'Cookie: arb_session=COPY_ACCOUNT_SESSION' \
  --header 'Origin: https://peoplescourt.ai' \
  --header 'Content-Type: application/json' \
  --data '{
  "body": "Could you share the carrier’s proof-of-delivery record for order #1042?",
  "procedural": {
    "kind": "deadline_extension",
    "requestedRelief": "requestedRelief_test"
  }
}'
```

```ts
const input = {
  "body": "Could you share the carrier’s proof-of-delivery record for order #1042?",
  "procedural": {
    "kind": "deadline_extension",
    "requestedRelief": "requestedRelief_test"
  }
};

const response = await fetch("https://peoplescourt.ai/api/cases/pcase_test_123/procedural-requests", {
  method: "POST",
  headers: {
    "Cookie": "arb_session=COPY_ACCOUNT_SESSION",
    "Origin": "https://peoplescourt.ai",
    "Content-Type": "application/json"
  },
  body: JSON.stringify(input),
});
if (!response.ok) throw await response.json();
const result = await response.json();
```

```python
import requests

response = requests.post(
    "https://peoplescourt.ai/api/cases/pcase_test_123/procedural-requests",
    headers={
      "Cookie": "arb_session=COPY_ACCOUNT_SESSION",
      "Origin": "https://peoplescourt.ai",
      "Content-Type": "application/json"
    },
    json={"body": "Could you share the carrier’s proof-of-delivery record for order #1042?", "procedural": {"kind": "deadline_extension", "requestedRelief": "requestedRelief_test"}},
    timeout=30,
)
response.raise_for_status()
result = response.json()
```
