Tickets
List a project's tickets, and create tickets with attachments.
A project's tickets.
PersonalAccessTokenAuthorizationBearer <token>A personal access token, created under Account Settings → Developer → Personal access tokens.
project_id*stringlimit?integerHow many records to return.
int321 <= value <= 1000100cursor?stringThe next_cursor of the previous page.
sort?stringcreated lists the newest first; last_activity lists the most recently active first.
"created""created""last_activity"since?stringKeep only records active at or after this time, such as 2026-10-30T19:00:00Z.
date-timeinclude?array<>Related records to add to each ticket, separated by commas. implementations adds its implementations.
[]The request has succeeded.
application/json- response
data*array<>next_cursor*|Pass this as cursor to get the next page, or null on the last page.
curl -X GET 'https://www.superconductor.com/api/v1/projects/string/tickets'{ "data": [ { "id": "string", "friendly_id": "string", "url": "http://example.com", "title": "string", "status": "string", "description": "string", "created_at": "2019-08-24T14:15:22Z", "last_activity_at": "2019-08-24T14:15:22Z", "creator": { "type": "string", "id": "string", "name": "string", "email": "string" }, "implementations": [ { "id": "string", "friendly_id": "string", "url": "http://example.com", "status": "string", "created_at": "2019-08-24T14:15:22Z", "creator": { "type": "string", "id": "string", "name": "string", "email": "string" }, "pull_requests": [ { "id": "string", "number": 0, "url": "http://example.com", "status": "string", "provider": "string", "created_at": "2019-08-24T14:15:22Z", "last_pushed_at": "2019-08-24T14:15:22Z" } ] } ] } ], "next_cursor": "string"}Create a ticket, attributed to the user the token belongs to, and optionally start an implementation.
PersonalAccessTokenAuthorizationBearer <token>A personal access token, created under Account Settings → Developer → Personal access tokens.
project_id*stringapplication/json- body
ticket*implementations?array<>Implementations to start right away. Without one, the ticket waits for someone to start it.
items <= 1[]The request has succeeded and a new resource has been created as a result.
application/json- response
id*stringfriendly_id*stringThe ticket's number within its project.
url*stringurititle*string|nullstatus*stringSuch as idle, running, pending_user, failed, or completed.
implementation_launches*array<>curl -X POST 'https://www.superconductor.com/api/v1/projects/string/tickets' \ -H 'Content-Type: application/json' \ -d '{ "ticket": { "title": "Retry failed imports", "description": "Retry an import up to three times before marking it failed.", "attachments": [] }, "implementations": [ { "profile": "default" } ]}'{ "id": "string", "friendly_id": "string", "url": "http://example.com", "title": "string", "status": "string", "implementation_launches": [ { "profile": "string", "launch_error": "string" } ]}Get a form to upload a file to, for attaching to a new ticket. Files can be up to 100 MB.
PersonalAccessTokenAuthorizationBearer <token>A personal access token, created under Account Settings → Developer → Personal access tokens.
project_id*stringfilename*stringThe file's name, including its extension.
1 <= lengthThe request has succeeded.
application/json- response
upload_id*stringPass this in the ticket's attachments once the file is uploaded. It expires after a day.
url*stringPOST the file here as multipart/form-data.
urifields*Send these form fields before the file field.
curl -X GET 'https://www.superconductor.com/api/v1/projects/string/attachment_uploads/presign?filename=string'{ "upload_id": "string", "url": "http://example.com", "fields": { "property1": "string", "property2": "string" }}