Skip to main content

Create Function

This page is the canonical reference for creating a function through the interface — the five-step wizard, its fields and its navigation rules. For the code contract the function has to satisfy — handler.py, the return shape each SDK expects, post_processing() and requirements.txt — see Create function (Code-level).

Accessing the Function Creation Page​

  1. From the left sidebar, select Functions.
  2. On the Functions page, click Create Function to open the function creation wizard.

Functions page with the Create Function button highlighted Functions: select Create Function

The function creation process consists of five steps:

  1. Basic Info
  2. Choose Method
  3. Choose Template
  4. Review Code
  5. Deploy

Step 1: Basic Info

Provide the basic information required to create a function.

Step 1 of the wizard with the Function name and Description fields highlighted Step 1: Basic Info

Function Name​

Enter a unique name for the function.

Validation rules:

  • Allowed characters: lowercase letters (a–z), numbers (0–9), and hyphens (-)
  • Spaces are not allowed
  • Minimum length: 2 characters
  • Function names must be unique within the project

If the name is invalid or already exists, an error message is displayed.

Description (Optional)​

Provide a short description to help identify the purpose of the function. The description can be up to 1024 characters.

Programming Language​

Choose the language your function is written in. Quapp supports:

LanguageNotes
PythonThe default language
JavaScript
Q#
CRuns on the native Qiskit bridge
C++Runs on the native Qiskit bridge

Programming Language dropdown listing Python, JavaScript, Q#, C and C++ The languages you can choose from

Each language comes with its own file definitions and templates, and the platform builds and runs the function end to end. The notebook IDE's AI Suggestion additionally supports Julia.

A programming language is not the same thing as an SDK. The language is how you write the function; the SDK is the quantum framework it runs against, and you select it later, in Step 5.

⚠️ The language you pick here limits the SDKs offered in Step 5. C and C++ run on the native Qiskit 2.4.1 bridge, and the wizard offers Qiskit 2.4.1 only for those two languages — it is hidden for Python, JavaScript and Q#. If you expect to see a particular SDK version at deployment and it is absent, check the language you chose in this step first.

Available SDKs​

Under the language selector, the panel Available SDKs provided by Quapp shows which SDKs you can use with the language you chose. It changes when you change the language:

If you chooseThe panel shows
Python, JavaScript or Q#Qiskit (1.3.2 and 0.45.3), Quapp HPC (1.0.0), Merlin (0.4.1), Braket (1.83.0), Perceval (1.2.1), Pyquil (4.15.0), Qibo (0.3.1), Qulacs (0.6.4) and Pennylane (0.37.0)
C or C++Qiskit 2.4.1 only, on the native Qiskit bridge

Step 1 with the Programming Language selector, the Available SDKs panel and the Create Function button highlighted The Available SDKs panel follows the language you choose

Notes:

  • The panel in the product is the authoritative list. Versions are added and retired over time, so check the panel rather than relying on the table above.
  • The panel is for reference only. You do not choose an SDK in this step.
  • The SDK and SDK version are selected during deployment (Step 5).

After entering the required information, click Create Function to proceed to the next step.


Step 2: Choose Method

The screen is titled Choose How to Begin. Select a card, then Continue.

Step 2: the Use-case Templates card highlighted

Available options:

Use-case Templates​

Start from pre-built quantum algorithm templates optimized for common use cases.

My Templates​

Start from a template previously saved by the user.

Blank Editor​

Start from scratch, with full IDE access, for a custom implementation. (This card was called Open IDE before October 2026.)


Step 3: Choose Template

This step is displayed when Use-case Templates is selected in Step 2.

The screen is titled Select Template & Configure. Choose a predefined quantum algorithm template: use the search box or the category buttons to narrow the list, select a card, then Continue.

Step 3: a template card and the Continue button highlighted

Each card shows the template's SDK as a badge (QISKIT, BRAKET, PENNYLANE…). The same algorithm can exist for several SDKs; Bernstein-Vazirani, for example, exists for Qiskit and for Braket.

