Schemas

February 28, 2026 · View on GitHub

Open Fixture Library API v1.0

Scroll down for example requests and responses.

Base URLs:

root

getSearchResults

POST /get-search-results

Return search results for given parameters.

Body parameter

{
  "searchQuery": "string",
  "manufacturersQuery": [
    "string"
  ],
  "categoriesQuery": [
    "string"
  ]
}

Parameters

NameInTypeRequiredDescription
searchQuerybodystringtruenone
manufacturersQuerybody[string]truenone
categoriesQuerybody[string]truenone

Example responses

200 Response

[
  "showtec/phantom-3r-beam",
  "showtec/phantom-50-led-spot",
  "showtec/phantom-140-led-spot",
  "showtec/phantom-matrix-fx"
]

Responses

StatusMeaningDescriptionSchema
200OKFixture keys matching the queries.Inline

Response Schema

createFeedbackIssue

POST /submit-feedback

Takes the input from the client side script and creates a GitHub issue with the given feedback.

Body parameter

{
  "type": "fixture",
  "context": "string",
  "location": "string",
  "helpWanted": "string",
  "message": "string",
  "githubUsername": "string"
}

Parameters

NameInTypeRequiredDescription
typebodystringtruenone
contextbodystringtrueThe fixture key or plugin key.
locationbodystring¦nulltruenone
helpWantedbodystring¦nulltruenone
messagebodystringtruenone
githubUsernamebodystringtruenone

Enumerated Values

ParameterValue
typefixture
typecapability
typeplugin

Example responses

201 Response

{
  "issueUrl": "https://github.com/OpenLightingProject/open-fixture-library/issues/1154"
}

Responses

StatusMeaningDescriptionSchema
201CreatedIssue created or error occured.Inline

Response Schema

Status Code 201

NameTypeRequiredRestrictionsDescription
» issueUrlstring¦nulltruenonenone
» errorstring¦nulltruenonenone

fixtures

createFixtureFromEditor

POST /fixtures/from-editor

Converts the given editor fixture data into OFL fixtures and responds with a FixtureCreateResult.

Body parameter

[
  {}
]

Example responses

201 Response

{
  "manufacturers": {
    "man-key": {
      "name": "Manufacturer name",
      "website": "https://example.org"
    }
  },
  "fixtures": {
    "man-key/fix-key": {
      "name": "Fixture name",
      "$comment": "…"
    }
  },
  "warnings": {
    "man-key/fix-key": [
      "Some warning for fixture man-key/fix-key."
    ]
  },
  "errors": {
    "man-key/fix-key": []
  }
}

Responses

StatusMeaningDescriptionSchema
201CreatedFixture successfully importedInline
400Bad RequestBad requestInline

Response Schema

Status Code 201

NameTypeRequiredRestrictionsDescription
» manufacturersobjecttruenonenone
» fixturesobjecttruenonenone
» warningsobjecttruenonenone
» errorsobjecttruenonenone

Status Code 400

NameTypeRequiredRestrictionsDescription
» errorstringtruenonenone

importFixtureFile

POST /fixtures/import

Imports the uploaded fixture file and responds with a FixtureCreateResult.

Body parameter

{
  "plugin": "string",
  "fileName": "string",
  "fileContentBase64": "string",
  "author": "string"
}

Parameters

NameInTypeRequiredDescription
pluginbodystringtruenone
fileNamebodystringtruenone
fileContentBase64bodystring(base64)truenone
authorbodystringtruenone

Example responses

201 Response

{
  "manufacturers": {
    "man-key": {
      "name": "Manufacturer name",
      "website": "https://example.org"
    }
  },
  "fixtures": {
    "man-key/fix-key": {
      "name": "Fixture name",
      "$comment": "…"
    }
  },
  "warnings": {
    "man-key/fix-key": [
      "Some warning for fixture man-key/fix-key."
    ]
  },
  "errors": {
    "man-key/fix-key": []
  }
}

Responses

StatusMeaningDescriptionSchema
201CreatedFixture successfully importedInline
400Bad RequestBad requestInline

Response Schema

Status Code 201

NameTypeRequiredRestrictionsDescription
» manufacturersobjecttruenonenone
» fixturesobjecttruenonenone
» warningsobjecttruenonenone
» errorsobjecttruenonenone

Status Code 400

NameTypeRequiredRestrictionsDescription
» errorstringtruenonenone

submitFixtures

POST /fixtures/submit

Creates a GitHub pull request with the given fixture data. Includes warnings, errors, GitHub username and GitHub comment in the PR description.

Body parameter

{
  "fixtureCreateResult": {
    "manufacturers": {
      "man-key": {
        "name": "Manufacturer name",
        "website": "https://example.org"
      }
    },
    "fixtures": {
      "man-key/fix-key": {
        "name": "Fixture name",
        "$comment": "…"
      }
    },
    "warnings": {
      "man-key/fix-key": [
        "Some warning for fixture man-key/fix-key."
      ]
    },
    "errors": {
      "man-key/fix-key": []
    }
  },
  "githubUsername": "string",
  "githubComment": "string"
}

Parameters

NameInTypeRequiredDescription
fixtureCreateResultbodyobjecttruenone
» manufacturersbodyobjecttruenone
» fixturesbodyobjecttruenone
» warningsbodyobjecttruenone
» errorsbodyobjecttruenone
githubUsernamebodystring¦nulltruenone
githubCommentbodystring¦nulltruenone

Example responses

201 Response

{
  "pullRequestUrl": "string"
}

Responses

StatusMeaningDescriptionSchema
201CreatedOKInline
400Bad RequestBad requestInline

