--- title: "Scalar API Reference" source: "https://apidocs.omg.dev.oliver.solutions/#tag/briefs/GET/briefs/{id}" author: published: created: 2026-05-07 description: tags: - "clippings" --- v2.0.0 OAS 3.0.3 REST API for the OMG marketing operations platform. Manages briefs, deliverables, projects, tasks, file uploads, and library batch operations. **Authentication:** Every request must include an `X-Api-Key` header. Requests are routed through the TYK gateway, which resolves the tenant and user context from the key before forwarding to the API. **Response format:** - Success: `{ "data": { ... }, "message": "..." }` — HTTP 200 or 201 - Error: RFC 7807 Problem Details — `{ "type": "about:blank", "title": "...", "status": 4xx/5xx, "detail": "..." }` **HTTP status semantics:** - `200` Read, update, delete succeeded - `201` Resource created - `400` Invalid or missing request parameters - `403` Authentication failure (missing or invalid headers) - `404` Resource not found - `422` Valid parameters but business logic rejected the operation - `500` Unexpected server error https://api.omg.dev.oliver.solutions/{tenantID}/v2 API server Client Libraries ## Briefs Create, read, update and delete marketing briefs Responses - application/json - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/briefs' \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' \ --data '{ "brief_title": "Q3 Campaign Brief", "slipstream": "", "brief_summary": "Overview of the Q3 campaign requirements", "brief_deadline": "2026-06-30", "external_reference": "EXT-REF-001", "business_area": "UK/Marketing/Digital" }' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` Path Parameters Responses - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/briefs/1' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` Partial update. Include `status: "change_request"` to trigger a status transition — all other fields are ignored in that case. Without `status`, updates any combination of the other fields. Path Parameters All fields optional. Include 'status' to trigger a status transition instead of a field update. Responses - application/json - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/briefs/1' \ --request PATCH \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' \ --data '{ "brief_summary": "", "brief_deadline": "", "cancel": 0, "status": "change_request" }' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` Path Parameters Responses - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/briefs/1' \ --request DELETE \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` ## Deliverables (Collapsed) Read and update job deliverables ## Tasks Create planning tasks Responses - application/json - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/tasks' \ --request POST \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' \ --data '{ "name": "Design review", "start_date": "2026-05-01T00:00:00Z", "end_date": "2026-05-15T00:00:00Z", "parent_planning_id": 42 }' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` ## Projects (Collapsed) Create and read planning projects and their deliverables ## Library (Collapsed) Client-specific library batch operations ## Users Read, update and manage user records and avatars Returns a single full user record matched by either `email` or `staffid`. Exactly one parameter must be supplied. The result is scoped to the authenticated tenant. Query Parameters Responses - application/json - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/user?email=&staffid=1' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` Returns the full user record for the given ID. Returns 404 if the user does not exist or does not belong to the authenticated tenant. Path Parameters Responses - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/user/1' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` Updates one or more user\_dom\_small fields on the user record. Only the fields present in the request body are changed; omitted fields are left unchanged. At least one field must be supplied. `owning_agency_id` and `job_role` are validated against existing FK values when provided. Path Parameters At least one field must be supplied. Only the fields present in the body are updated; omitted fields are left unchanged. Responses - application/json - application/json - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/user/1' \ --request PUT \ --header 'Content-Type: application/json' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' \ --data '{ "first_name": "Jane", "last_name": "Smith", "email_address": "jane.smith@example.com", "owning_agency_id": 7, "owning_agency_name": "Oliver London", "job_role": 12, "job_role_name": "Senior Designer" }' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` Accepts a multipart JPEG upload and stores it as the user's avatar. If the user already has an avatar the existing ECM document is updated in place; otherwise a new one is created. Background workers generate fixed-size thumbnails after upload. Returns the new avatar URL. Path Parameters Responses - application/json - application/json - application/json - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/user/1/avatar' \ --request POST \ --header 'Content-Type: multipart/form-data' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' \ --form 'avatar=' ``` ```json { "data": {}, "message": "Brief created successfully" } ``` ### List users Returns all active standard users for the authenticated tenant as an array of user\_dom\_small objects. Pass `search` to filter by contains match across first\_name, last\_name, email, owning\_agency\_name, and job\_role\_name. Query Parameters Responses - application/json - application/json - application/json ``` curl 'https://api.omg.dev.oliver.solutions/{tenantID}/v2/users?search=' \ --header 'X-Api-Key: YOUR_SECRET_TOKEN' ``` ```json { "data": { "data": [ { "id": 42, "first_name": "Jane", "last_name": "Smith", "email_address": "jane.smith@example.com", "owning_agency_id": 7, "owning_agency_name": "Oliver London", "job_role": 12, "job_role_name": "Senior Designer" } ], "total_set": 120 }, "message": "Users retrieved successfully" } ``` ## Debug (Collapsed) Development and smoke-test endpoints