Dynamic entity structures change over time. Always fetch the current documentation before working with endpoints.
Fetch the resource docs to list all dynamic endpoints and their structures:
GET /obp/v6.0.0/resource-docs/v6.0.0/obp?content=dynamic
This lists all dynamic endpoints (all verbs, all entities) and returns for each:
request_verb- HTTP method (GET, POST, PUT, DELETE)request_url- URL patternspecified_url- Full endpoint pathtyped_request_body- JSON schema for request bodyexample_request_body- Example request payloadsuccess_response_body- Example successful responsedescription_markdown- Property descriptions
All dynamic entity CRUD operations use /obp/dynamic-entity/{entity_name}:
- List all:
GET /obp/dynamic-entity/{entity_name} - Get single:
GET /obp/dynamic-entity/{entity_name}/{id} - Create:
POST /obp/dynamic-entity/{entity_name} - Update:
PUT /obp/dynamic-entity/{entity_name}/{id} - Delete:
DELETE /obp/dynamic-entity/{entity_name}/{id}
Do NOT use /obp/v5.1.0/management/system-dynamic-entities/ for CRUD operations.
For creating dynamic entities:
- Request: Send flat object with properties only (no wrapper, no ID)
- Response: Returns wrapped object with generated ID
- List response:
{ "{entity_name}_list": [...] } - Single response:
{ "{entity_name}": {...} }
The resource docs examples may show camelCase (e.g., ogcr5_projectId) but the actual API returns snake_case (e.g., ogcr5_project_id). Always verify field names from actual API responses, not just the documentation examples.