# Models ## Model Search `client.AI.Models.List(ctx, params) (*V4PagePaginationArray[ModelListResponse], error)` **get** `/accounts/{account_id}/ai/models/search` Searches Workers AI models by name or description. ### Parameters - `params ModelListParams` - `AccountID param.Field[string]` Path param - `Author param.Field[string]` Query param: Filter by Author - `HideExperimental param.Field[bool]` Query param: Filter to hide experimental models - `Page param.Field[int64]` Query param - `PerPage param.Field[int64]` Query param - `Search param.Field[string]` Query param: Search - `Source param.Field[float64]` Query param: Filter by Source Id - `Task param.Field[string]` Query param: Filter by Task Name ### Returns - `type ModelListResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.AI.Models.List(context.TODO(), ai.ModelListParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "errors": [ {} ], "messages": [ "string" ], "result": [ {} ], "success": true } ``` # Schema ## Get Model Schema `client.AI.Models.Schema.Get(ctx, params) (*ModelSchemaGetResponse, error)` **get** `/accounts/{account_id}/ai/models/schema` Retrieves the input and output JSON schema definition for a Workers AI model. ### Parameters - `params ModelSchemaGetParams` - `AccountID param.Field[string]` Path param - `Model param.Field[string]` Query param: Model Name ### Returns - `type ModelSchemaGetResponse struct{…}` - `Input ModelSchemaGetResponseInput` - `AdditionalProperties bool` - `Description string` - `Type string` - `Output ModelSchemaGetResponseOutput` - `AdditionalProperties bool` - `Description string` - `Type string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/ai" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) schema, err := client.AI.Models.Schema.Get(context.TODO(), ai.ModelSchemaGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Model: cloudflare.F("model"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", schema.Input) } ``` #### Response ```json { "result": { "input": { "additionalProperties": true, "description": "JSON Schema definition for the model's input parameters", "type": "object" }, "output": { "additionalProperties": true, "description": "JSON Schema definition for the model's output format", "type": "object" } }, "success": true } ```