sgcOpenAPI Parser
Automatically generate native Pascal SDKs from OpenAPI 3.x specifications. Import, parse, and generate type-safe API clients — directly from your Delphi IDE.
Automatically generate native Pascal SDKs from OpenAPI 3.x specifications. Import, parse, and generate type-safe API clients — directly from your Delphi IDE.
Turn any OpenAPI specification into production-ready Pascal code with full type safety and IntelliSense support.
Import any OpenAPI or Swagger specification and let sgcOpenAPI generate clean, idiomatic Object Pascal interfaces ready for your project.
Get started instantly with ready-to-use Pascal SDKs for the largest cloud providers. All SDKs are regularly updated to match the latest API specifications.
Three simple steps to go from an API specification to fully integrated Pascal code.
Load your OpenAPI 3.x specification file in JSON or YAML format. Swagger 1.x and 2.x specifications are automatically detected and converted to the OpenAPI 3.x schema.
The parser analyzes endpoints, parameters, request/response models, and authentication schemes, then generates clean, idiomatic Pascal code with proper type mappings.
Drop the generated units into your Delphi project. Full type safety, IntelliSense support, and zero external dependencies. Start calling APIs immediately.
Works with every major version of the Delphi and Pascal toolchain.
Full support from Delphi 7 through RAD Studio 13. VCL and FireMonkey frameworks with design-time component registration.
Native C++ Builder support with wrapper headers. Compatible with C++ Builder 2007 through C++ Builder 13.
See how a generated Pascal SDK looks in practice — clean, type-safe, and ready to use.
uses sgcOpenAPI_PetStore; // Generated from petstore.yaml procedure TForm1.btnGetPetClick(Sender: TObject); var Client: TsgcOpenAPI_PetStoreClient; Pet: TsgcOpenAPI_Pet; begin Client := TsgcOpenAPI_PetStoreClient.Create(nil); try Client.BaseURL := 'https://petstore.swagger.io/v2'; Client.ApiKey := 'your-api-key'; // Type-safe API call with IntelliSense Pet := Client.GetPetById(42); try Memo1.Lines.Add('Name: ' + Pet.Name); Memo1.Lines.Add('Status: ' + Pet.Status); Memo1.Lines.Add('Category: ' + Pet.Category.Name); finally Pet.Free; end; finally Client.Free; end; end; procedure TForm1.btnListPetsClick(Sender: TObject); var Client: TsgcOpenAPI_PetStoreClient; Pets: TsgcOpenAPI_PetList; i: Integer; begin Client := TsgcOpenAPI_PetStoreClient.Create(nil); try Client.BaseURL := 'https://petstore.swagger.io/v2'; // Strongly-typed list of Pet objects Pets := Client.FindPetsByStatus('available'); try for i := 0 to Pets.Count - 1 do ListBox1.Items.Add(Pets[i].Name); finally Pets.Free; end; finally Client.Free; end; end;