Skip to content

API Endpoints Reference

OpenAPI spec definerer 52 operationIds totalt. Heraf er 44 eksponeret via iOS APIClient.

Quick Filter

Brug søgefunktionen (⌘K / Ctrl+K) til at finde specifikke endpoints.

Summary

KategoriExposedNot ExposedTotal
User & Auth122 (userLogout, resendVerification)14
Tasks131 (getTask - listTasks bruges i stedet)14
Questions & Community12012
Brain Dump101
Daily Content202
Courses404
Internal/Webhooks05 (webhooks, health, debug)5
Total44852

User & Auth (12 exposed / 14 total)

Ikke eksponerede (2)
  • userLogout - Ikke eksponeret (logout håndteres client-side via SessionClient)
  • resendVerification - Ikke eksponeret
EndpointOperationIdBeskrivelseMapping
POST /v1/users/registerregisterUserOpret ny brugerDTO → User
POST /v1/users/loginuserLoginLogin med email/passwordDTO → AuthToken
POST /v1/users/verifyverifyUserVerificer email token-
POST /v1/users/reset-passwordsendResetPasswordRequestSend reset password email-
POST /v1/users/verify-resetverifyEmailToResetPasswordVerificer reset token-
POST /v1/users/set-passwordsetNewPasswordSæt nyt password-
POST /v1/users/send-verificationsendUserVerificationGensend verification email-
GET /v1/users/megetMeHent current userDTO → User
DELETE /v1/users/medeleteUserSlet bruger permanent-
GET /v1/users/me/settingsgetUserSettingsHent user settingsDTO → UserSettings
PUT /v1/users/me/settingsupdateUserSettingsOpdater settingsDTO → UserSettings
POST /v1/users/upload-photosetUserProfilePhotoUpload profilbilledeMultipart form

Tasks (13 exposed / 14 total)

Ikke eksponeret (1)
  • getTask - Ikke eksponeret (listTasks bruges i stedet for at hente enkelt task)
EndpointOperationIdBeskrivelseMapping
POST /v1/taskscreateTaskOpret ny taskDTO → AppTask
GET /v1/taskslistTasksHent alle tasksDTOs → [AppTask]
DELETE /v1/tasks/{id}deleteTaskSlet task-
PUT /v1/tasks/{id}updateTaskOpdater taskDTO → AppTask
PUT /v1/tasks/{id}/subtasksupdateTaskSubtasksOpdater subtasksDTOs → [Subtask]
PUT /v1/tasks/{id}/completionupdateTaskCompletionMarker completedDTO → AppTask
PUT /v1/tasks/{id}/subtasks/{subtask_id}updateTaskSubtaskOpdater enkelt subtaskDTO → Subtask
POST /v1/recurring-taskscreateRecurringTaskOpret recurring taskDTO → RecurringTask
PUT /v1/recurring-tasks/{id}updateRecurringTaskOpdater recurring taskDTO → RecurringTask
DELETE /v1/recurring-tasks/{id}deleteRecurringTaskSlet recurring task-
POST /v1/tasks/generategenerateTaskWithAIAI task generationDTO → AppTask
POST /v1/tasks/generate-icongenerateTaskIconGenerér task ikonString → IconName
POST /v1/tasks/estimate-timeestimateTimeForTaskEstimér task durationDTO → TimeEstimate

Questions & Community (12 endpoints)