Category buttons (October 2026):

  • All
  • Basics
  • Search
  • Characterization
  • Optimization
  • Benchmarking
  • Machine Learning
  • Variational
  • Simulation

Example templates:

  • Bernstein-Vazirani
  • Deutsch-Jozsa
  • Grover Search
  • QAOA (MaxCut)
  • Quantum Phase Estimation
  • Quantum Volume
  • Randomized Benchmarking
  • State Tomography
  • VQE (H2 Ground State)

Users can return to Step 2 and modify their selections before entering the code review stage.


Step 4: Review Code

Review and edit the function source code before deployment.

Step 4: the handler.py tab, the code and the Continue to Deploy button highlighted

The editor supports the following files:

handler.py​

Contains the function implementation.

The file must contain the required function definitions described in the Developer Guide.

requirements.txt​

Used to declare external Python dependencies.

Each dependency should be listed on a separate line using standard requirements.txt syntax.

Additional Files​

Users may upload Python files from their local environment.

Uploaded files:

  • Do not replace handler.py
  • Can be imported and used by handler.py
  • Are available in the function runtime environment

Uploaded files are scanned for viruses, and the scan result is reported as part of the upload flow. A file that does not pass is not added to the function.

Version History​

The editor includes a Version History section for managing saved code versions.

Save Version​

The Save Version button becomes available only when code changes are detected.

When a version is saved:

  • A new code version is created
  • The version is added to Version History
  • Previous versions remain available for selection

Once the user enters Step 4, navigation to previous wizard steps is disabled.

The user can only:

  • Continue to Step 5 (Deploy)
  • Return from Step 5 back to Step 4

This behavior ensures consistency between the selected template and the generated source code.


Step 5: Deploy

Review deployment settings before deploying the function.

SDK Configuration​

When you started from a template, both fields are already filled in with the template's SDK (for example Qiskit / 1.3.2).

Step 5: SDK / Environment, SDK Version and Deploy highlighted

Select:

  • SDK / Environment
  • SDK Version

The available options depend on the SDKs supported by Quapp. See the list in Step 1: Available SDKs.

Deployment​

Click Deploy to deploy the function.

Deployment usually takes one to a few minutes (82 seconds for a Qiskit template in our October 2026 test), because the platform builds the runtime environment and installs the function's dependencies. The function passes through four stages — Creation → Build → Deploy → Completion — and a status of Deploying during this period is expected, not a sign that something is stuck.

After a successful deployment:

  • The function appears in the function list
  • The Invocation tab becomes available on the Function Details page
  • The function can be invoked and can execute jobs

⚠️ Confirm that the deployment actually succeeded. A Last Deployed Time value is not proof of success — it can be updated even when the deploy step failed. The reliable signal is the Invocation tab on the Function Details page. The page you are on does not add that tab by itself when the deployment finishes: go back to Functions and open the function again. If the tab is still missing, check the Build Logs and Deploy Logs tabs.

Users may return to Step 4 to modify the source code before deployment.

However, Steps 1–3 are no longer accessible once the function reaches the deployment stage.


Notes

  • Templates cannot be changed after deployment.
  • Save Version is displayed only when code modifications are detected.
  • All required dependencies should be declared before deployment.
  • SDK selection is performed during deployment, not during function creation.
  • Users may move freely between Steps 2–3 before entering Step 4.
  • After entering Step 4, only Step 4 and Step 5 are accessible.

Result After Deploying a Function

When you select Deploy, the wizard closes and the Function Details page of the new function opens. It shows the SDK, the deployed version and the four stages Creation → Build → Deploy → Completion with their start times.

Function Details after a deployment: the Invocation and Build Logs tabs highlighted

While the deployment runs, the tabs are Source Code, Related Jobs, Build Logs and Deploy Logs. Once Completion is reached, go back to Functions and open the function again: the Invocation tab is then present, and that is what tells you the deployment finished successfully.

For a complete walk-through from template to result, see the Quickstart.