Response Schema

Status Code 201

NameTypeRequiredRestrictionsDescription
» pullRequestUrlstringtruenonenone

Status Code 400

NameTypeRequiredRestrictionsDescription
» errorstringtruenonenone

manufacturers

getManufacturers

GET /manufacturers

Returns general information about all manufacturers.

Example responses

200 Response

{
  "property1": {
    "name": "string",
    "fixtureCount": 0,
    "color": "string"
  },
  "property2": {
    "name": "string",
    "fixtureCount": 0,
    "color": "string"
  }
}

Responses

StatusMeaningDescriptionSchema
200OKnoneInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
» additionalPropertiesobjectfalsenonenone
»» namestringtruenonenone
»» fixtureCountintegertruenonenone
»» colorstringtruenonenone

getManufacturerByKey

GET /manufacturers/{manufacturerKey}

Returns information about a specific manufacturer.

Parameters

NameInTypeRequiredDescription
manufacturerKeypathstringtruenone

Example responses

200 Response

{
  "key": "string",
  "name": "string",
  "comment": "string",
  "website": "string",
  "rdmId": 0,
  "color": "string",
  "fixtures": [
    {
      "key": "string",
      "name": "string",
      "categories": [
        "string"
      ]
    }
  ]
}

Responses

StatusMeaningDescriptionSchema
200OKnoneInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
» keystringtruenonenone
» namestringtruenonenone
» commentstringfalsenonenone
» websitestringfalsenonenone
» rdmIdintegerfalsenonenone
» colorstringtruenonenone
» fixtures[object]truenonenone
»» keystringtruenonenone
»» namestringtruenonenone
»» categories[string]falsenonenone

Status Code 404

NameTypeRequiredRestrictionsDescription
» errorstringtruenonenone

plugins

getPlugins

GET /plugins

Returns general information about import and export plugins.

Example responses

200 Response

{
  "importPlugins": [
    "string"
  ],
  "exportPlugins": [
    "string"
  ],
  "data": {
    "property1": {
      "name": "string",
      "outdated": null,
      "newPlugin": "string",
      "importPluginVersion": "string",
      "exportPluginVersion": "string",
      "exportTests": [
        "string"
      ]
    },
    "property2": {
      "name": "string",
      "outdated": null,
      "newPlugin": "string",
      "importPluginVersion": "string",
      "exportPluginVersion": "string",
      "exportTests": [
        "string"
      ]
    }
  }
}

Responses

StatusMeaningDescriptionSchema
200OKnoneInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
» importPlugins[string]truenonenone
» exportPlugins[string]truenonenone
» dataobjecttruenonenone
»» additionalPropertiesobjectfalsenonenone
»»» namestringtruenonenone
»»» outdatedanyfalsenonenone
»»» newPluginstringfalsenonenone
»»» importPluginVersionstringfalsenonenone
»»» exportPluginVersionstringfalsenonenone
»»» exportTests[string]falsenonenone

getPluginByKey

GET /plugins/{pluginKey}

Returns information about a specific import and export plugin. If an outdated plugin is requested, the information for the renamed plugin is returned.

Parameters

NameInTypeRequiredDescription
pluginKeypathstringtruenone

Example responses

200 Response

{
  "key": "string",
  "name": "string",
  "previousVersions": {
    "property1": "string",
    "property2": "string"
  },
  "description": "string",
  "links": {
    "property1": "string",
    "property2": "string"
  },
  "fixtureUsage": "string",
  "fileLocations": {
    "subDirectoriesAllowed": true,
    "property1": {
      "main": "string",
      "user": "string"
    },
    "property2": {
      "main": "string",
      "user": "string"
    }
  },
  "additionalInfo": "string",
  "helpWanted": "string",
  "exportPluginVersion": "string",
  "importPluginVersion": "string"
}

Responses

StatusMeaningDescriptionSchema
200OKnoneInline
404Not FoundNot FoundInline

Response Schema

Status Code 200

NameTypeRequiredRestrictionsDescription
» keystringtruenonenone
» namestringtruenonenone
» previousVersionsobjecttruenonenone
»» additionalPropertiesstringfalsenonenone
» descriptionstringtruenonenone
» linksobjecttruenonenone
»» additionalPropertiesstringfalsenonenone
» fixtureUsagestringfalsenonenone
» fileLocationsobjectfalsenonenone
»» additionalPropertiesobjectfalsenonenone
»»» mainstringfalsenonenone
»»» userstringfalsenonenone
»» subDirectoriesAllowedbooleanfalsenonenone
» additionalInfostringfalsenonenone
» helpWantedstringfalsenonenone
» exportPluginVersionstringfalsenonenone
» importPluginVersionstringfalsenonenone

Status Code 404

NameTypeRequiredRestrictionsDescription
» errorstringtruenonenone

Schemas

FixtureCreateResult

{
  "manufacturers": {
    "man-key": {
      "name": "Manufacturer name",
      "website": "https://example.org"
    }
  },
  "fixtures": {
    "man-key/fix-key": {
      "name": "Fixture name",
      "$comment": "…"
    }
  },
  "warnings": {
    "man-key/fix-key": [
      "Some warning for fixture man-key/fix-key."
    ]
  },
  "errors": {
    "man-key/fix-key": []
  }
}

Properties

NameTypeRequiredRestrictionsDescription
manufacturersobjecttruenonenone
fixturesobjecttruenonenone
warningsobjecttruenonenone
errorsobjecttruenonenone

Error

{
  "error": "Some error message."
}

Properties

NameTypeRequiredRestrictionsDescription
errorstringtruenonenone