EndpointOperationIdBeskrivelseMapping
GET /v1/questionslistQuestionsHent alle spørgsmålDTOs → [QuestionOfTheDay]
POST /v1/questions/{id}/answerscreateQuestionAnswerBesvar spørgsmålDTO → QuestionAnswer
GET /v1/questions/{id}/answerslistQuestionAnswersHent svar på spørgsmålDTOs → [QuestionAnswer]
POST /v1/questions/answers/{id}/photoattachQuestionAnswerPhotoUpload billede til svarMultipart form
POST /v1/questions/answers/{id}/likelikeQuestionAnswerLike et svar-
DELETE /v1/questions/answers/{id}/likeunlikeQuestionAnswerUnlike et svar-
POST /v1/questions/answers/{id}/reportreportQuestionAnswerRapportér svar-
POST /v1/questions/answers/{id}/commentscreateQuestionAnswerCommentKommentér på svarDTO → Comment
GET /v1/questions/answers/{id}/commentslistQuestionAnswerCommentsHent kommentarerDTOs → [Comment]
POST /v1/questions/answers/comments/{id}/likelikeQuestionAnswerCommentLike kommentar-
DELETE /v1/questions/answers/comments/{id}/likeunlikeQuestionAnswerCommentUnlike kommentar-
POST /v1/questions/answers/comments/{id}/reportreportQuestionAnswerCommentRapportér kommentar-

Brain Dump (1 endpoint)

EndpointOperationIdBeskrivelseMapping
POST /v1/brain-dump/processprocessBrainDumpProcess voice transcript → suggested tasksDTO → [SuggestedTask]

Daily Content (2 endpoints)

EndpointOperationIdBeskrivelseMapping
GET /v1/daily/inspirationgetDailyInspirationDagens inspirationDTO → DailyInspiration
GET /v1/daily/plangetDailyPlanDagens planDTO → DailyPlan

Courses (4 endpoints)

EndpointOperationIdBeskrivelseMapping
GET /v1/courseslistCoursesHent alle kurserDTOs → [Course]
GET /v1/courses/{id}getCourseHent enkelt kursusDTO → Course
GET /v1/courses/onboardinglistOnboardingCoursesHent onboarding kurserDTOs → [Course]
PUT /v1/courses/content/{id}/completionupdateCourseContentCompletionMarker content completed-

Implementation Details

Mapping Layer

Alle endpoints mapper mellem OpenAPI-genererede DTOs og domain models:

OpenAPI DTO (Components.Schemas.*)

Mapping function (APIClient+Live.swift)

Domain Model (SharedModels)

Eksempel:

swift
// OpenAPI DTO
let dto: Components.Schemas.UserResponse

// Mapper til domain model
let user = User(
    id: User.ID(dto.id),
    email: dto.email,
    displayName: dto.display_name
)

Multipart Endpoints

To endpoints bruger multipart/form-data:

  1. setUserProfilePhoto - Upload profilbillede
  2. attachQuestionAnswerPhoto - Upload billede til question answer

Disse kræver explicit Components.Schemas.Body_* type annotations fra OpenAPI spec.

Special Patterns

Chained calls:

  • generateTaskWithAI → kan kalde generateTaskIcon automatisk
  • getCourse → henter kursus + progress

Operations. type refs:* Nogle endpoints bruger Operations.operationId.* typer direkte i stedet for Components.Schemas.*:

  • listTasks
  • createQuestionAnswerComment
  • listQuestionAnswerComments
  • listQuestionAnswers

Kildekode

Se Sources/APIClientLive/ for mapping-implementationer.

Fuld OpenAPI spec: openapi.yaml (3350 lines)

Internal/Webhooks (0 exposed / 5 total)

Disse endpoints er ikke eksponeret via APIClient - de er kun tilgængelige for backend webhooks og debug.

EndpointOperationIdFormål
POST /contentful/*upsertContentfulQuestionContentful CMS webhook
DELETE /contentful/*deleteContentfulQuestionContentful CMS webhook
POST /revenuecat/*handleRevenueCatWebhookRevenueCat subscription webhook
GET /healthhealthCheckServer health check
GET /sentry-debugtriggerSentryDebugDebug endpoint til Sentry test

Hvorfor ikke eksponeret?

  • Webhooks kaldes af eksterne services (Contentful, RevenueCat) - ikke iOS app
  • Health/debug er operations endpoints, ikke feature funktionalitet

Intern dokumentation

Denne side er baseret på operationid-inventory.md.

AI-first documentation for Nuance iOS