Download OpenAPI specification:
API documentation for mein-plakat
Creates a new permission (scope) on a resource server.
| resourceServerId required | string The ID of the resource server (API) |
| value required | string The permission scope value (e.g., read:users) |
| description | string |
{- "resourceServerId": "string",
- "value": "string",
- "description": "string"
}Deletes a permission (scope) from a resource server.
| resourceServerId required | string |
| value required | string |
{- "resourceServerId": "string",
- "value": "string"
}Synchronizes Auth0 user data to the local database after login. Called from frontend after successful authentication.
| auth0Id | string |
string | |
| firstName | string |
| lastName | string |
{- "auth0Id": "string",
- "email": "string",
- "firstName": "string",
- "lastName": "string"
}Updates a user in Auth0 and local database. Admin permission required.
| id required | string |
| auth0Data | object Data to update in Auth0 (name, nickname, blocked, etc.) |
| localData | object Data to update in local database |
| roles | Array of strings Array of role IDs to assign |
{- "auth0Data": { },
- "localData": { },
- "roles": [
- "string"
]
}Updates a role in Auth0, including name, description, and assigned permissions.
| id required | string |
| name | string |
| description | string |
Array of objects |
{- "name": "string",
- "description": "string",
- "permissions": [
- {
- "permission_name": "string",
- "resource_server_identifier": "string"
}
]
}Returns AWS Cost Explorer data (current month costs, estimated month-end, past 12 months). Cached for 1 hour. Admin permission required.
{- "data": {
- "currentMonthCost": 0,
- "estimatedMonthEndCost": 0,
- "currency": "USD",
- "pastMonths": [
- {
- "month": "2025-02",
- "label": "Feb. 25",
- "cost": 0
}
]
}, - "cached": true
}Returns paginated documents from a collection. Supports search. Admin permission required.
| name required | string Collection name |
| page | integer Default: 1 |
| limit | integer <= 100 Default: 50 |
| search | string Search in common fields (min 2 chars) |
{- "data": {
- "items": [ ],
- "total": 0,
- "page": 0,
- "limit": 0
}
}Creates an async export job. Returns immediately with jobId. SIS process-exports task picks up pending jobs and generates the file. Admin permission required.
| format required | string Enum: "csv" "xlsx" |
required | object |
{- "format": "csv",
- "view": {
- "queryName": "string",
- "lang": "de"
}
}{- "jobId": "string",
- "message": "string"
}Execute GraphQL queries and mutations against the mein-plakat API.
Available Queries:
checkPermissions - Check if current user has admin permissionslocationPhotos(page, limit, districtId, providerId) - Get location photos with paginationlocationPhoto(id) - Get a single location photo by IDconsumerMarketPhotos(page, limit, consumerMarketId, providerId) - Get consumer market photos with paginationconsumerMarketPhoto(id) - Get a single consumer market photo by IDlogs(page, limit, app, level) - Get logs with paginationsdawBaseRecords(type, page, limit) - Get SDAW base records (filtered by type)sdawBaseRecord(id, type) - Get a single SDAW base recordsdawDetailRecords(baseId, type, collectionSuffix, page, limit) - Get SDAW detail metadata (actual data from S3 via REST)importStats - Get overall import statisticsusers(page, limit, sortBy, sortOrder) - Get users with paginationreceivedEmails(page, limit, sortBy, sortOrder) - Get received emails with paginationsentEmails(page, limit, sortBy, sortOrder) - Get sent emails with paginationExample Query:
query {
locationPhotos(page: 1, limit: 10) {
items {
_id
districtId
providerId
originalPath
variants { size type path }
}
pageInfo { total hasNextPage }
}
}
| query required | string GraphQL query string |
| variables | object Optional variables for the query |
| operationName | string Optional operation name if query contains multiple operations |
{- "query": "query { locationPhotos(limit: 5) { items { _id districtId } } }",
- "variables": { },
- "operationName": "string"
}{- "data": { },
- "errors": [
- {
- "message": "string",
- "locations": [ ],
- "path": [ ]
}
]
}Returns paginated list of locations missing data for a given coverage metric. Admin permission required.
| metric required | string Enum: "locationPhotos" "consumerMarketPhotos" "consumerMarketAddresses" "municipalityDirectory" "availableSpaces" "performanceValues" "mailingAddresses" "schedulesDecadicABlock" "schedulesDecadicBBlock" "schedulesDecadicCBlock" "schedulesWeekly" "schedules14day" "schedulesMonthly" "schedulesQuarterly" "schedulesHalfYearly" "schedulesYearly" |
| businessYear | integer |
| page | integer Default: 1 |
| limit | integer <= 100 Default: 25 |
| sortBy | string |
| sortOrder | string Enum: "ASC" "DESC" |
| search | string |
{- "items": [ ],
- "pageInfo": {
- "total": 0,
- "page": 0,
- "limit": 0,
- "totalPages": 0,
- "hasNextPage": true,
- "hasPreviousPage": true
}
}Extracts column headers from uploaded Excel file for mapping (admin only).
| file required | string <base64> Base64 encoded Excel file (xls or xlsx) |
{- "file": "string"
}{- "valid": true,
- "columns": [
- {
- "key": "string",
- "name": "string"
}
]
}Imports municipality directory data from Excel file with field mapping (admin only).
| file required | string <base64> Base64 encoded Excel file |
| mapping required | object Mapping of original column keys to target field names |
{- "file": "string",
- "mapping": { }
}{- "success": true,
- "count": 0
}Generates a temporary CloudFront signed URL for a private file (admin only).
| key required | string File key to request. |
{- "key": "550e8400-e29b-41d4-a716-446655440000.pdf"
}{
}Extracts column headers from uploaded schedule file for mapping. Admin permission required.
| file required | string <base64> Base64 encoded Excel or CSV file |
{- "file": "string"
}{- "valid": true,
- "columns": [
- {
- "key": "string",
- "name": "string"
}
], - "defaultMapping": { }
}Imports schedule (Terminplan) data from Excel/CSV with field mapping. Replaces only business years present in file. Admin permission required.
| file required | string <base64> Base64 encoded Excel or CSV file |
| mapping required | object Column index to field name mapping (e.g. 0 to year, 1 to period) |
{- "file": "string",
- "mapping": { }
}{- "success": true,
- "count": 0
}Imports SDAW records from a file (text content).
SDAW file content
{- "success": true,
- "messageType": "string",
- "baseId": "string",
- "stats": { }
}Returns all attachments for a given email template (admin only).
| templateId required | string Example: 507f1f77bcf86cd799439011 The email template ID. |
{- "attachments": [
- {
- "id": "507f1f77bcf86cd799439012",
- "filename": "document.pdf",
- "s3Key": "email-templates/507f1f77bcf86cd799439011/abc123.pdf",
- "contentType": "application/pdf",
- "size": 12345,
- "uploadedAt": "2025-01-01T00:00:00.000Z"
}
]
}Uploads a file attachment for an email template. The file is stored in S3 and metadata is saved in the template document (admin only).
| templateId required | string Example: 507f1f77bcf86cd799439011 The email template ID. |
| file required | string Base64-encoded file content. |
| filename required | string Original filename. |
| contentType | string MIME type of the file. |
{- "file": "JVBERi0xLjQK...",
- "filename": "document.pdf",
- "contentType": "application/pdf"
}{- "attachment": {
- "id": "string",
- "filename": "string",
- "s3Key": "string",
- "contentType": "string",
- "size": 0,
- "uploadedAt": "2019-08-24T14:15:22Z"
}
}Deletes a file attachment from an email template. Removes the file from S3 and the metadata from the template document (admin only).
| templateId required | string Example: 507f1f77bcf86cd799439011 The email template ID. |
| attachmentId required | string Example: 507f1f77bcf86cd799439012 The attachment ID. |
{- "success": true
}Returns detailed information for an advertising location identified by its slug. Includes free booking terms from all business years (filtered to dates >= today), image variants, and core location data.
| slug required | string Example: 3910841-b169-auer-str-69a-li URL-safe slug (providerId+locationNumber+positionNumber+locationDescription) |
{- "slug": "3910841-b169-auer-str-69a-li",
- "locationDescription": "string",
- "postalCode": "string",
- "district": "string",
- "pricePerDay": 0,
- "positionType": "string",
- "lighting": "string",
- "constructionType": "string",
- "constructionTypeDisplayValue": "string",
- "durationType": "string",
- "durationTypeDisplayValue": "string",
- "positionNumberTo": 0,
- "latitude": 0,
- "longitude": 0,
- "qid": 0,
- "photoName": "string",
- "dimensionsHeight": 0,
- "dimensionsWidth": 0,
- "fawTags": [
- {
- "tag": "string",
- "label": "string"
}
], - "consumerMarket": {
- "chain": "string",
- "number": "string",
- "squareMeters": 0,
- "statisticalLocationCode": "string",
- "statisticalLocationInfo": {
- "municipalityName": "string",
- "populationTotal": 0,
- "postalCode": "string",
- "latitude": 0,
- "longitude": 0
}, - "street": "string"
}, - "freeTerms": [
- {
- "freePeriod": 0,
- "dateFrom": "2019-08-24T14:15:22Z",
- "dateTo": "2019-08-24T14:15:22Z",
- "pricePerDay": 0,
- "calculatedDays": 0,
- "businessYear": 0
}
], - "image": {
- "originalPath": "string",
- "originalWidth": 0,
- "originalHeight": 0,
- "originalSize": 0,
- "uuid": "string",
- "variants": [
- {
- "size": "string",
- "type": "string",
- "url": "string",
- "width": 0,
- "height": 0,
- "fileSize": 0
}
]
}, - "consumerMarketPhoto": { }
}Alternative to slug lookup. Returns the same location details (free terms, image info) when identified by providerId, locationNumber, and positionNumber. IDs are parsed as integers.
| providerId required | string Example: 39 Sender identification (integer) |
| locationId required | string Example: 10841 Location number |
| positionId required | string Example: 1 Position number |
Returns filter options for objectTypes and illuminations. No authentication required. Used by the Site app for dynamic filter loading.
{- "objectTypes": [
- {
- "id": "507f1f77bcf86cd799439011",
- "title": "Litfaßsäule",
- "language": "de",
- "mainPositionType": "LFS",
- "subPositionType": null
}
], - "illuminations": [
- {
- "id": "507f1f77bcf86cd799439011",
- "code": "H",
- "language": "de",
- "title": "Hinterleuchtung"
}
]
}Creates a ticket in the Simple Support System (project mein_plakat).
| title required | string |
| content required | string |
| ticketPriority required | string Enum: "trivial" "minor" "major" "critical" "blocker" |
{- "title": "string",
- "content": "string",
- "ticketPriority": "trivial"
}Updates the profile of the currently logged-in user.
| name | string |
| nickname | string |
| firstName | string |
| lastName | string |
| phone | string |
| companyName | string |
{- "name": "string",
- "nickname": "string",
- "firstName": "string",
- "lastName": "string",
- "phone": "string",
- "companyName": "string"
}Adds a location to the user's watchlist.
| providerId required | string |
| locationId required | string |
| positionNumber | number Position number (default 1) |
{- "providerId": "string",
- "locationId": "string",
- "positionNumber": 0
}